# CVE-2026-9539: libslirp TCP urgent pointer (sosendoob) out-of-bounds heap read and integer underflow host-memory leak

> libslirp, the user-mode networking library embedded in QEMU and other VM/container tooling, validates the TCP urgent pointer against an intermediate buffer size instead of the amount of valid socket data. The resulting integer underflow lets a privileged guest leak up to the whole 128KB receive buffer of the host process, including leftovers from earlier heap allocations. A fix shipped in libslirp v4.9.2 and no in-the-wild exploitation is reported.

- **Published:** 2026-10-28T03:20:45Z
- **Last reviewed:** 2026-10-28T03:20:45Z
- **Canonical:** https://intel.threadlinqs.com/threat/TL-2026-4592
- **ID:** TL-2026-4592
- **Severity:** MEDIUM (CVSS 6.5)
- **Category:** VULNERABILITY
- **Status:** MONITORING
- **Detections:** 9 · **IOCs:** 11 (full data via the Threadlinqs MCP server — Purple tier)
- **CVEs:** CVE-2026-9539

## Description

CVE-2026-9539 is an out-of-bounds heap read and integer underflow in the TCP urgent data handling of libslirp (function sosendoob in src/socket.c, around lines 339-394). libslirp tests the TCP urgent pointer against the size of an intermediate buffer rather than against the amount of valid data held in the socket. When the urgent offset exceeds the valid data, an unsigned length computation underflows and the code reads far more data than intended.

The SLIRP socket send and receive buffers are two 128KB arrays walked by ring-buffer pointers. Because the over-read stays inside the allocated region, AddressSanitizer does not flag it. Per Quarkslab, the data is sent back to the guest over multiple packets and leaks the whole content of the receive buffer. If that memory chunk was previously freed and reallocated, the leak includes leftovers from the earlier allocation, hence the 'heartbleed-like' description.

Per the OSV and Debian records, exploitation requires a privileged guest VM attacker (root or CAP_NET_RAW in the guest) who sends crafted TCP segments with manipulated URG flags and offsets. The impact is confidentiality only: leakage of host-process heap memory. The CVSS 3.1 vector records a changed scope (AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N, 6.5 Medium). The record does not state that the leak was chained to code execution.

The bug was found by Bruce Chen and Shi Weiming of STAR Labs SG Pte. Ltd. and reported to libslirp in May 2026. Quarkslab (Jérémy Marchand) documented a LibAFL-QEMU incremental-snapshot stateful fuzzer used to explore TCP state machines in libslirp. Its code is public at github.com/quarkslab/slirp_snapshots_stateful. The Quarkslab write-up describes detection through UBSAN (-fsanitize=unsigned-integer-overflow,signed-integer-overflow, which flags the underflow at line 394) or through custom ASAN poisoning of the ring-buffer memory.

All libslirp versions from v0.6.0 through v4.9.1 are affected and v4.9.2 is the first fixed release. The fix commits are 97b325339a1377249e68e6c58e9c15a6e1bba4c1 and 927bca7344e31fd58e2f7afaca784aad4400eb84. Distributions have backported fixes: Debian trixie 4.8.0-1+deb13u1 and SUSE Linux Micro 6.1 libslirp0 4.8.0+2-slfo.1.1_2.1. Debian bookworm 4.7.0-1 remains vulnerable, with the update postponed as a minor issue. No network IOCs, malware, or threat-actor activity are reported.

## MITRE ATT&CK

- T1611 Escape to Host
- T1005 Data from Local System
- T1212 Exploitation for Credential Access
- T1048 Exfiltration Over Alternative Protocol

## Sources

- [Snapshotting our way to CVE-2026-9539 (Quarkslab, Jérémy Marchand)](http://blog.quarkslab.com/snapshotting-our-way-to-cve-2026-9539.html)
- [libslirp GitLab issue #93](https://gitlab.freedesktop.org/slirp/libslirp/-/work_items/93)
- [quarkslab/slirp_snapshots_stateful (LibAFL-QEMU snapshot fuzzer)](https://github.com/quarkslab/slirp_snapshots_stateful)
- [OSV: CVE-2026-9539](https://osv.dev/vulnerability/CVE-2026-9539)
- [NVD: CVE-2026-9539](https://nvd.nist.gov/vuln/detail/CVE-2026-9539)
- [Debian Security Tracker: CVE-2026-9539](https://security-tracker.debian.org/tracker/CVE-2026-9539)
- [SUSE-SU-2026:22452-1 Security update for libslirp](https://lists.suse.com/pipermail/sle-updates/2026-July/047954.html)
- [libslirp v4.9.2 release](https://gitlab.freedesktop.org/slirp/libslirp/-/releases/v4.9.2)
- [libslirp fix commit 927bca73](https://gitlab.freedesktop.org/slirp/libslirp/-/commit/927bca7344e31fd58e2f7afaca784aad4400eb84)
- [SUSE CVE page for CVE-2026-9539](https://www.suse.com/security/cve/CVE-2026-9539.html)

## Full data

Detection queries (Splunk SPL / Microsoft KQL / Sigma) and IOC values require the Threadlinqs MCP server (Purple tier): https://intel.threadlinqs.com/mcp

Canonical: https://intel.threadlinqs.com/threat/TL-2026-4592
