mirror of
https://github.com/hickory-dns/hickory-dns.git
synced 2026-04-25 11:15:54 +03:00
[GH-ISSUE #2353] Multiple round-trip encoding issues identified by fuzzer #968
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#968
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 @divergentdave on GitHub (Aug 13, 2024).
Original GitHub issue: https://github.com/hickory-dns/hickory-dns/issues/2353
I tried running the
messagefuzzer locally, and it produced some failing inputs pretty quickly. The issues I've identified thus far are:\.\.appears in the input, it gets normalized to... When this is encoded and decoded again, it fails the second time with the message"Malformed label: ".char::from(), and appended to a string. When the resulting string gets encoded again, two bytes of mojibake will be written out in place of the original byte.SvcParamValuelength prefix.These bugs, and others the fuzzer may yet find, could impact the correctness of the recursor, since it round-trips records through
hickory_proto::rr::record_data::RData.This project is set up in OSS-Fuzz, but there's a build issue preventing it from working currently. There are similar issues with other Rust projects right now, so it's likely an issue with incompatibilities between dependencies and the old nightly toolchain that OSS-Fuzz has pinned. (they're currently blocked on upgrading to a newer nightly toolchain because their coverage tooling doesn't yet support LLVM 18) This should be straightforward to fix, by downgrading dependencies before building the fuzzer, in order to get continuous fuzzer coverage going again.
@divergentdave commented on GitHub (Aug 13, 2024):
I opened google/oss-fuzz#12342 to fix the OSS-Fuzz build. This was just a rebrand-related issue.
@djc commented on GitHub (Aug 19, 2024):
So I guess this can be closed, right?
@divergentdave commented on GitHub (Aug 19, 2024):
The other two issues I listed above aren't fixed yet, and there may be others, but OSS-Fuzz should rediscover these and file Monorail issues soon. We could keep this as a tracking issue, or leave it closed, either way.