Fix CVE(s): CVE-2023-50387, CVE-2023-50868
* SECURITY UPDATE: unbounded cryptographic work in DNSSEC validation (KeyTrap). A crafted signed zone could force the validator into the cross product of a DNSKEY RRset's members and an RRset's signatures, stalling the resolver on signature verification. - src/config.h, src/dnsmasq.h, src/dnssec.c, src/forward.c, src/option.c, src/rrfilter.c, man/dnsmasq.8: cap the resources spent validating one query - 20 signature failures per RRset, 200 crypto operations per query, 40 DS/DNSKEY sub-queries per query - and abandon validation with SERVFAIL once a limit is hit; rework validate-by-DS to iterate over supported digest types rather than over every DNSKEY; add --dnssec-limits to override the defaults. - src/dnsmasq.h, src/dnsmasq.c: daemon->rr_status becomes an unsigned long TTL-ceiling array, as required by the imported validation code (upstream ae7a3b9d, first released in 2.81). - src/forward.c: keep the check-unsigned argument of the TCP validation path equal to the UDP one. The imported patch negates it, which is right for 2.90, where the option flag was renamed and inverted (OPT_DNSSEC_IGN_NS, set by --dnssec-check-unsigned=no), and wrong for 2.79, where OPT_DNSSEC_NO_SIGN is still set by --dnssec-check-unsigned itself. - CVE-2023-50387 * SECURITY UPDATE: unbounded NSEC3 hash iterations (KeyTrap) - src/config.h, src/dnssec.c, src/option.c: bound NSEC3 iterations at 150 per RFC 9276 instead of the previous 2500, and count each hash against the per-query crypto budget. - CVE-20
- Products
- dnsmasq, dnsmasq-base, dnsmasq-base-lua, dnsmasq-utils
- Affected versions
- Not specified
- Fixed versions
- 2.79-1ubuntu0.7+tuxcare.els1
- CVEs
- CVE-2023-50387, CVE-2023-50868
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 1 Nov 2026, 11:42 UTC · Revision 1
Source evidence
Fix CVE(s): CVE-2023-50387, CVE-2023-50868
core-osv · Original sourcePublished 1 Sept 2026, 15:13 UTC
* SECURITY UPDATE: unbounded cryptographic work in DNSSEC validation (KeyTrap). A crafted signed zone could force the validator into the cross product of a DNSKEY RRset's members and an RRset's signatures, stalling the resolver on signature verification. - src/config.h, src/dnsmasq.h, src/dnssec.c, src/forward.c, src/option.c, src/rrfilter.c, man/dnsmasq.8: cap the resources spent validating one query - 20 signature failures per RRset, 200 crypto operations per query, 40 DS/DNSKEY sub-queries per query - and abandon validation with SERVFAIL once a limit is hit; rework validate-by-DS to iterate over supported digest types rather than over every DNSKEY; add --dnssec-limits to override the defaults. - src/dnsmasq.h, src/dnsmasq.c: daemon->rr_status becomes an unsigned long TTL-ceiling array, as required by the imported validation code (upstream ae7a3b9d, first released in 2.81). - src/forward.c: keep the check-unsigned argument of the TCP validation path equal to the UDP one. The imported patch negates it, which is right for 2.90, where the option flag was renamed and inverted (OPT_DNSSEC_IGN_NS, set by --dnssec-check-unsigned=no), and wrong for 2.79, where OPT_DNSSEC_NO_SIGN is still set by --dnssec-check-unsigned itself. - CVE-2023-50387 * SECURITY UPDATE: unbounded NSEC3 hash iterations (KeyTrap) - src/config.h, src/dnssec.c, src/option.c: bound NSEC3 iterations at 150 per RFC 9276 instead of the previous 2500, and count each hash against the per-query crypto budget. - CVE-20
osv:CLSA-2026-1788275598
dnsmasq
Fixed versions: 2.79-1ubuntu0.7+tuxcare.els1
dnsmasq-base
Fixed versions: 2.79-1ubuntu0.7+tuxcare.els1
dnsmasq-base-lua
Fixed versions: 2.79-1ubuntu0.7+tuxcare.els1
dnsmasq-utils
Fixed versions: 2.79-1ubuntu0.7+tuxcare.els1
Complete source record
{
"id": "7cd2bc84e904c91fcdf7e6306b5d143aece87ecb1b2cdf2fc668704365f55079",
"url": "https://osv.dev/vulnerability/CLSA-2026-1788275598",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Fix CVE(s): CVE-2023-50387, CVE-2023-50868",
"summary": "* SECURITY UPDATE: unbounded cryptographic work in DNSSEC validation (KeyTrap). A crafted signed zone could force the validator into the cross product of a DNSKEY RRset's members and an RRset's signatures, stalling the resolver on signature verification. - src/config.h, src/dnsmasq.h, src/dnssec.c, src/forward.c, src/option.c, src/rrfilter.c, man/dnsmasq.8: cap the resources spent validating one query - 20 signature failures per RRset, 200 crypto operations per query, 40 DS/DNSKEY sub-queries per query - and abandon validation with SERVFAIL once a limit is hit; rework validate-by-DS to iterate over supported digest types rather than over every DNSKEY; add --dnssec-limits to override the defaults. - src/dnsmasq.h, src/dnsmasq.c: daemon->rr_status becomes an unsigned long TTL-ceiling array, as required by the imported validation code (upstream ae7a3b9d, first released in 2.81). - src/forward.c: keep the check-unsigned argument of the TCP validation path equal to the UDP one. The imported patch negates it, which is right for 2.90, where the option flag was renamed and inverted (OPT_DNSSEC_IGN_NS, set by --dnssec-check-unsigned=no), and wrong for 2.79, where OPT_DNSSEC_NO_SIGN is still set by --dnssec-check-unsigned itself. - CVE-2023-50387 * SECURITY UPDATE: unbounded NSEC3 hash iterations (KeyTrap) - src/config.h, src/dnssec.c, src/option.c: bound NSEC3 iterations at 150 per RFC 9276 instead of the previous 2500, and count each hash against the per-query crypto budget. - CVE-20",
"evidence": "osv:CLSA-2026-1788275598",
"products": [
{
"name": {
"value": "dnsmasq",
"evidence": "/affected/0/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "2.79-1ubuntu0.7+tuxcare.els1",
"evidence": "/affected/0/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "dnsmasq-base",
"evidence": "/affected/1/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "2.79-1ubuntu0.7+tuxcare.els1",
"evidence": "/affected/1/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "dnsmasq-base-lua",
"evidence": "/affected/2/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "2.79-1ubuntu0.7+tuxcare.els1",
"evidence": "/affected/2/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "dnsmasq-utils",
"evidence": "/affected/3/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "2.79-1ubuntu0.7+tuxcare.els1",
"evidence": "/affected/3/ranges"
}
],
"affected_versions": []
}
],
"severity": "unknown",
"structured": {
"id": "CLSA-2026-1788275598",
"aliases": [
"CLSA-2026-1788275598"
],
"affected": [
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "2.79-1ubuntu0.7+tuxcare.els1"
}
]
}
],
"package": {
"name": "dnsmasq",
"purl": "pkg:deb/tuxcare/dnsmasq?distro=ubuntu-18.04",
"ecosystem": "TuxCare:Ubuntu:18.04"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/ubuntu18.04els/CLSA-2026-1788275598.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "2.79-1ubuntu0.7+tuxcare.els1"
}
]
}
],
"package": {
"name": "dnsmasq-base",
"purl": "pkg:deb/tuxcare/dnsmasq-base?distro=ubuntu-18.04",
"ecosystem": "TuxCare:Ubuntu:18.04"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/ubuntu18.04els/CLSA-2026-1788275598.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "2.79-1ubuntu0.7+tuxcare.els1"
}
]
}
],
"package": {
"name": "dnsmasq-base-lua",
"purl": "pkg:deb/tuxcare/dnsmasq-base-lua?distro=ubuntu-18.04",
"ecosystem": "TuxCare:Ubuntu:18.04"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/ubuntu18.04els/CLSA-2026-1788275598.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "2.79-1ubuntu0.7+tuxcare.els1"
}
]
}
],
"package": {
"name": "dnsmasq-utils",
"purl": "pkg:deb/tuxcare/dnsmasq-utils?distro=ubuntu-18.04",
"ecosystem": "TuxCare:Ubuntu:18.04"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/ubuntu18.04els/CLSA-2026-1788275598.json"
}
}
],
"modified": "2026-10-26T09:32:04.281822825Z",
"provider": "osv",
"upstream": [
"CVE-2023-50387",
"CVE-2023-50868"
],
"references": [
"https://errata.tuxcare.com/els_os/ubuntu18.04els/CLSA-2026-1788275598.html",
"https://nvd.nist.gov/vuln/detail/CVE-2023-50387",
"https://nvd.nist.gov/vuln/detail/CVE-2023-50868"
]
},
"related_cves": [
{
"value": "CVE-2023-50387",
"evidence": "/upstream"
},
{
"value": "CVE-2023-50868",
"evidence": "/upstream"
}
],
"security_relevant": true,
"severity_evidence": null
},
"source_id": "core-osv",
"document_id": 449595,
"published_at": "2026-09-01T15:13:29+00:00"
}