soroban-sdk — это Rust SDK для контрактов Soroban. До версий 22.0.11, 23.5.3 и 25.3.0 типы Fr (скалярное поле) для BN254 и BLS12-381 в soroban-sdk сравнивали значения, используя их необработанное представление U256, без предварительного уменьшения по модулю модуля поля r. Это приводило к тому, что математически равные элементы поля сравнивались как неравные, если одно или оба значения не были уменьшены (т. е. >= r).
Уязвимость требует, чтобы злоумышленник предоставил созданные значения Fr через входные данные контракта и сравнил их напрямую, не прибегая к арифметическим операциям на стороне хоста. Смарт-контракты, которые полагаются на проверки равенства Fr для критически важной для безопасности логики, могут давать неправильные результаты. Влияние зависит от того, как затронутый контракт использует сравнения на равенство Fr, но может привести к неверным решениям об авторизации или обходу проверки в контрактах, которые выполняют проверки на равенство предоставленных пользователем скалярных значений.
Эта уязвимость исправлена в версиях 22.0.11, 23.5.3 и 25.3.0.
Показать оригинальное описание (EN)
soroban-sdk is a Rust SDK for Soroban contracts. Prior to 22.0.11, 23.5.3, and 25.3.0, The Fr (scalar field) types for BN254 and BLS12-381 in soroban-sdk compared values using their raw U256 representation without first reducing modulo the field modulus r. This caused mathematically equal field elements to compare as not-equal when one or both values were unreduced (i.e., >= r). The vulnerability requires an attacker to supply crafted Fr values through contract inputs, and compare them directly without going through host-side arithmetic operations. Smart contracts that rely on Fr equality checks for security-critical logic could produce incorrect results. The impact depends on how the affected contract uses Fr equality comparisons, but can result in incorrect authorization decisions or validation bypasses in contracts that perform equality checks on user-supplied scalar values. This vulnerability is fixed in 22.0.11, 23.5.3, and 25.3.0.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 3
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Stellar Rs-Soroban-Sdk
cpe:2.3:a:stellar:rs-soroban-sdk:*:*:*:*:*:rust:*:*
|
— |
22.0.11
|
|
Stellar Rs-Soroban-Sdk
cpe:2.3:a:stellar:rs-soroban-sdk:*:*:*:*:*:rust:*:*
|
23.0.0
|
23.5.3
|
|
Stellar Rs-Soroban-Sdk
cpe:2.3:a:stellar:rs-soroban-sdk:*:*:*:*:*:rust:*:*
|
25.0.0
|
25.3.0
|