CVE-2026-32129 Details
Description
soroban-poseidon provides Poseidon and Poseidon2 cryptographic hash functions for Soroban smart contracts. Poseidon V1 (PoseidonSponge) accepts variable-length inputs without injective padding. When a caller provides fewer inputs than the sponge rate (inputs.len() < T - 1), unused rate positions are implicitly zero-filled. This allows trivial hash collisions: for any input vector [m1, ..., mk] hashed with a sponge of rate > k, hash([m1, ..., mk]) equals hash([m1, ..., mk, 0]) because both produce identical pre-permutation states. This affects any use of PoseidonSponge or poseidon_hash where the number of inputs is less than T - 1 (e.g., hashing 1 input with T=3). Poseidon2 (Poseidon2Sponge) is not affected.
A vulnerability in the Soroban-Poseidon library's Poseidon V1 hash function allows for hash collisions due to improper handling of variable-length inputs. When fewer inputs are provided than the sponge rate, the missing positions are automatically filled with zeros. This behavior can be exploited to create identical hash outputs for different input vectors, leading to trivial collisions. The issue arises in any scenario where the number of inputs is less than the sponge rate minus one, such as hashing a single input with a rate of three.
Users should upgrade to Soroban-Poseidon version 25.0.1, which fixes the collision vulnerability by enforcing that the number of inputs equals the sponge rate. Alternatively, if an upgrade is not possible, ensure that the number of inputs matches the sponge rate requirements or migrate to Poseidon2, which safely handles variable-length inputs.
Metrics
CVSS 4.0 Severity and Vector Strings:
CVSS 3.x Severity and Vector Strings:
No data available for CVSS Version 2.0 on this CVE.
Volerion
Assessed Mar 12, 2026CISA-ADP
Assessed Mar 13, 2026References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving this site. These are references gathered from the official CVE record and are not endorsed by Volerion.
| URL | Source(s) | Tag(s) |
|---|---|---|
| https://github.com/stellar/rs-soroban-poseidon/pull/10 | [email protected] | Issue TrackingVendor |
| https://github.com/stellar/rs-soroban-poseidon/releases/tag/v25.0.1 | [email protected] | Release NotesVendor |
| https://github.com/stellar/rs-soroban-poseidon/security/advisories/GHSA-g2p6-hh5v-7hfm | [email protected] | AdvisoryRemedyVendor |
Weakness Enumeration
| CWE-ID | CWE Name | Source |
|---|---|---|
| CWE-328 | Use of Weak Hash | [email protected] |
Affected Products
| Product | Versions |
|---|---|
| soroban-poseidon | All versions |
CPE
Remediation
| |
Change History
3 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Jun 17, 2026 | CVE Modified | [email protected] |
| Jun 17, 2026 | CVE Modified | CISA-ADP |
| Mar 12, 2026 | New CVE Received | [email protected] |
Volerion