How many CVEs does the NVD list for my dnsmasq version?
Counted are CVEs whose NVD configuration lists the version as vulnerable, queried on 12 November 2026 through the NVD API without rejected entries, each hit re-checked against its configuration. The NVD lists dnsmasq as cpe:2.3:a:thekelleys:dnsmasq. The column “Shipped in” names the build system or distribution that ships this version.
The peak at 2.86 comes from seven CVEs the NVD lists for exactly 2.86. From 2.87 on, no version has a CVE with CVSS 9.0 or higher.
| Version | Released | Shipped in | CVEs in the NVD, of which CVSS 9.0 or higher |
|---|---|---|---|
| 2.93 | 4 Jun 2026 | newest version; OpenWrt 24.10 and 25.12, Yocto 6.0, Buildroot 2025.02 and 2026.08 | 0 CVEs. Plus six CVEs from 29 October 2026 without NVD mapping, none of them fixed in a release. |
| 2.92 | 11 Jan 2026 | as 2.92rel2 of 11 May 2026 in Buildroot 2026.02 | 2 CVEs, none 9.0 or higher (CVE-2026-12725, CVE-2026-12969, fixed in 2.93). Plus, without NVD mapping: the six from October 2026, CVE-2026-6507 and, up to 2.92rel2, the six from May 2026. |
| 2.91 | 20 Mar 2025 | Debian 13 | 2 CVEs, none 9.0 or higher. Plus, without NVD mapping: the six from May 2026 and four from October 2026. |
| 2.90 | 13 Feb 2024 | Yocto 4.0 and 5.0, Debian 12 | 2 CVEs, none 9.0 or higher. Plus, without NVD mapping: the six from May 2026 and four from October 2026. |
| 2.89 | 2 Feb 2023 | 4 CVEs, none 9.0 or higher. | |
| 2.86 | 8 Sep 2021 | 12 CVEs, 7 of them 9.0 or higher (disputed by the developer). | |
| 2.83 | 17 Jan 2021 | 6 CVEs, none 9.0 or higher. | |
| 2.78 | 2 Oct 2017 | 15 CVEs, none 9.0 or higher. | |
| 2.77 | 22 CVEs, 3 of them 9.0 or higher. |
curl -s "https://services.nvd.nist.gov/rest/json/cves/2.0?virtualMatchString=cpe:2.3:a:thekelleys:dnsmasq:2.93&noRejected" \
| jq .totalResults0curl -s "https://services.nvd.nist.gov/rest/json/cves/2.0?virtualMatchString=cpe:2.3:a:thekelleys:dnsmasq:2.90&noRejected" \
| jq .totalResults2Which dnsmasq CVEs have CVSS 9.0 or higher?
| CVE, CVSS (NVD) | What, affected versions, fix |
|---|---|
| CVE-2021-45951 to CVE-2021-45957, 9.8 each | Seven heap overflows from fuzzing findings, listed by the NVD for exactly 2.86. According to the NVD text, the developer's position is that they are not real vulnerabilities. |
| CVE-2017-14491, -14492, -14493, 9.8 each | Three buffer overflows reachable from the network: through a crafted DNS response, a router advertisement request and a DHCPv6 request. Before 2.78, fixed in 2.78. |
Which dnsmasq vulnerabilities does 2.93 not fix either?
On 29 October 2026 Red Hat, as CNA, published six dnsmasq CVEs. On 12 November 2026 the NVD has not mapped them to any version yet, so a version query for 2.93 does not find them. Five are fixed on the development branch, with commits from 16 and 17 October 2026; there is no release with these fixes. CVE-2026-93010 has no fix yet; Debian lists it as unfixed too.
Debian lists four of them as open for 2.90 and 2.91 too. The code behind the other two came with the 2.92 test series; they affect 2.92, 2.92rel2 and 2.93.
After 2.93, further security fixes without a CVE sit on the development branch, among them an out-of-bounds heap write in blockdata_read(), an escape from the TFTP directory through the file name and a double free. They are in no release either.
| CVE, score (CNA) | What, where fixed |
|---|---|
| CVE-2026-93006, 6.8 | The TFTP server serves wrong file contents because a cache is not invalidated after a transfer. Fixed on the development branch only. |
| CVE-2026-93008, 6.8 | When following a CNAME, the resolver caches records without checking that they belong to the responding server's zone. Affects split DNS setups. Fixed on the development branch only. |
| CVE-2026-93007, 5.3 | TCP DNS has a small pool of child processes and no receive timeout; idle connections to port 53 exhaust it. Fixed on the development branch only. |
| CVE-2026-93011, 5.3 | The DNSSEC validator writes a few bytes past a name buffer. Fixed on the development branch only. |
| CVE-2026-93009, 4.3 | The DHCPv6 hostname parser reads one byte past a crafted FQDN option. Fixed on the development branch only. |
| CVE-2026-93010, 4.3 | With DHCP leasequery enabled and no list of allowed senders, the server hands lease data to any host on the local network. No fix named. |
Which dnsmasq CVEs are missing from the version query?
On 12 November 2026, 13 dnsmasq CVEs have no configuration in the NVD (status “Awaiting Analysis” or “Deferred”). Besides the six from October these are six from 11 May 2026 and one from April 2026, all fixed in 2.93. The interim release 2.92rel2 of 11 May 2026 also fixes the six from May. A fourteenth, CVE-2020-37127, concerns the helper dhcp_release from dnsmasq-utils 2.79.
If you run 2.90, your source decides: Yocto 5.0 carries patches for all six from May and for the two the NVD counts. Debian 12 fixed the six from May with DSA-6264-1 and postponed the other two. Yocto 4.0 carries no CVE patch for 2.90.
| CVE, score (CNA) | What, fixed in |
|---|---|
| CVE-2026-4892, up to 8.8 | Out-of-bounds write in the DHCPv6 code; according to the record a local attacker can run code with root privileges. 2.92rel2 and 2.93. |
| CVE-2026-6507, 7.5 | Out-of-bounds write through a crafted BOOTREPLY packet. 2.93. |
| CVE-2026-4890, 7.5 | Crash of the DNSSEC validation through a crafted DNS packet. 2.92rel2 and 2.93. |
| CVE-2026-2291, 7.3 | Heap overflow in extract_name(); allows false entries in the DNS cache. 2.92rel2 and 2.93, Debian 12 and 13 through DSA-6264-1. |
| CVE-2026-5172, up to 7.5 | Out-of-bounds read in extract_addresses() through a malformed DNS response. 2.92rel2 and 2.93. |
| CVE-2026-4891, up to 7.5 | Out-of-bounds read in the DNSSEC validation. 2.92rel2 and 2.93. |
| CVE-2026-4893, 5.3 | Bypass of the source check through RFC 7871 client subnet information. 2.92rel2 and 2.93. |
Which dnsmasq version do Yocto, OpenWrt and Buildroot ship?
Read from the recipes at the release tags and branches on 12 November 2026: Yocto meta-networking/recipes-support/dnsmasq in meta-openembedded, OpenWrt package/network/services/dnsmasq/Makefile, Buildroot package/dnsmasq/dnsmasq.mk. Counted are patches that name a CVE in their file name or header.
So two devices reporting “dnsmasq-2.90” can stand very differently: a Yocto 5.0 build with eight fixes applied, a Yocto 4.0 build with none.
| Build system, release | dnsmasq, patches naming a CVE |
|---|---|
| Yocto 6.0 Wrynose (LTS until April 2030) | 2.93, none |
| Yocto 5.0 Scarthgap (LTS until April 2028) | 2.90, patches for 8 CVEs: CVE-2026-2291, -4890, -4891, -4892, -4893, -5172, -12725, -12969 |
| Yocto 4.0 Kirkstone (maintenance ended April 2026) | 2.90, none |
| OpenWrt 25.12.6 | 2.93, 2 patches, none names a CVE |
| OpenWrt 24.10.8 | 2.93, 2 patches, none names a CVE |
| Buildroot 2026.08.1 | 2.93, no patches |
| Buildroot 2026.02.3 | 2.92rel2, no patches |
| Buildroot 2025.02.19 (LTS until March 2028) | 2.93, no patches |
| Debian 13 trixie | 2.91-1+deb13u2, the six from May and CVE-2026-12725, -12969 fixed |
| Debian 12 bookworm | 2.90-4~deb12u2, the six from May fixed, CVE-2026-12725 and -12969 postponed |
Where is the dnsmasq version in the binary?
dnsmasq stores its version in src/option.c as the text “dnsmasq-<version>” and answers the DNS query for version.bind in class CHAOS with it. That does not hold for OpenWrt: OpenWrt builds dnsmasq with -DNO_ID, and both the text and the answer are missing. The binary then holds only the version number, directly before the text “Dnsmasq version %s”. With the option --no-ident any other build switches the answer off as well. dnsmasq --version and the start line in the syslog show the version in every case.
The line names the upstream version. Debian's security patches do not change it; a build system's patches are in its recipe.
strings -a usr/sbin/dnsmasq | grep -m1 "^dnsmasq-[0-9]"dnsmasq-2.91strings -a usr/sbin/dnsmasq | grep -B1 -m1 "^Dnsmasq version"Output
2.93
Dnsmasq version %s %sHow do I check this by hand?
- 1
Read the version:
strings -a usr/sbin/dnsmasq | grep -m1 "^dnsmasq-[0-9]"in the unpacked file system, for OpenWrtgrep -B1 -m1 "^Dnsmasq version"instead of the first pattern, on the devicednsmasq --version. - 2
Find the origin: Yocto, Buildroot, OpenWrt or a build of your own. For Yocto, read the patches in the recipe; they are not in the version line.
- 3
Find the features: does the device run DHCPv6, TFTP, DNSSEC validation or leasequery? Several of the 2026 vulnerabilities only affect devices that use the feature.
- 4
Query the NVD with
cpe:2.3:a:thekelleys:dnsmasq:<version>, then read the CVEs without NVD mapping against your version, for example in Debian's security tracker for dnsmasq. - 5
Check the CISA KEV catalogue for actively exploited vulnerabilities.
Can this be done automatically?
LegacyMind reads dnsmasq, the kernel and the packages with their versions from the image and checks each against the public vulnerability sources, with the location in the image and a note when a vulnerability is actively exploited. If the image proves no version, the field stays empty.
Questions
Does dnsmasq 2.93 have known vulnerabilities?
Yes. The NVD counts zero on 12 November 2026, but six dnsmasq CVEs from 29 October 2026 have no version mapping yet, and no release fixes them. Five are fixed on the development branch only, one not at all yet.
How many CVEs does dnsmasq 2.90 have?
The NVD lists two on 12 November 2026 (CVE-2026-12725 and CVE-2026-12969). On top come, without NVD mapping, the six from May 2026, which only 2.92rel2 and 2.93 fix, and four from October 2026, which no release fixes. Yocto 5.0 patches the eight older ones into its 2.90, Yocto 4.0 none.
Are the CVSS 9.8 vulnerabilities in 2.86 real?
The NVD lists CVE-2021-45951 to -45957 for exactly 2.86 and quotes the developer's position that they are not real vulnerabilities. From 2.87 on the NVD no longer counts them.
How do I find a device's dnsmasq version without a login?
dnsmasq answers the DNS query version.bind in class CHAOS with “dnsmasq-<version>”, for example via dig @<device> version.bind TXT CHAOS. OpenWrt builds dnsmasq without this answer; there only the image helps, where the version number sits before “Dnsmasq version %s”.
Is a dnsmasq vulnerability actively exploited?
As of 12 November 2026 no dnsmasq vulnerability is in the CISA catalogue of known exploited vulnerabilities (catalogue version 2026.11.10, 1,779 entries).
Does dnsmasq belong in the SBOM?
Yes, as a component with its version. Which features are active and which patches the build system applied decide which of the CVEs actually affect the device.
Sources
- [1]dnsmasq: project page and releases
- [2]dnsmasq: git repository
- [3]NVD: CVE-2021-45951
- [4]NVD: CVE-2026-93008
- [5]Debian: security tracker dnsmasq
- [6]OpenWrt: dnsmasq package, release 24.10.8
- [7]Buildroot: dnsmasq.mk, release 2026.08.1
- [8]Yocto Project: releases
- [9]NIST NVD: CVE API 2.0
- [10]CISA: Known Exploited Vulnerabilities Catalog