Description
NetSurf libnsbmp through 0.1.7 contains an out-of-bounds read vulnerability in bmp_decode_mask() that allows attackers to read one byte past the image buffer by supplying crafted ICO files. Attackers can provide an ICO whose inner bitmap width is not a multiple of 8, causing a heap over-read that can crash applications calling bmp_decode().
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| NetSurf | libnsbmp | ≤ 0.1.7 | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 16.04 LTS | libnsbmp | No fix yet | — |
References
- https://hackmd.io/@haind-pwn/libnsbmp-rle-absolute-pad-and-ico-mask-oob-read technical-description exploit
- https://github.com/netsurf-browser/libnsbmp/blob/ea063c9f46acb43e90208da14073332b505ef7e7/src/libnsbmp.c#L835-L873 technical-description
- https://download.netsurf-browser.org/libs/releases/libnsbmp-0.1.7-src.tar.gz product
- https://github.com/netsurf-browser/libnsbmp product
- VulnCheck Advisory: NetSurf libnsbmp through 0.1.7 Out-of-Bounds Read via bmp_decode_mask third-party-advisory