Description
libsidplayfp through 3.1.1 contains a heap out-of-bounds read vulnerability that allows attackers to crash applications by supplying a PSID/RSID file with an unchecked data offset. Attackers can set the header data offset beyond the file size, wrapping the length calculation so resolveAddrs() reads up to 64 KiB past the heap buffer.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
libsidplayfp libsidplayfp
Default version status: unaffected
0 to ≤ 3.1.1affected
References
- https://hackmd.io/@haind-pwn/libsidplayfp-psid-dataoffset-underflow-oob-read ↗
- https://github.com/libsidplayfp/libsidplayfp/blob/732fa8ec8131fc75aafc2eaea583ddcdeea2a3cc/src/sidtune/SidTuneBase.cpp#L295-L300 ↗
- https://github.com/libsidplayfp/libsidplayfp/blob/732fa8ec8131fc75aafc2eaea583ddcdeea2a3cc/src/sidtune/SidTuneBase.cpp#L488-L500 ↗
- https://github.com/libsidplayfp/libsidplayfp ↗
- https://www.vulncheck.com/advisories/libsidplayfp-through-3.1.1-heap-out-of-bounds-read-via-sidtunebase-acceptsidtune ↗