{"id":"CVE-2026-90954","aliases":["AZL-109776","BELL-CVE-2026-90954","DEBIAN-CVE-2026-90954","EUVD-2026-100951","GHSA-68qr-37mv-cwhv","UBUNTU-CVE-2026-90954","openSUSE-SU-2026:12376-1"],"status":"published","title":"Busybox: busybox: dpkg-deb extraction-root escape via per-ar-member deferred symlink flush","description":"A flaw was found in BusyBox's dpkg-deb archive extraction. The ar archive handler flushes deferred symlinks after each archive member, unlike the tar, cpio, and unzip handlers which flush once after the last member. A specially crafted .deb archive with two data.tar members can exploit this ordering: the first member declares a symlink pointing to an absolute path (e.g., '/'), which is deferred as unsafe but flushed after the first member. The second member declares a regular file whose path traverses the now-live symlink, resulting in a file being written outside the intended extraction directory. This could allow an attacker to write arbitrary files to arbitrary locations when a user extracts a crafted .deb package.","severity":{"version":"3.1","score":7.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-12","score":0.00235,"percentile":0.14511,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-59"],"published":"2026-10-14T10:00:08Z","modified":"2026-11-05T05:40:51Z","affected":[{"source":"osv","ecosystem":"Azure Linux:3","package":"busybox","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"1.36.1-28"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"busybox","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:1.35.0-4","1:1.35.0-4+deb12u1","1:1.36.0-1~exp1","1:1.36.1-1","1:1.36.1-2","1:1.36.1-3","1:1.36.1-3.1","1:1.36.1-4","1:1.36.1-5","1:1.36.1-6","1:1.36.1-6~exp.1","1:1.36.1-7","1:1.36.1-8","1:1.36.1-9","1:1.37.0-1","1:1.37.0-10","1:1.37.0-10.1","1:1.37.0-2","1:1.37.0-3","1:1.37.0-4","1:1.37.0-5","1:1.37.0-6","1:1.37.0-7","1:1.37.0-8","1:1.37.0-9","1:1.38.0-1","1:1.38.0-2","1:1.38.0-3"]},{"source":"osv","ecosystem":"Debian:13","package":"busybox","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:1.37.0-10","1:1.37.0-10.1","1:1.37.0-6","1:1.37.0-7","1:1.37.0-8","1:1.37.0-9","1:1.38.0-1","1:1.38.0-2","1:1.38.0-3"]},{"source":"osv","ecosystem":"Debian:14","package":"busybox","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:1.37.0-10","1:1.37.0-10.1","1:1.37.0-6","1:1.37.0-7","1:1.37.0-8","1:1.37.0-9","1:1.38.0-1","1:1.38.0-2","1:1.38.0-3"]},{"source":"osv","ecosystem":"Ubuntu:Pro:14.04:LTS","package":"busybox","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:1.20.0-8.1ubuntu1","1:1.20.0-9ubuntu1","1:1.20.0-9ubuntu2","1:1.21.0-1ubuntu1","1:1.21.0-1ubuntu1.4","1:1.21.0-1ubuntu1.4+esm1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:16.04:LTS","package":"busybox","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:1.22.0-15ubuntu1","1:1.22.0-15ubuntu1.4","1:1.22.0-15ubuntu1.4+esm1","1:1.22.0-15ubuntu1.4+esm2"]},{"source":"osv","ecosystem":"Ubuntu:Pro:18.04:LTS","package":"busybox","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:1.22.0-19ubuntu2","1:1.27.2-1ubuntu3","1:1.27.2-1ubuntu4","1:1.27.2-2ubuntu2","1:1.27.2-2ubuntu3","1:1.27.2-2ubuntu3.1","1:1.27.2-2ubuntu3.2","1:1.27.2-2ubuntu3.3","1:1.27.2-2ubuntu3.4","1:1.27.2-2ubuntu3.4+esm1"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"busybox","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:1.30.1-4ubuntu4","1:1.30.1-4ubuntu5","1:1.30.1-4ubuntu6","1:1.30.1-4ubuntu6.1","1:1.30.1-4ubuntu6.2","1:1.30.1-4ubuntu6.3","1:1.30.1-4ubuntu6.4","1:1.30.1-4ubuntu6.5"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"busybox","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:1.30.1-6ubuntu3","1:1.30.1-7ubuntu1","1:1.30.1-7ubuntu2","1:1.30.1-7ubuntu3","1:1.30.1-7ubuntu3.1"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"busybox","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:1.36.1-3ubuntu1","1:1.36.1-6ubuntu1","1:1.36.1-6ubuntu3","1:1.36.1-6ubuntu3.1"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"busybox","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:1.37.0-7ubuntu1","1:1.37.0-10.1ubuntu2","1:1.37.0-10.1ubuntu3","1:1.38.0-3ubuntu1","1:1.38.0-3ubuntu3","1:1.38.0-3ubuntu4"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"busybox","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:1.37.0-4ubuntu1","1:1.37.0-7ubuntu1"]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"busybox","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.38.0-4.1"}]}],"bundled":8}],"products":[{"vendor":"red hat","product":"red hat hardened images"}],"references":[{"url":"https://access.redhat.com/security/cve/CVE-2026-90954","tags":["vdb-entry","x_refsource_REDHAT","report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2533007","tags":["issue-tracking","x_refsource_REDHAT","report"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-90954","tags":["web"]},{"url":"https://github.com/advisories/GHSA-68qr-37mv-cwhv"},{"url":"https://docs.bell-sw.com/security/cves/CVE-2026-90954","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-90954","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2026-90954","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-90954","tags":["report"]},{"url":"","tags":["advisory"]},{"url":"https://www.suse.com/security/cve/CVE-2024-58251","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-108119","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-88829","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-88833","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-88834","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-88842","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-90954","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-92205","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2026-90954","title":"Busybox: busybox: dpkg-deb extraction-root escape via per-ar-member deferred symlink flush","description":"A flaw was found in BusyBox's dpkg-deb archive extraction. The ar archive handler flushes deferred symlinks after each archive member, unlike the tar, cpio, and unzip handlers which flush once after the last member. A specially crafted .deb archive with two data.tar members can exploit this ordering: the first member declares a symlink pointing to an absolute path (e.g., '/'), which is deferred as unsafe but flushed after the first member. The second member declares a regular file whose path traverses the now-live symlink, resulting in a file being written outside the intended extraction directory. This could allow an attacker to write arbitrary files to arbitrary locations when a user extracts a crafted .deb package.","status":"published","published":"2026-10-14T10:00:08.215Z","modified":"2026-11-11T20:15:25.307Z","cvss":[{"version":"3.1","score":7.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high","assessor":"cna"}],"cwes":["CWE-59"],"updated_at":"2026-11-11T21:33:02.961334Z"}],"euvd":[{"id":"EUVD-2026-100951","description":"A flaw was found in BusyBox's dpkg-deb archive extraction. The ar archive handler flushes deferred symlinks after each archive member, unlike the tar, cpio, and unzip handlers which flush once after the last member. A specially crafted .deb archive with two data.tar members can exploit this ordering: the first member declares a symlink pointing to an absolute path (e.g., '/'), which is deferred as unsafe but flushed after the first member. The second member declares a regular file whose path traverses the now-live symlink, resulting in a file being written outside the intended extraction directory. This could allow an attacker to write arbitrary files to arbitrary locations when a user extracts a crafted .deb package.","status":"published","published":"2026-10-14T10:00:08Z","modified":"2026-11-11T20:15:25Z","cvss":[{"version":"3.1","score":7.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-11T22:30:45.298198Z"}],"ghsa":[{"id":"GHSA-68qr-37mv-cwhv","title":"A flaw was found in BusyBox's dpkg-deb archive extraction. The ar archive handler flushes...","description":"A flaw was found in BusyBox's dpkg-deb archive extraction. The ar archive handler flushes deferred symlinks after each archive member, unlike the tar, cpio, and unzip handlers which flush once after the last member. A specially crafted .deb archive with two data.tar members can exploit this ordering: the first member declares a symlink pointing to an absolute path (e.g., '/'), which is deferred as unsafe but flushed after the first member. The second member declares a regular file whose path traverses the now-live symlink, resulting in a file being written outside the intended extraction directory. This could allow an attacker to write arbitrary files to arbitrary locations when a user extracts a crafted .deb package.","status":"published","published":"2026-10-14T12:31:32Z","modified":"2026-10-14T12:31:33Z","cvss":[{"version":"3.1","score":7.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-59"],"updated_at":"2026-11-02T15:13:24.188405Z"}],"nvd":[{"id":"CVE-2026-90954","description":"A flaw was found in BusyBox's dpkg-deb archive extraction. The ar archive handler flushes deferred symlinks after each archive member, unlike the tar, cpio, and unzip handlers which flush once after the last member. A specially crafted .deb archive with two data.tar members can exploit this ordering: the first member declares a symlink pointing to an absolute path (e.g., '/'), which is deferred as unsafe but flushed after the first member. The second member declares a regular file whose path traverses the now-live symlink, resulting in a file being written outside the intended extraction directory. This could allow an attacker to write arbitrary files to arbitrary locations when a user extracts a crafted .deb package.","status":"published","published":"2026-10-14T10:17:57.297Z","modified":"2026-10-19T20:21:10.97Z","cvss":[{"version":"3.1","score":7.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high","assessor":"secondary"}],"cwes":["CWE-59"],"updated_at":"2026-11-02T14:12:58.99337Z"}],"osv":[{"id":"BELL-CVE-2026-90954","title":"CVE-2026-90954 does not affect BellSoft software","status":"withdrawn","published":"2026-10-20T06:09:07.170203Z","modified":"2026-10-21T07:15:07.088344497Z","cvss":[{"version":"3.1","score":7.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T15:28:27.164451Z"},{"id":"DEBIAN-CVE-2026-90954","description":"A flaw was found in BusyBox's dpkg-deb archive extraction. The ar archive handler flushes deferred symlinks after each archive member, unlike the tar, cpio, and unzip handlers which flush once after the last member. A specially crafted .deb archive with two data.tar members can exploit this ordering: the first member declares a symlink pointing to an absolute path (e.g., '/'), which is deferred as unsafe but flushed after the first member. The second member declares a regular file whose path traverses the now-live symlink, resulting in a file being written outside the intended extraction directory. This could allow an attacker to write arbitrary files to arbitrary locations when a user extracts a crafted .deb package.","status":"published","published":"2026-10-14T10:17:57.297Z","modified":"2026-10-23T17:47:30.585902925Z","cvss":[{"version":"3.1","score":7.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T15:46:06.410207Z"},{"id":"UBUNTU-CVE-2026-90954","description":"A flaw was found in BusyBox's dpkg-deb archive extraction. The ar archive handler flushes deferred symlinks after each archive member, unlike the tar, cpio, and unzip handlers which flush once after the last member. A specially crafted .deb archive with two data.tar members can exploit this ordering: the first member declares a symlink pointing to an absolute path (e.g., '/'), which is deferred as unsafe but flushed after the first member. The second member declares a regular file whose path traverses the now-live symlink, resulting in a file being written outside the intended extraction directory. This could allow an attacker to write arbitrary files to arbitrary locations when a user extracts a crafted .deb package.","status":"published","published":"2026-10-14T10:17:00Z","modified":"2026-10-28T17:45:55Z","cvss":[{"version":"3.1","score":7.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T16:57:40.980117Z"},{"id":"AZL-109776","title":"CVE-2026-90954 affecting package busybox 1.36.1-28","description":"A flaw was found in BusyBox's dpkg-deb archive extraction. The ar archive handler flushes deferred symlinks after each archive member, unlike the tar, cpio, and unzip handlers which flush once after the last member. A specially crafted .deb archive with two data.tar members can exploit this ordering: the first member declares a symlink pointing to an absolute path (e.g., '/'), which is deferred as unsafe but flushed after the first member. The second member declares a regular file whose path traverses the now-live symlink, resulting in a file being written outside the intended extraction directory. This could allow an attacker to write arbitrary files to arbitrary locations when a user extracts a crafted .deb package.","status":"published","published":"2026-10-14T10:17:57Z","modified":"2026-11-05T05:40:51Z","updated_at":"2026-11-05T16:41:18.42484Z"},{"id":"openSUSE-SU-2026:12376-1","title":"busybox-1.38.0-4.1 on GA media","description":"These are all security issues fixed in the busybox-1.38.0-4.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2026-11-01T00:00:00Z","modified":"2026-11-02T12:15:05.284080191Z","updated_at":"2026-11-02T16:58:41.463445Z"}]}}
