stellar-xdr — это библиотека и CLI, содержащие типы и функциональные возможности для работы со Stellar XDR. До версии 25.0.1 StringM::from_str не проверяет, находится ли входная длина в пределах заявленного максимума (MAX). Вызов StringM::<N>::from_str(s), где s длиннее N байт, завершается успешно и возвращает значение Ok вместо Err(Error::LengthExceedsMax), создавая StringM, который нарушает его инвариант длины.
Это влияет на любой код, который создает значения StringM из строкового ввода с помощью FromStr (включая str::parse) и полагается на принудительное ограничение максимальной длины типа. Слишком большой StringM может распространяться посредством сериализации, проверки или другой логики, которая предполагает сохранение инварианта. Эта проблема исправлена в версии 25.0.1.
Показать оригинальное описание (EN)
stellar-xdr is a library and CLI containing types and functionality for working with Stellar XDR. Prior to version 25.0.1, StringM::from_str does not validate that the input length is within the declared maximum (MAX). Calling StringM::<N>::from_str(s) where s is longer than N bytes succeeds and returns an Ok value instead of Err(Error::LengthExceedsMax), producing a StringM that violates its length invariant. This affects any code that constructs StringM values from string input using FromStr (including str::parse), and relies on the type's maximum length constraint being enforced. An oversized StringM could propagate through serialization, validation, or other logic that assumes the invariant holds. This issue has been patched in version 25.0.1.
Характеристики атаки
Последствия
Строка CVSS v3.1