Panic vulnerability when a specially crafted payload is used. This is because of the following calculation:
inner_payload_len + (4 - inner_payload_len % 4) % 4
If inner_payload_len
is 0xffffffff
, (4 - inner_payload_len % 4) % 4 = 1
so
inner_payload_len + (4 - inner_payload_len % 4) % 4 = u32::MAX + 1
which overflow.
Check that inner_payload_len
is not above 64 which should never be the case.
Patched in version 0.0.8
Sanitize input payload before it is passed to the vulnerable function so that bytes in payload[32..32+4]
and parsed as a u32
is not above 64.
GitHub issue #58
{ "nvd_published_at": "2023-10-25T18:17:36Z", "cwe_ids": [ "CWE-248" ], "severity": "MODERATE", "github_reviewed": true, "github_reviewed_at": "2023-10-25T14:09:10Z" }