mirror of
https://github.com/hickory-dns/hickory-dns.git
synced 2026-04-25 03:05:51 +03:00
[GH-ISSUE #1981] Unsigned response to TSIG request with unknown key is not handled correctly #838
Labels
No labels
blocked
breaking-change
bug
bug:critical
bug:tests
cleanup
compliance
compliance
compliance
crate:all
crate:client
crate:native-tls
crate:proto
crate:recursor
crate:resolver
crate:resolver
crate:rustls
crate:server
crate:util
dependencies
docs
duplicate
easy
easy
enhance
enhance
enhance
feature:dns-over-https
feature:dns-over-quic
feature:dns-over-tls
feature:dnsssec
feature:global_lb
feature:mdns
feature:tsig
features:edns
has workaround
ops
perf
platform:WASM
platform:android
platform:fuchsia
platform:linux
platform:macos
platform:windows
pull-request
question
test
tools
tools
trust
unclear
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/hickory-dns#838
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @lrsksr on GitHub (Jun 28, 2023).
Original GitHub issue: https://github.com/hickory-dns/hickory-dns/issues/1981
Describe the bug
Per RFC2845 Section 4.3 and 4.5.1 an authoritative DNS server must respond with an unsigned TSIG response when the request key can not be recognized.
When trust-dns-client is confronted with this RFC-conform behavior, it throws a ProtoError with message "signature is not tsig". However, the actual response has the REFUSED bit set, which makes sense since the key could not be recognized.
To Reproduce
Expected behavior
The error message should say that the update was refused instead of complaining about the response not being signed as per the RFC.
System:
Not applicable
Version:
Crate: trust-dns-client (actually trust-dns-proto)
Version: 0.22.0
Additional context
Add any other context about the problem here.
@djc commented on GitHub (Jun 29, 2023):
Thanks for the report. Would you be able to submit a PR for this?
@jcgruenhage commented on GitHub (Jun 29, 2023):
Improvements in this area in the near future contributed by us seem unlikely due to the complexity of the problem and our current time constraints. Fortunately, this bug only occurs when there is a misconfiguration, so it is not causing any major roadblocks. However, diagnosing the issue becomes challenging without utilizing a network analyzer to examine the DNS traffic directly. It would be beneficial to have a more informative error message from trust-dns-proto, but upon initial inspection of the code, it appears that we lack sufficient understanding of the internal workings of trust-dns-proto to address this at the moment.
@bluejekyll commented on GitHub (Jun 29, 2023):
Thanks for reporting this. I don't think it will be hard to fix and it should be easy to add a test case for this to ensure conformance.
@jcgruenhage commented on GitHub (Jun 29, 2023):
It's very possible for this to be actually fairly easy, but @lrsksr and I sat over the code for a bit trying to understand what's even happening and then decided that we're not familiar enough with the low level bits and pieces in there to come up with a PR just yet.