PT-2026-25089 · Git+2 · Rs-Soroban-Sdk+1

Leighmcculloh

·

Published

2026-03-12

·

Updated

2026-03-13

·

CVE-2026-32322

CVSS v3.1

5.3

Medium

VectorAV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
Name of the Vulnerable Software and Affected Versions soroban-sdk versions 22.0.11 through 23.5.3 and 25.3.0
Description The soroban-sdk, a Rust SDK for Soroban contracts, had an issue where the Fr (scalar field) types for BN254 and BLS12-381 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., greater than or equal to r). Exploitation requires an attacker to supply crafted Fr values through contract inputs and compare them directly without host-side arithmetic operations. Smart contracts relying on Fr equality checks for security-critical logic could produce incorrect results, potentially leading to incorrect authorization decisions or validation bypasses when performing equality checks on user-supplied scalar values. The Fr types are wrappers around U256, and the PartialEq implementation compared the raw U256 values directly. Constructors accepted arbitrary U256 values without reducing them modulo r, meaning two Fr values representing the same field element could have different internal representations and compare as not-equal.
Recommendations Upgrade to version 22.0.11, 23.5.3, or 25.3.0 of soroban-sdk. Review any deployed contracts that accept Fr values as input and compare those values using ==, !=, or assert eq!. These contracts may be vulnerable if an attacker can supply unreduced scalar values to bypass equality checks.

Exploit

Fix

Weakness Enumeration

Related Identifiers

CVE-2026-32322
GHSA-X2HW-PX52-WP4M

Affected Products

Rs-Soroban-Sdk
Soroban-Sdk