
FuzzingLabs published its analysis of a vulnerability in sol_poseidon, the Poseidon hash syscall in Agave, the Solana validator client maintained by Anza. Different byte inputs could produce the same hash. The issue was disclosed to Anza in January 2025 under Solana’s security policy.1
The flaw
Agave delegates the syscall to the light-poseidon library. Its byte-hashing functions accepted inputs shorter than 32 bytes and converted them to field elements without enforcing a fixed length. Leading zero bytes in big-endian, or trailing zero bytes in little-endian, did not change the resulting value, so a padded input and an unpadded one hashed identically. FuzzingLabs reproduced the collision through the syscall itself. Programs relying on sol_poseidon for uniqueness or commitments were exposed to double claims and repeated redemptions.1
The fix
light-poseidon enforced fixed input lengths in August 2025. SIMD-0359 formalized the rule for the validator: fixed 32-byte inputs for BN254, with explicit zero padding. Agave merged the change behind a feature gate in October 2025. It was activated on testnet, then on mainnet-beta on March 12, 2026. Anza acknowledged the bounty in April 2026.1