CoreDNS DoH/DoQ/gRPC bypass UPDATE rejection enforced on UDP/TCP
CoreDNS is a DNS server written in Go. Prior to 1.14.7, the DNS-over-HTTPS, DNS-over-HTTP/3, DNS-over-QUIC, and DNS-over-gRPC listeners in plugin/pkg/doh/doh.go, core/dnsserver/server_quic.go, and core/dnsserver/server_grpc.go call dns.Msg.Unpack without the dns.DefaultMsgAcceptFunc request policy used by UDP, TCP, and DNS-over-TLS. An unauthenticated client can send an RFC 2136 UPDATE that the proxy or forward plugin passes unchanged to an update-capable upstream. If that upstream trusts CoreDNS's source address or connection and does not require an attacker-unknown end-to-end TSIG, the request appears to originate from CoreDNS and can add, replace, or delete DNS records, redirect traffic, take over names, alter mail routing, or disrupt the writable zone. This issue is fixed in version 1.14.7.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-86003
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 08:37 UTC · Revision 1
Source evidence
CoreDNS DoH/DoQ/gRPC bypass UPDATE rejection enforced on UDP/TCP
core-osv · Original sourcePublished 16 Sept 2026, 18:39 UTC
CoreDNS is a DNS server written in Go. Prior to 1.14.7, the DNS-over-HTTPS, DNS-over-HTTP/3, DNS-over-QUIC, and DNS-over-gRPC listeners in plugin/pkg/doh/doh.go, core/dnsserver/server_quic.go, and core/dnsserver/server_grpc.go call dns.Msg.Unpack without the dns.DefaultMsgAcceptFunc request policy used by UDP, TCP, and DNS-over-TLS. An unauthenticated client can send an RFC 2136 UPDATE that the proxy or forward plugin passes unchanged to an update-capable upstream. If that upstream trusts CoreDNS's source address or connection and does not require an attacker-unknown end-to-end TSIG, the request appears to originate from CoreDNS and can add, replace, or delete DNS records, redirect traffic, take over names, alter mail routing, or disrupt the writable zone. This issue is fixed in version 1.14.7.
osv:CVE-2026-86003
Complete source record
{
"id": "e8faf84e2e4c9e09f6ad90819ad702a96c9f44b3fe9505bf62f8cda6ed607d95",
"url": "https://osv.dev/vulnerability/CVE-2026-86003",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "CoreDNS DoH/DoQ/gRPC bypass UPDATE rejection enforced on UDP/TCP",
"summary": "CoreDNS is a DNS server written in Go. Prior to 1.14.7, the DNS-over-HTTPS, DNS-over-HTTP/3, DNS-over-QUIC, and DNS-over-gRPC listeners in plugin/pkg/doh/doh.go, core/dnsserver/server_quic.go, and core/dnsserver/server_grpc.go call dns.Msg.Unpack without the dns.DefaultMsgAcceptFunc request policy used by UDP, TCP, and DNS-over-TLS. An unauthenticated client can send an RFC 2136 UPDATE that the proxy or forward plugin passes unchanged to an update-capable upstream. If that upstream trusts CoreDNS's source address or connection and does not require an attacker-unknown end-to-end TSIG, the request appears to originate from CoreDNS and can add, replace, or delete DNS records, redirect traffic, take over names, alter mail routing, or disrupt the writable zone. This issue is fixed in version 1.14.7.",
"evidence": "osv:CVE-2026-86003",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2026-86003",
"aliases": [
"CVE-2026-86003",
"GHSA-9gm5-9rfh-m6vx",
"GO-2026-6506"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/coredns/coredns",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "427fc80ed9ca47f354585eb30a3f1332950856c4"
},
{
"fixed": "530b0a5ff2ad68cc0421f10dd93568945cc671c9"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "1.14.7"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "530b0a5ff2ad68cc0421f10dd93568945cc671c9"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "427fc80ed9ca47f354585eb30a3f1332950856c4"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v1.14.7"
}
]
}
}
],
"versions": [
"v1.14.6",
"v1.14.5",
"v1.14.4",
"v1.14.3",
"v1.14.2",
"v1.14.1",
"v1.14.0",
"v1.13.2",
"v1.13.1",
"v1.13.0",
"v1.12.4",
"v1.12.3",
"v1.12.2",
"v1.12.1",
"v1.12.0",
"v1.11.4",
"v1.11.3",
"v1.11.1",
"v1.11.0",
"v1.10.1",
"v1.10.0",
"v1.9.4",
"v1.9.3",
"v1.9.2",
"v1.9.1",
"v1.9.0",
"v1.8.7",
"v1.8.6",
"v1.8.5",
"v1.8.4",
"v1.8.3",
"v1.8.2",
"v1.8.1",
"v1.8.0",
"v1.7.1",
"v1.7.0",
"v1.6.9",
"v1.6.8",
"v1.6.7",
"v1.6.6",
"v1.6.5",
"v1.6.4",
"v1.6.3",
"v1.6.2",
"v1.6.1",
"v1.6.0",
"v1.5.2",
"v1.5.1",
"v1.5.0",
"v1.4.0",
"v1.3.1",
"v1.3.0",
"v1.2.6",
"v1.2.5",
"v1.2.4",
"v1.2.3",
"v1.2.2",
"v1.2.1",
"v1.2.0",
"v1.1.4",
"v1.1.3",
"v1.1.2",
"v1.1.1",
"v1.1.0",
"v1.0.6",
"v1.0.5",
"v1.0.3",
"v1.0.2",
"v1.0.1",
"v1.0.0",
"v0.9.10",
"v0.9.9",
"v011",
"v010",
"v009",
"v008",
"v007",
"v006",
"v005",
"v004",
"v003",
"v002",
"v001"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-86003.json"
}
}
],
"modified": "2026-10-28T02:30:27.294753034Z",
"provider": "osv",
"references": [
"https://github.com/coredns/coredns/releases/tag/v1.14.7",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/86xxx/CVE-2026-86003.json",
"https://github.com/coredns/coredns/security/advisories/GHSA-9gm5-9rfh-m6vx",
"https://nvd.nist.gov/vuln/detail/CVE-2026-86003",
"https://github.com/coredns/coredns/commit/530b0a5ff2ad68cc0421f10dd93568945cc671c9"
],
"provider_metadata": {
"cwe_ids": [
"CWE-441"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/86xxx/CVE-2026-86003.json"
}
},
"related_cves": [
{
"value": "CVE-2026-86003",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 493899,
"published_at": "2026-09-16T18:39:22.955+00:00"
}