stellar/rs-stellar-strkey · Security
stellar-strkey vulnerable to panic in SignedPayload::from_payload
- GHSA ID
- GHSA-5873-6fwq-463f
- CVE ID
- CVE-2023-46135
- Severity
- medium
- Published
- Updated
- CVSS
- 5.3 · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
- CVSS v3
- 5.3 · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Description
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
CWEs
- CWE-248 · Uncaught Exception
References
- https://github.com/stellar/rs-stellar-strkey/security/advisories/GHSA-5873-6fwq-463f ↗
- https://github.com/stellar/rs-stellar-strkey/issues/58 ↗
- https://github.com/stellar/rs-stellar-strkey/pull/59 ↗
- https://github.com/stellar/rs-stellar-strkey/commit/83adad0f5b1cda693c7ba8524d395add8077865f ↗
- https://github.com/stellar/rs-stellar-strkey/releases/tag/v0.0.8 ↗
- https://nvd.nist.gov/vuln/detail/CVE-2023-46135 ↗
- https://github.com/advisories/GHSA-5873-6fwq-463f ↗