---
id: CVE-2026-111138
title: >-
  NetSurf libnsbmp through 0.1.7 contains an out-of-bounds read vulnerability in
  bmp_decode_rle8() and bmp_decode_rle4() because absolute-run bound checks omit
  the word-alignment pad byte
summary: >-
  NetSurf libnsbmp through 0.1.7 contains an out-of-bounds read vulnerability in
  bmp_decode_rle8() and bmp_decode_rle4() because absolute-run bound checks omit
  the word-alignment pad byte. Attackers can supply a crafted RLE8 or RLE4 BMP
  en…
severity: medium
cvss: 5.5
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H'
cwe:
  - CWE-125
vendor: NetSurf
product: libnsbmp
affected:
  - libnsbmp <= 0.1.7
published: '2026-10-15'
updated: '2026-10-15'
sourceUpdated: '2026-10-15T19:17:27.840'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-111138'
references:
  - url: >-
      https://download.netsurf-browser.org/libs/releases/libnsbmp-0.1.7-src.tar.gz
    label: disclosure@vulncheck.com
  - url: 'https://github.com/netsurf-browser/libnsbmp'
    label: disclosure@vulncheck.com
  - url: >-
      https://github.com/netsurf-browser/libnsbmp/blob/ea063c9f46acb43e90208da14073332b505ef7e7/src/libnsbmp.c#L1096-L1147
    label: disclosure@vulncheck.com
  - url: >-
      https://github.com/netsurf-browser/libnsbmp/blob/ea063c9f46acb43e90208da14073332b505ef7e7/src/libnsbmp.c#L942-L982
    label: disclosure@vulncheck.com
  - url: >-
      https://hackmd.io/@haind-pwn/libnsbmp-rle-absolute-pad-and-ico-mask-oob-read
    label: disclosure@vulncheck.com
  - url: >-
      https://www.vulncheck.com/advisories/netsurf-libnsbmp-through-0.1.7-out-of-bounds-read-in-rle8-and-rle4-decoders
    label: disclosure@vulncheck.com
tags:
  - nvd
  - cve.org
  - exploit-available
ingestedAt: '2026-10-15T19:25:46.411Z'
exploitAvailable: true
ssvc:
  exploitation: poc
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-10-15T19:44:18.693120Z'
---

## Overview

NetSurf libnsbmp through 0.1.7 contains an out-of-bounds read vulnerability in bmp_decode_rle8() and bmp_decode_rle4() because absolute-run bound checks omit the word-alignment pad byte. Attackers can supply a crafted RLE8 or RLE4 BMP ending on an odd-length absolute run to cause a one-byte heap over-read, crashing applications decoding untrusted images.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
