Buffer overflow in sponge queue functions
### Impact The Keccak sponge function interface accepts partial inputs to be absorbed and partial outputs to be squeezed. A buffer can overflow when partial data with some specific sizes are queued, where at least one of them has a length of 2^32 - 200 bytes or more. ### Patches Yes, see commit [fdc6fef0](https://github.com/XKCP/XKCP/commit/fdc6fef075f4e81d6b1bc38364248975e08e340a). ### Workarounds The problem can be avoided by limiting the size of the partial input data (or partial output digest) below 2^32 - 200 bytes. Multiple calls to the queue system can be chained at a higher level to retain the original functionality. Alternatively, one can process the entire input (or produce the entire output) at once, avoiding the queuing functions altogether. ### References See [issue #105](https://github.com/XKCP/XKCP/issues/105) for more details.
describes (1)
Related CVEs.
| ID | severity | exploitable | ||
|---|---|---|---|---|
| CVE-2022-37454US | critical9.8 | — | ||
The Keccak XKCP SHA-3 reference implementation before fdc6fef has an integer overflow and resultant buffer overflow that allows attackers to execute arbitrary code or eliminate exp… | ||||
references
External citations — patches, advisories, analysis.
- https://csrc.nist.gov/projects/hash-functions/sha-3-projectWEB
- https://eprint.iacr.org/2023/331WEB
- https://github.com/XKCP/XKCP/commit/fdc6fef075f4e81d6b1bc38364248975e08e340aWEB
- https://github.com/XKCP/XKCP/issues/105WEB
- https://github.com/XKCP/XKCP/security/advisories/GHSA-6w4m-2xhg-2658WEB
- https://github.com/johanns/sha3/commit/5f2e8118a62831911703c8753ff2435c3b5d7312WEB
- https://github.com/johanns/sha3/issues/17WEB
- https://github.com/rubysec/ruby-advisory-db/blob/master/gems/sha3/CVE-2022-37454.ymlWEB
Advisories like this name the exposed products attackers go after on your perimeter. See what is exposed on your perimeter with a free passive scan.
Free scan