CoreDNS is a DNS server that chains plugins. In versions prior to 1.14.3, the tsig plugin can be bypassed on non-plain-DNS transports (DoT, DoH, DoH3, DoQ, and gRPC) because it trusts the transport writers TsigStatus() instead of performing verification itself. The DoH and DoH3 writers TsigStatus() always returns nil, the DoT server does not set TsigSecret on the dns.Server, and the DoQ and gRPC writers also unconditionally return nil. This allows an unauthenticated remote client to bypass TSIG-based authentication and access resources intended to be restricted behind a tsig require all policy. Plain DNS over TCP and UDP are not affected. This issue has been fixed in version 1.14.3.
The requirements for the product dictate the use of an established authentication algorithm, but the implementation of the algorithm is incorrect.
| Name | Vendor | Start Version | End Version |
|---|---|---|---|
| Coredns | Coredns.io | * | 1.14.3 (excluding) |