Skip to content

AdGuard DNS incorrectly returns CNAME value for TXT queries #886

Open
@cunneen

Description

@cunneen

Platform

Other

Protocol

Regular

Do you use AdGuard app?

Yes I am

Your configuration

No response

Traceroute to AdGuard DNS

traceroute to 94.140.14.14 (94.140.14.14), 64 hops max, 40 byte packets
 1  10.0.0.1 (10.0.0.1)  42.787 ms  24.597 ms  2.991 ms
 2  192.168.30.99 (192.168.30.99)  3.446 ms  3.296 ms  2.612 ms
 3  vl998.core1-m1.as132405.net (103.13.86.193)  12.141 ms  17.422 ms  12.233 ms
 4  et15-707.nxtpe01.per01.nexthop.net.au (103.232.248.118)  19.077 ms  11.383 ms  11.007 ms
 5  et51-1-5.nxtpe04.syd01.nexthop.net.au (103.251.4.18)  87.679 ms  161.864 ms  54.689 ms
 6  et30-1.nxtpe01.syd01.nexthop.net.au (103.251.4.52)  55.728 ms  52.550 ms  64.488 ms
 7  202.77.88.64 (202.77.88.64)  66.835 ms  120.486 ms  53.089 ms
 8  dns.adguard-dns.com (94.140.14.14)  53.371 ms  55.546 ms  57.695 ms

Issue Details

For a domain that has both a CNAME and a TXT record with identical names e.g.:

foo.eggmaps.com.	300	IN	TXT	"bar"
foo.eggmaps.com.	64	IN	CNAME	www.example.com.

AdGuard DNS incorrectly returns the CNAME data even when the query type is TXT :

; <<>> DiG 9.10.6 <<>> +nsid TXT foo.eggmaps.com @dns.adguard.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27431
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 0
; NSID
;; QUESTION SECTION:
;foo.eggmaps.com.		IN	TXT

;; ANSWER SECTION:
foo.eggmaps.com.	64	IN	CNAME	www.example.com.
www.example.com.	64	IN	CNAME	www.example.com-v4.edgesuite.net.
www.example.com-v4.edgesuite.net. 64 IN	CNAME	a1422.dscr.akamai.net.

;; AUTHORITY SECTION:
dscr.akamai.net.	64	IN	SOA	n0dscr.akamai.net. hostmaster.akamai.com. 1738136155 1000 1000 1000 1800

;; Query time: 53 msec
;; SERVER: 94.140.15.15#53(94.140.15.15)
;; WHEN: Wed Jan 29 15:39:51 AWST 2025
;; MSG SIZE  rcvd: 213

Other DNS services return the correct answer for the query's record type. E.g. with cloudflare:

; <<>> DiG 9.10.6 <<>> +nsid TXT foo.eggmaps.com @1.1.1.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7259
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; NSID: 38 34 6d 34 34 ("84m44")
;; QUESTION SECTION:
;foo.eggmaps.com.		IN	TXT

;; ANSWER SECTION:
foo.eggmaps.com.	300	IN	TXT	"bar"

;; Query time: 53 msec
;; SERVER: 1.1.1.1#53(1.1.1.1)
;; WHEN: Wed Jan 29 15:40:13 AWST 2025
;; MSG SIZE  rcvd: 69

Google, Cloudflare and OpenDNS all behave properly.

Expected Behavior

I expected the AdGuard DNS server to return the TXT record when requested, and the CNAME record when requested.

Actual Behavior

AdGuard DNS server returns the CNAME record and doesn't return the TXT record, even when the TXT resource record type is specified.

Screenshots

Screenshot 1:

Additional Information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions