Knowledge · Embedded Linux

BusyBox vulnerabilities by version: what the NVD counts and what no release fixes

BusyBox 1.36.1: seven CVEs in the NVD, one with CVSS 9.8. 20 more are missing from every version query.

Since 1.36.1 of May 2023, BusyBox has not marked any release as stable. The build systems patch on their own, and the version line in the binary does not show those patches.

Data queried 4 November 2026 · Page updated 4 November 2026 · 8 min readYou make the conformity statement. This page and our reports provide technical findings as its basis.

At a glance
Newest release
1.38.0, 13 May 2026
Last marked stable
1.36.1, 19 May 2023
NVD CVEs for 1.36.1
7, 1 of them with CVSS 9.8
Without NVD version mapping
20 BusyBox CVEs
In the CISA KEV catalogue
none

NVD and busybox.net, queried 4 November 2026

How many CVEs does the NVD list for my BusyBox version?

Counted are CVEs whose NVD configuration lists the version as vulnerable, queried on 4 November 2026 through the NVD API without rejected entries, each hit re-checked against its configuration. The NVD lists BusyBox as cpe:2.3:a:busybox:busybox. The column “Shipped in” names which build system or distribution ships that version.

The count does not fall steadily. 1.36.1 has more than 1.35.0, because the NVD lists four awk vulnerabilities from 2023 (CVE-2023-42363 to -42366) only for exactly 1.36.1. Yocto patches them in 1.35.0 as well.

VersionReleasedShipped inCVEs according to the NVD, of which CVSS 9.0 or higher
1.38.013 May 2026newest version; Yocto 6.1, Buildroot 2026.083 CVEs, none at 9.0 or higher. The NVD lists all three only for exactly 1.38.0 (awk and ash).
1.37.027 Sep 2024Yocto 6.0, OpenWrt 25.12, Buildroot 2025.02 and 2026.02, Debian 132 CVEs, none at 9.0 or higher. Plus CVE-2026-29004 without NVD mapping, 8.1 (CNA), fixed in 1.38.0.
1.36.119 May 2023Yocto 5.0, OpenWrt 23.05 and 24.10, Buildroot 2024.027 CVEs, 1 at 9.0 or higher: CVE-2022-48174.
1.35.026 Dec 2021Yocto 4.0, OpenWrt 22.03, Debian 125 CVEs, 1 at 9.0 or higher.
1.33.230 Nov 2021OpenWrt 21.026 CVEs, 1 at 9.0 or higher.
1.31.125 Oct 2019Yocto 3.115 CVEs, 1 at 9.0 or higher.
1.30.114 Feb 201916 CVEs, 1 at 9.0 or higher.
1.27.217 Aug 201720 CVEs, 2 at 9.0 or higher.
1.24.217 Mar 201620 CVEs, 3 at 9.0 or higher.
BusyBox 1.36.1 in the NVD
curl -s "https://services.nvd.nist.gov/rest/json/cves/2.0?virtualMatchString=cpe:2.3:a:busybox:busybox:1.36.1&noRejected" | jq .totalResults
Output
7
BusyBox 1.38.0 in the NVD
curl -s "https://services.nvd.nist.gov/rest/json/cves/2.0?virtualMatchString=cpe:2.3:a:busybox:busybox:1.38.0&noRejected" | jq .totalResults
Output
3

Which BusyBox CVEs have CVSS 9.0 or higher?

CVE, CVSS (NVD)What, affected versions, fix
CVE-2022-48174, 9.8Stack overflow in the ash shell, triggered by crafted input to the shell. Up to 1.36.1 according to the NVD. The description says “before 1.35”, but the fix (commit d417193 of 12 June 2023, bug 15216) is only included from 1.37.0 on.
CVE-2018-1000517, 9.8Buffer overflow in wget. Before 1.29.0.
CVE-2016-2148, 9.8Heap overflow in the DHCP client udhcpc, triggerable from the network. Up to 1.24.2, fix in 1.25.0.

Which BusyBox vulnerabilities does 1.38.0 not fix either?

For these five vulnerabilities there is no BusyBox release with a fix on 4 November 2026. The fixes sit in the development branch, as a submission to the project, or only as a patch of the build systems, and Yocto or Buildroot add each of them to their 1.38.0 themselves. The NVD count does not reflect this: it does not count four of the five for 1.38.0.

CVE, CVSSWhat, affected according to the NVD, who patches
CVE-2022-28391, 8.8 (NVD)netstat prints DNS names from PTR records to the terminal unfiltered. Up to 1.35.0 according to the NVD. The patch is submitted (bug 15001) and not merged; Yocto and Buildroot carry it for 1.38.0 too. According to Debian only exploitable with musl libc, not with glibc.
CVE-2026-38754, 7.5 (CISA), 5.1 (CNA)Heap overflow in ifsbreakup() of the ash shell. Only 1.38.0 according to the NVD. Fix in the development branch since 6 July 2026; Yocto also patches it in 1.36.1 and 1.37.0.
CVE-2025-60876, 6.5 (CISA)wget passes control characters in the path through, so an attacker can inject header lines into the request. Up to 1.37.0 according to the NVD. wget.c is unchanged in 1.38.0; Yocto and Buildroot patch 1.38.0 too.
CVE-2023-42366, 5.5 (NVD)Heap overflow in next_token() of awk. Only 1.36.1 according to the NVD. Buildroot also patches it in 1.37.0 and 1.38.0.
CVE-2024-58251, 2.5 (CNA)Control characters in a program name block the terminal when netstat prints it. No NVD mapping. Yocto and Buildroot patch 1.38.0.

Which BusyBox CVEs are missing from the version query?

On 4 November 2026, 20 BusyBox CVEs have no NVD configuration (status “Awaiting Analysis” or “Deferred”) and appear in no version query. 15 of them were published between 23 September and 21 October 2026, 14 with Red Hat as CNA. They concern httpd, the TLS code, udhcpc, tar, dpkg and mount, among others. Debian lists all 15 as open in its 1.38.0 package, one of them as unimportant.

BusyBox has published no release since 1.38.0. Fixes for tar and httpd from October 2026 sit only in the development branch.

CVE, score (CNA)What, affected according to the record
CVE-2026-29004, 8.1Heap overflow in the DHCPv6 client udhcpc6 via the DNS_SERVERS option, triggerable from the local network. Fixed in 1.38.0 (commit 42202bf).
CVE-2026-90954, 7.8dpkg-deb writes files outside the target directory via a crafted .deb archive.
CVE-2026-88830, 7.5Heap overflow in the TLS code before any authentication, via a crafted ClientKeyExchange message.
CVE-2026-88832, 7.3Heap overflow when detecting a romfs file system from crafted metadata.
CVE-2026-88829, 7.2The httpd reverse proxy rewrites only the first request of a connection; a second one reaches the backend unchecked.
CVE-2026-26157 and -26158, 7.0 eachtar writes outside the target directory via hard links and symlinks. Fixed in 1.38.0.
CVE-2026-88833, 6.5Integer underflow in udhcpc on raw DHCP packets; a device on the same network crashes the DHCP client.
CVE-2026-108119, 6.3Via a symlink to “..” and a hard link, tar creates a file outside the target directory.

Which BusyBox version do Yocto, OpenWrt and Buildroot ship?

Read from the recipes at the release tags and branches, as of 4 November 2026: Yocto meta/recipes-core/busybox/busybox_<version>.bb, OpenWrt package/utils/busybox/Makefile, Buildroot package/busybox/busybox.mk. Counted are patches that carry a CVE in their name or header.

The patches do not change the version line. A Yocto 5.0 build reports “BusyBox v1.36.1”, and CVE-2022-48174 is fixed in it. An OpenWrt 24.10 build reports the same version, and none of its twelve patches is for ash. A match by version alone cannot tell the two apart. Buildroot 2026.02.3 carries fewer BusyBox patches than 2025.02.19: the fixes for CVE-2026-29004, -26157 and -26158 are missing there.

Build system, releaseBusyBox, patches with a CVE
Yocto 6.1 Blacksail1.38.0, patches for 4 CVEs: CVE-2022-28391, CVE-2024-58251, CVE-2025-60876, CVE-2026-38754
Yocto 6.0 Wrynose (LTS until April 2030)1.37.0, patches for 7 CVEs, among them CVE-2026-29004
Yocto 5.0 Scarthgap (LTS until April 2028)1.36.1, patches for 13 CVEs, among them CVE-2022-48174 and CVE-2026-29004
Yocto 4.0 Kirkstone (maintenance ended April 2026)1.35.0, patches for 11 CVEs
OpenWrt 25.12.61.37.0, 16 patches, none names a CVE
OpenWrt 24.10.81.36.1, 12 patches, none names a CVE
OpenWrt 23.05.61.36.1, 11 patches, none names a CVE
OpenWrt 22.03.71.35.0, patch for CVE-2022-30065
Buildroot 2026.08.11.38.0, patches for 4 CVEs: CVE-2022-28391, CVE-2023-42366, CVE-2024-58251, CVE-2025-60876
Buildroot 2026.02.31.37.0, patches for 4 CVEs: CVE-2022-28391, CVE-2023-42366, CVE-2025-46394, CVE-2025-60876
Buildroot 2025.02.19 (LTS until March 2028)1.37.0, patches for 9 CVEs
Buildroot 2024.02.13 (no longer maintained)1.36.1, patches for 5 CVEs
Debian 13 trixie1:1.37.0-6
Debian 12 bookworm1:1.35.0-4+deb12u1

Where is the BusyBox version in the binary?

BusyBox writes its version into the binary as one contiguous string, in bb_banner from libbb/messages.c: “BusyBox v”, the version and a suffix in brackets. In the original the suffix is the build time in the format YYYY-MM-DD hh:mm:ss UTC. Distributions set text of their own, Debian for example the package version. On the device, busybox without arguments prints the same line, followed by “multi-call binary.”

The line names the upstream version. Patches of the build system are not in it; they are in the build's recipe.

The version line in the 1.38.0 source
curl -s https://raw.githubusercontent.com/mirror/busybox/1_38_0/libbb/messages.c | grep -n -E "bb_banner\[\]|define BB_EXTRA_VERSION"

Output

11:#define BB_EXTRA_VERSION " ("AUTOCONF_TIMESTAMP")"
14:const char bb_banner[] ALIGN1 = "BusyBox v" BB_VER BB_EXTRA_VERSION;
Version line in the Debian package busybox-static 1:1.37.0-6+b9
strings -a usr/bin/busybox | grep -m1 "^BusyBox v"

Output

BusyBox v1.37.0 (Debian 1:1.37.0-6+b9)

How do I check this by hand?

  1. 1

    Read the version: strings -a bin/busybox | grep -m1 "^BusyBox v" in the unpacked file system, on the device busybox | head -1.

  2. 2

    Clarify the origin: Yocto, Buildroot, OpenWrt or a build of your own. For Yocto and Buildroot read the patches in the recipe; they are not in the version line.

  3. 3

    Determine the applets: busybox --list on the device or the build's .config. A vulnerability in httpd, udhcpc6, tar or dpkg only affects builds that contain that applet.

  4. 4

    Network applets first: udhcpc, udhcpc6, httpd, wget and ntpd are reachable from the network, awk and the shell mostly only through local input.

  5. 5

    Query the NVD with cpe:2.3:a:busybox:busybox:<version>, then read the CVEs without NVD mapping against your version, for example in Debian's security tracker for busybox.

  6. 6

    Check the CISA KEV catalogue for actively exploited vulnerabilities.

Can this run automatically?

LegacyMind reads BusyBox, the kernel and the packages with their versions from the image and checks each against the public vulnerability sources, with the place in the image where it was found and a note whether a vulnerability is actively exploited. If the image proves no version, the field stays empty.

Questions

How many CVEs does BusyBox 1.36.1 have?

The NVD lists seven on 4 November 2026, one of them with CVSS 9.8 (CVE-2022-48174). On top come BusyBox CVEs without NVD mapping, such as CVE-2026-29004 in the DHCPv6 client, which only 1.38.0 fixes, and CVE-2022-28391, which the NVD lists only up to 1.35.0.

Is BusyBox 1.38.0 free of known vulnerabilities?

No. The NVD counts three CVEs. Yocto and Buildroot additionally patch 1.38.0 against CVE-2022-28391, CVE-2024-58251 and CVE-2025-60876, and Debian lists 15 BusyBox CVEs from September and October 2026 as open for its 1.38.0 package.

Which BusyBox version is the stable one?

The last release the project marked as stable is 1.36.1 of 19 May 2023. 1.37.0 and 1.38.0 were published as “unstable”, without bug-fix releases of the form 1.37.1.

Why does my Yocto build report 1.36.1 although vulnerabilities are fixed?

Yocto 5.0 ships 1.36.1 with patches for 13 CVEs. The version line in the binary stays “BusyBox v1.36.1”. Which vulnerabilities are fixed is in the recipe busybox_1.36.1.bb of your layer.

Is a BusyBox vulnerability actively exploited?

As of 4 November 2026 no BusyBox vulnerability is in the CISA catalogue of known exploited vulnerabilities (catalogue version 2026.11.03, 1,767 entries).

Does BusyBox belong in the SBOM?

Yes, as a component with its version. Which applets are built and which patches the build system applied decides which of the CVEs actually hit the device.

Sources

  1. [1]BusyBox: releases and changes
  2. [2]NVD: CVE-2022-48174
  3. [3]NVD: CVE-2022-28391
  4. [4]CVE.org: CVE-2026-29004
  5. [5]Debian: Security Tracker busybox
  6. [6]Yocto Project: Releases
  7. [7]Buildroot: busybox.mk, release 2026.08.1
  8. [8]OpenWrt: BusyBox package, release 24.10.8
  9. [9]NIST NVD: CVE API 2.0
  10. [10]CISA: Known Exploited Vulnerabilities Catalog

Check your own image

Upload one firmware image, an AXF or a supplier SBOM in your own LegacyMind account. Report and SBOM within three working days, NDA on request. The app and the reports are in German; questions in English are welcome.