CVE-2025-59432
Timing Attack Vulnerability in SCRAM Authentication
Impact
### Impact A timing attack vulnerability exists in the SCRAM Java implementation. The issue arises because `Arrays.equals` was used to compare secret values such as client proofs and server signatures. Since `Arrays.equals` performs a short-circuit comparison, the execution time varies depending on how many leading bytes match. This behavior could allow an attacker to perform a timing side-channel attack and potentially infer sensitive authentication material. All users relying on SCRAM authentication are impacted. ### Patches This vulnerability has been patched by replacing `Arrays.equals` with `MessageDigest.isEqual`, which ensures constant-time comparison. Users should upgrade to version **3.2** or later to mitigate this issue. ### Workarounds Because the attack requires high precision and repeated attempts, the risk is limited, but the only reliable mitigation is to upgrade to a patched release (version 3.2 or later). ### References - [Java `MessageDigest.isEqual` Documentation](https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/security/MessageDigest.html#isEqual(byte[],byte[]))
Affected packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| maven | com.ongres.scram:scram-common | < 3.2 | 3.2 |
Weakness classification
References
- NVD record
- CVE.org record
- GitHub advisory
- https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/security/MessageDigest.html#isEqual(byte%5B%5D,byte%5B%5D)
- https://github.com/ongres/scram/commit/e0b0cf99f05406a0d26682c72fcb5728e95124b3
- https://github.com/ongres/scram/security/advisories/GHSA-3wfh-36rx-9537
- https://github.com/advisories/GHSA-3wfh-36rx-9537
- https://nvd.nist.gov/vuln/detail/CVE-2025-59432