Skip to content

Bound the number of compression pointers per name - #155

Merged
mame merged 1 commit into
ruby:masterfrom
mame:bound-name-pointer-chain
Oct 2, 2026
Merged

mame merged 1 commit into
ruby:masterfrom
mame:bound-name-pointer-chain

Conversation

@mame

@mame mame commented Oct 2, 2026

Copy link
Copy Markdown
Member

Commit 4c2f71b (CVE-2025-24294) capped a decompressed name at 255 octets, bounding its length but not the work: a chain of compression pointers adds no label octets, so the cap never fires while the decoder follows every pointer, and many records sharing one chain make decoding quadratic. Cap the pointers followed per name at 128.

Reported by: whiteshadow_8500 (https://hackerone.com/whiteshadow_8500)

Commit 4c2f71b (CVE-2025-24294) capped a decompressed name at 255 octets,
bounding its length but not the work: a chain of compression pointers adds
no label octets, so the cap never fires while the decoder follows every
pointer, and many records sharing one chain make decoding quadratic. Cap
the pointers followed per name at 128.

Reported by: whiteshadow_8500 (https://hackerone.com/whiteshadow_8500)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@mame
mame merged commit b6e0878 into ruby:master Oct 2, 2026
37 checks passed
@mame
mame deleted the bound-name-pointer-chain branch October 2, 2026 05:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant