soroban-sdk: `Fr` scalar field equality comparison bypasses modular reduction
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- —
- Confidentiality · integrity · availability
- None · Low · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub.
Summary
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| stellar | rs-soroban-sdk | 25.0.0 to before 25.3.0; 23.0.0 to before 23.5.3; before 22.0.11 | 25.3.0, 23.5.3, 22.0.11 | Patch available | CNA |
| — | soroban-sdk (crates.io) | 25.0.0 to before 25.3.0 | 25.3.0 | Patch available | GHSA-x2hw-px52-wp4m |
| — | soroban-sdk (crates.io) | 23.0.0 to before 23.5.3 | 23.5.3 | Patch available | GHSA-x2hw-px52-wp4m |
| — | soroban-sdk (crates.io) | before 22.0.11 | 22.0.11 | Patch available | GHSA-x2hw-px52-wp4m |
- rs-soroban-sdk Vendorstellar Affected 25.0.0 to before 25.3.0; 23.0.0 to before 23.5.3; before 22.0.11 Fixed in 25.3.0, 23.5.3, 22.0.11 Patch available CNA
- soroban-sdk (crates.io) Vendor— Affected 25.0.0 to before 25.3.0 Fixed in 25.3.0 Patch available GHSA-x2hw-px52-wp4m
- soroban-sdk (crates.io) Vendor— Affected 23.0.0 to before 23.5.3 Fixed in 23.5.3 Patch available GHSA-x2hw-px52-wp4m
- soroban-sdk (crates.io) Vendor— Affected before 22.0.11 Fixed in 22.0.11 Patch available GHSA-x2hw-px52-wp4m
CPE configurations NVD · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:stellar:rs-soroban-sdk:*:*:*:*:*:rust:*:* | before 22.0.11; 23.0.0 to before 23.5.3; 25.0.0 to before 25.3.0 | Vulnerable | stellar |
- cpe:2.3:a:stellar:rs-soroban-sdk:*:*:*:*:*:rust:*:* Versions before 22.0.11; 23.0.0 to before 23.5.3; 25.0.0 to before 25.3.0 Vulnerable ·stellar
Remediation
- Fix · CNA rs-soroban-sdk (stellar) Fixed in 25.3.0, 23.5.3, 22.0.11
- Fix · GHSA-x2hw-px52-wp4m soroban-sdk (crates.io) Fixed in 25.3.0 Advisory →
- Fix · GHSA-x2hw-px52-wp4m soroban-sdk (crates.io) Fixed in 23.5.3 Advisory →
- Fix · GHSA-x2hw-px52-wp4m soroban-sdk (crates.io) Fixed in 22.0.11 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-32322
- 2026-10-03 Alias added: GHSA-x2hw-px52-wp4m
References
Other 6
- https://github.com/stellar/rs-soroban-sdk/pull/1750
- https://github.com/stellar/rs-soroban-sdk/commit/082424b30bf22ea7fb8c79f16ccd135e0ae9f3db
- https://github.com/stellar/rs-soroban-sdk
- https://github.com/stellar/rs-soroban-sdk/releases/tag/v22.0.11
- https://github.com/stellar/rs-soroban-sdk/releases/tag/v23.5.3
- https://github.com/stellar/rs-soroban-sdk/releases/tag/v25.3.0
More stellar Rs-soroban-sdk vulnerabilities
- TI-2026-21237 rs-soroban-sdk #[contractimpl] macro calls inherent function instead of trait function when names collide CVSS 3.1HIGH 7.5
- TI-2026-20074 soroban-sdk has overflow in Bytes::slice, Vec::slice, GenRange::gen_range for u64 CVSS 3.1MEDIUM 5.3
Sources
- CVE-2026-32322 · CVE Program
- CVE-2026-32322 · NVD
- FIRST EPSS
- GHSA-x2hw-px52-wp4m · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences