Impact
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.
Patches
Check that inner_payload_len
is not above 64 which should never be the case.
Patched in version 0.0.8
Workarounds
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.
References
GitHub issue #58
Impact
Panic vulnerability when a specially crafted payload is used.
This is because of the following calculation:
If
inner_payload_len
is0xffffffff
,(4 - inner_payload_len % 4) % 4 = 1
sowhich overflow.
Patches
Check that
inner_payload_len
is not above 64 which should never be the case.Patched in version 0.0.8
Workarounds
Sanitize input payload before it is passed to the vulnerable function so that bytes in
payload[32..32+4]
and parsed as au32
is not above 64.References
GitHub issue #58