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.
{
"binaries": [
{
"binary_name": "busybox",
"binary_version": "1:1.30.1-4ubuntu6.5"
},
{
"binary_name": "busybox-initramfs",
"binary_version": "1:1.30.1-4ubuntu6.5"
},
{
"binary_name": "busybox-static",
"binary_version": "1:1.30.1-4ubuntu6.5"
},
{
"binary_name": "busybox-syslogd",
"binary_version": "1:1.30.1-4ubuntu6.5"
},
{
"binary_name": "udhcpc",
"binary_version": "1:1.30.1-4ubuntu6.5"
},
{
"binary_name": "udhcpd",
"binary_version": "1:1.30.1-4ubuntu6.5"
}
]
}{
"binaries": [
{
"binary_name": "busybox",
"binary_version": "1:1.30.1-7ubuntu3.1"
},
{
"binary_name": "busybox-initramfs",
"binary_version": "1:1.30.1-7ubuntu3.1"
},
{
"binary_name": "busybox-static",
"binary_version": "1:1.30.1-7ubuntu3.1"
},
{
"binary_name": "busybox-syslogd",
"binary_version": "1:1.30.1-7ubuntu3.1"
},
{
"binary_name": "udhcpc",
"binary_version": "1:1.30.1-7ubuntu3.1"
},
{
"binary_name": "udhcpd",
"binary_version": "1:1.30.1-7ubuntu3.1"
}
]
}{
"binaries": [
{
"binary_name": "busybox",
"binary_version": "1:1.36.1-6ubuntu3.1"
},
{
"binary_name": "busybox-initramfs",
"binary_version": "1:1.36.1-6ubuntu3.1"
},
{
"binary_name": "busybox-static",
"binary_version": "1:1.36.1-6ubuntu3.1"
},
{
"binary_name": "busybox-syslogd",
"binary_version": "1:1.36.1-6ubuntu3.1"
},
{
"binary_name": "udhcpc",
"binary_version": "1:1.36.1-6ubuntu3.1"
},
{
"binary_name": "udhcpd",
"binary_version": "1:1.36.1-6ubuntu3.1"
}
]
}{
"binaries": [
{
"binary_name": "busybox",
"binary_version": "1:1.37.0-7ubuntu1"
},
{
"binary_name": "busybox-initramfs",
"binary_version": "1:1.37.0-7ubuntu1"
},
{
"binary_name": "busybox-static",
"binary_version": "1:1.37.0-7ubuntu1"
},
{
"binary_name": "busybox-syslogd",
"binary_version": "1:1.37.0-7ubuntu1"
},
{
"binary_name": "udhcpc",
"binary_version": "1:1.37.0-7ubuntu1"
},
{
"binary_name": "udhcpd",
"binary_version": "1:1.37.0-7ubuntu1"
}
]
}{
"binaries": [
{
"binary_name": "busybox",
"binary_version": "1:1.38.0-3ubuntu4"
},
{
"binary_name": "busybox-static",
"binary_version": "1:1.38.0-3ubuntu4"
},
{
"binary_name": "busybox-syslogd",
"binary_version": "1:1.38.0-3ubuntu4"
},
{
"binary_name": "udhcpc",
"binary_version": "1:1.38.0-3ubuntu4"
},
{
"binary_name": "udhcpd",
"binary_version": "1:1.38.0-3ubuntu4"
}
]
}{
"binaries": [
{
"binary_name": "busybox",
"binary_version": "1:1.21.0-1ubuntu1.4+esm1"
},
{
"binary_name": "busybox-initramfs",
"binary_version": "1:1.21.0-1ubuntu1.4+esm1"
},
{
"binary_name": "busybox-static",
"binary_version": "1:1.21.0-1ubuntu1.4+esm1"
},
{
"binary_name": "busybox-syslogd",
"binary_version": "1:1.21.0-1ubuntu1.4+esm1"
},
{
"binary_name": "udhcpc",
"binary_version": "1:1.21.0-1ubuntu1.4+esm1"
},
{
"binary_name": "udhcpd",
"binary_version": "1:1.21.0-1ubuntu1.4+esm1"
}
]
}{
"binaries": [
{
"binary_name": "busybox",
"binary_version": "1:1.22.0-15ubuntu1.4+esm2"
},
{
"binary_name": "busybox-initramfs",
"binary_version": "1:1.22.0-15ubuntu1.4+esm2"
},
{
"binary_name": "busybox-static",
"binary_version": "1:1.22.0-15ubuntu1.4+esm2"
},
{
"binary_name": "busybox-syslogd",
"binary_version": "1:1.22.0-15ubuntu1.4+esm2"
},
{
"binary_name": "udhcpc",
"binary_version": "1:1.22.0-15ubuntu1.4+esm2"
},
{
"binary_name": "udhcpd",
"binary_version": "1:1.22.0-15ubuntu1.4+esm2"
}
]
}{
"binaries": [
{
"binary_name": "busybox",
"binary_version": "1:1.27.2-2ubuntu3.4+esm1"
},
{
"binary_name": "busybox-initramfs",
"binary_version": "1:1.27.2-2ubuntu3.4+esm1"
},
{
"binary_name": "busybox-static",
"binary_version": "1:1.27.2-2ubuntu3.4+esm1"
},
{
"binary_name": "busybox-syslogd",
"binary_version": "1:1.27.2-2ubuntu3.4+esm1"
},
{
"binary_name": "udhcpc",
"binary_version": "1:1.27.2-2ubuntu3.4+esm1"
},
{
"binary_name": "udhcpd",
"binary_version": "1:1.27.2-2ubuntu3.4+esm1"
}
]
}