{"id":"CVE-2026-120830","kind":"vulnerability","aliases":["CVE-2026-120830"],"related":[],"title":"libslirp: ICMP error handling can leak host memory to guests","description":"A flaw was found in libslirp in icmp_forward_error(). When building an ICMP error response, the length of the quoted original IPv4 packet was taken from the IP header without clamping it to the actual buffer length. A truncated or malformed packet could cause an out-of-bounds heap read, leaking host memory into the ICMP error packet returned to a guest or container.","summary":"libslirp is the user-mode networking library used by QEMU and similar virtual machine tools. A malformed or truncated IPv4 packet can make its ICMP error builder read past a heap buffer and copy the extra host memory into the error reply sent back to a guest or container.","severity":"high","cvss":7.4,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"libslirp","fixed":["4.9.7"],"affected":"< 4.9.7 (first affected version not stated in sources)","ecosystem":"upstream"}],"ecosystems":[],"tags":["containers","libslirp","package","qemu","virtual-machines"],"not_affected_if":["no-libslirp","other-network-backend"],"how_to_check":"- Run `pkg-config --modversion slirp`; versions below 4.9.7 (upstream) are not fixed unless your distro backported commit 21b33a6.\n- Check whether QEMU uses user-mode networking (`-netdev user` / `-net user`) or links libslirp (`ldd $(which qemu-system-x86_64) | grep slirp`). Also check any container/VM tool (e.g. rootless network stacks) that bundles libslirp.\n- QEMU builds with the bundled submodule (--enable-slirp=git) need QEMU rebuilt or updated with the fixed submodule.","fix":"Upgrade libslirp to 4.9.7 (released 2026-10-30) or later; upstream commit 21b33a6 clamps the quoted IP length to the source mbuf length in icmp_forward_error(). Distributions that backport may keep an older version number: check your vendor's advisory.","status":"open","published_at":"2026-11-03T00:17:18+00:00","first_seen_at":"2026-11-03T00:47:01+00:00","triaged_at":"2026-11-03T00:48:15+00:00","updated_at":"2026-11-03T00:49:35+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-11-03T00:48:15Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"local","title":"libslirp: ICMP error handling can leak host memory to guests","impact":"medium","summary":"libslirp is the user-mode networking library used by QEMU and similar virtual machine tools. A malformed or truncated IPv4 packet can make its ICMP error builder read past a heap buffer and copy the extra host memory into the error reply sent back to a guest or container.","audience":"developers","category":"package","nicknames":[],"who_cares":["libslirp","qemu","virtual-machines","containers"],"confidence":0.5,"fix_status":"unknown","needs_auth":"unknown","worst_case":"host heap memory leaks into guest-visible ICMP error packets","analyst_note":"Find the affected and fixed libslirp versions and the upstream patch; the NVD entry alone does not give ranges.","how_to_check":"- Check whether the application links libslirp, for example `qemu-system-*` built with user-mode networking (`-netdev user`).\n- Check the installed libslirp version with `pkg-config --modversion slirp` where available.\n- unknown for other checks; the sources do not say.","plain_action":"","needs_analyst":true,"not_affected_if":["no-libslirp","other-network-backend"],"who_is_affected":"Systems that run guests or containers through libslirp user-mode networking, where a guest can send malformed IPv4 traffic that triggers an ICMP error reply. Hosts that do not use libslirp, or that use other network backends, are not described as exposed. The sources do not name affected versions.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"unknown"},"cost_usd":0.000697,"input_tokens":4126,"output_tokens":568,"severity_before":"high"},"analyst_status":"done","analyst_note":"Find the affected and fixed libslirp versions and the upstream patch; the NVD entry alone does not give ranges.","search":"'-120830':13A,16A '-2026':12A,15A 'actual':110C 'back':69B 'bound':124C 'buffer':57B,111C 'build':86C 'builder':52B 'caus':119C 'clamp':106C 'contain':18B,74B,140C 'copi':59B 'could':118C 'cve':11A,14A 'error':3A,51B,66B,84C,89C,133C 'extra':61B 'flaw':76C 'forward':83C 'found':78C 'guest':10A,72B,138C 'handl':4A 'header':104C 'heap':56B,125C 'host':7A,62B,128C 'icmp':2A,50B,82C,88C,132C 'ip':103C 'ipv4':45B,97C 'leak':6A,127C 'length':92C,112C 'librari':32B 'libslirp':1A,17A,19B,25B,80C 'machin':24B,39B 'make':48B 'malform':42B,116C 'memori':8A,63B,129C 'mode':30B 'network':31B 'origin':96C 'out-of-bound':121C 'packag':20B 'packet':46B,98C,117C,134C 'past':54B 'qemu':21B,35B 'quot':95C 'read':53B,126C 'repli':67B 'respons':90C 'return':135C 'sent':68B 'similar':37B 'taken':100C 'tool':40B 'truncat':44B,114C 'use':33B 'user':29B 'user-mod':28B 'virtual':23B,38B 'virtual-machin':22B 'without':105C","nicknames":[],"mitigations":[],"who_affected":"Systems that run guests or containers through libslirp user-mode networking, where a guest can send malformed IPv4 traffic that triggers an ICMP error reply. Hosts that do not use libslirp, or that use other network backends, are not described as exposed. The sources do not name affected versions.","tier":"B","verified":{"fix":{"at":"2026-11-03T00:49:35Z","by":"analyst","doc":"https://gitlab.freedesktop.org/slirp/libslirp/-/commit/21b33a6c5588af9f58d15e528fdc1019452708e4","run_id":1442}},"analyst_revisit_at":null,"fix_status":"available","audience":"developers","plain_action":null,"pkeys":["libslirp"],"ptokens":["libslirp"],"labels":["containers","high","libslirp","package","qemu","virtualmachines"],"first_public_at":"2026-11-03T00:17:18+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N","cvss_by":"secalert@redhat.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-120830","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-120830","severity":null,"published_at":"2026-11-03T00:17:18+00:00","modified_at":"2026-11-03T00:17:19+00:00","first_seen_at":"2026-11-03T00:47:01+00:00","fetched_at":"2026-11-03T00:47:01+00:00","note":null},{"source":"analyst","external_id":"CVE-2026-120830:1442","url":null,"severity":null,"published_at":"2026-11-03T00:49:35+00:00","modified_at":"2026-11-03T00:49:35+00:00","first_seen_at":"2026-11-03T00:49:35+00:00","fetched_at":"2026-11-03T00:49:35+00:00","note":"Upstream CHANGELOG lists the fix in 4.9.7 (2026-10-30); commit 21b33a6 adds the missing clamp (diff read). Red Hat page (reporter Piyusha Akash) lists no workaround and no fixed RHEL package yet. Introduction version of the bug not found; lower bound unknown. No exploitation or PoC found. Related sibling: CVE-2026-115449 (4.9.6)."}],"documents":[{"id":54653,"url":"https://qemu.googlesource.com/libslirp/+/refs/heads/master/CHANGELOG.md","title":"libslirp CHANGELOG (4.9.7 - 2026-10-30)","kind":"release","source":"analyst","publisher":null,"text":null,"published_at":null,"relation":"fix","confidence":null,"note":null},{"id":54654,"url":"https://gitlab.freedesktop.org/slirp/libslirp/-/commit/21b33a6c5588af9f58d15e528fdc1019452708e4","title":"libslirp commit 21b33a6: icmp_forward_error: Fix Out-of-Bounds Heap Read & Information Disclosure","kind":"advisory","source":"analyst","publisher":null,"text":"Upstream fix, in src/ip_icmp.c icmp_forward_error(): adds 'if (s_ip_len > msrc->m_len) s_ip_len = msrc->m_len;' before m->m_len is set. Shipped in libslirp 4.9.7 (2026-10-30). Mirror: https://qemu.googlesource.com/libslirp/+/21b33a6","published_at":null,"relation":"advisory","confidence":null,"note":null},{"id":54655,"url":"https://access.redhat.com/security/cve/cve-2026-120830","title":"Red Hat CVE-2026-120830","kind":"vendor","source":"analyst","publisher":null,"text":null,"published_at":null,"relation":"describes","confidence":null,"note":null}],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}