Skip to content

Update Rust crate hickory-proto to 0.26.0 [SECURITY]#10412

Open
oxide-renovate[bot] wants to merge 1 commit intomainfrom
renovate/crate-hickory-proto-vulnerability
Open

Update Rust crate hickory-proto to 0.26.0 [SECURITY]#10412
oxide-renovate[bot] wants to merge 1 commit intomainfrom
renovate/crate-hickory-proto-vulnerability

Conversation

@oxide-renovate
Copy link
Copy Markdown
Contributor

@oxide-renovate oxide-renovate Bot commented May 8, 2026

This PR contains the following updates:

Package Type Update Change
hickory-proto (source) workspace.dependencies minor 0.25.20.26.0

hickory-proto vulnerable to CPU exhaustion during message encoding due to O(n²) name compression

GHSA-q2qq-hmj6-3wpp

More information

Details

During message encoding, hickory-proto's BinEncoder stores pointers to labels that are candidates for name compression in a Vec<(usize, Vec<u8>)>. The name compression logic then searches for matches with a linear scan.

A malicious message with many records can both introduce many candidate labels, and invoke this linear scan many times. This can amplify CPU exhaustion in DoS attacks.

This is similar to CVE-2024-8508.

Reporter

Qifan Zhang, Palo Alto Networks

Severity

  • CVSS Score: 6.9 / 10 (Medium)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Release Notes

hickory-dns/hickory-dns (hickory-proto)

v0.26.1

Compare Source

This point release for the 0.26 release series brings in several bug fixes, and no user-facing changes. Two security reports are addressed:
RUSTSEC-2026-0120 and RUSTSEC-2026-0119.

What's Changed

Full Changelog: hickory-dns/hickory-dns@v0.26.0...v0.26.1

v0.26.0: 0.26.0

Compare Source

13 months after the release of 0.25.0, we finally have a bigger feature release of Hickory DNS, the suite of DNS libraries and authoritative/recursive name servers written in pure Rust. A lot of work has gone into this release, so we wanted to take a moment to release this before we continue work on deploying the Hickory DNS recursive resolver at Let's Encrypt (and did you see that Hickory is being used in some of Google's Pixel devices?). Because of the ongoing work, we expect that 0.27.0 might happen quite a bit sooner than in 13 months from now.

These release notes describe a number of high-level improvements as well as API changes that are likely to break a larger fraction of our downstream users. Feedback (both on these notes and the release itself) is always welcome in our issue tracker or via our Discord server.

Most of the following notes are broken up by specific components: the server binary and our library crates. However, for this release we've made several changes to the structure of our crates itself:

  • Network protocol support has moved out of the hickory-proto crate, into a new hickory-net crate (#​3394); this allows the hickory-proto crate to cleanly focus on message encoding and decoding.
  • The hickory-client crate has been subsumed into hickory-net, in the client module (#​3366). No future releases of the hickory-client crate are expected.
  • The hickory-recursor crate has been merged into hickory-resolver (#​3370), guarded by a recursor feature which must be enabled explicitly. The recursor implementation was already tightly coupled to the resolver internals, so keeping it separate didn't really make sense.

Additionally, substantial cross-crate changes have been made to improve our error handling:

hickory-dns (the server binary)

hickory-server (the library API)

hickory-resolver

We made many improvements to improve correctness and efficiency of both the recursive resolver and the "stub" resolver. In addition, we want to highlight the following changes:

hickory-net

We made substantial improvements to DNSSEC validation and our handling of potentially spoofing messages.

hickory-proto

Details

For more details, review the detailed release notes for our pre-releases:

and these final PRs merged after beta 4:

Thanks

Finally, we want to thank everyone who contributed to this release: @​bryanlarsen, @​billf, @​hargut, @​ibigbug, @​xi0, @​steffengy, @​james7132, @​Thomasdezeeuw, @​Kriskras99, @​mispp, @​conradludgate, @​nabijaczleweli, @​musicinmybrain, @​msrd0, @​jmwample, @​LAGonauta, @​tisonkun, @​provokateurin, @​lemon-sh, @​thomas-zahner, @​jpds, @​lpraneis, @​zachsmith1, @​jackboykin, @​ZnqbuZ, @​Jeidnx, @​kn0sys, @​matheus23, @​benesch, @​roblabla and of course our maintainers @​cpu, @​divergentdave, @​marcus0x62 and @​djc.


Configuration

📅 Schedule: (in timezone America/Los_Angeles)

  • Branch creation
    • ""
  • Automerge
    • "after 8pm,before 6am"

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

@oxide-renovate oxide-renovate Bot added the dependencies Pull requests that update a dependency file label May 8, 2026
@oxide-renovate
Copy link
Copy Markdown
Contributor Author

oxide-renovate Bot commented May 8, 2026

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants