[GH-ISSUE #3049] Preserving RDATA of invalid SVCB records #1119

Open
opened 2026-03-16 01:39:59 +03:00 by kerem · 0 comments
Owner

Originally created by @divergentdave on GitHub (Jun 12, 2025).
Original GitHub issue: https://github.com/hickory-dns/hickory-dns/issues/3049

The first issue I found with the preserve_rdata fuzzer after #3047 is with SVCB records. When a parameter of known type has a SvcParamValue that is longer than necessary, for example a port with a value longer than two bytes, the extra data is discarded when parsing the record. First of all, we should have some sort of check for extra data in the nested decoder after successfully parsing a value. Secondly, we should store the whole SvcParams field of the RDATA as-is, so it can be transparently re-encoded, and only try to interpret it as parameters on demand.

Originally created by @divergentdave on GitHub (Jun 12, 2025). Original GitHub issue: https://github.com/hickory-dns/hickory-dns/issues/3049 The first issue I found with the `preserve_rdata` fuzzer after #3047 is with SVCB records. When a parameter of known type has a SvcParamValue that is longer than necessary, for example a `port` with a value longer than two bytes, the extra data is discarded when parsing the record. First of all, we should have some sort of check for extra data in the nested decoder after successfully parsing a value. Secondly, we should store the whole `SvcParams` field of the RDATA as-is, so it can be transparently re-encoded, and only try to interpret it as parameters on demand.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/hickory-dns#1119
No description provided.