CVE-2026-80212
Description
An issue was discovered in the resolv gem before 0.7.2 for Ruby. Resolv::DNS::Resource.get_class, Resolv::DNS::Resource::Generic.create, and Resolv::DNS::SvcParam::Generic.create generate a new class for each unknown DNS resource record (type, class) pair, or each unknown SvcParamKey, encountered while decoding a response. Each generated class was permanently registered both as a constant on Resource (or SvcParam::Generic) and as an entry in a class-lookup hash (ClassHash), and thus the class remained reachable through that constant after the response was discarded. Type and class are each 16-bit values, and thus an attacker controlling DNS responses (a spoofed response, or a malicious or hijacked upstream DNS server) has roughly 2^32 distinct (type, class) pairs to choose from. A single response of a few hundred kilobytes carrying tens of thousands of distinct unknown types permanently grows process memory by tens of megabytes; repeated responses accumulate without bound and are never reclaimed by garbage collection, because the constant keeps each class alive. Any code path that calls Resolv::DNS::Message.decode on attacker-influenced DNS responses is affected. resolv is a default gem, and thus this is reachable from a plain Ruby installation without any additional dependency.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
Affected products
47- osv-coords45 versionspkg:rpm/almalinux/rubygem-power_assertpkg:rpm/almalinux/ruby4.0-rubygem-mysql2pkg:rpm/almalinux/ruby-develpkg:rpm/almalinux/rubygem-irbpkg:rpm/almalinux/ruby4.0-develpkg:rpm/almalinux/rubygem-abrtpkg:rpm/almalinux/rubygem-abrt-docpkg:rpm/almalinux/rubygem-bsonpkg:rpm/almalinux/rubygem-bson-docpkg:rpm/almalinux/rubygem-did_you_meanpkg:rpm/almalinux/rubygem-mongopkg:rpm/almalinux/rubygem-mongo-docpkg:rpm/almalinux/rubygem-net-telnetpkg:rpm/almalinux/rubygem-opensslpkg:rpm/almalinux/rubygem-xmlrpcpkg:rpm/almalinux/ruby-irbpkg:rpm/almalinux/rubygem-bundler-docpkg:rpm/almalinux/rubygem-jsonpkg:rpm/almalinux/rubygem-rakepkg:rpm/almalinux/rubygem-rbspkg:rpm/almalinux/rubygem-rsspkg:rpm/almalinux/rubygem-test-unitpkg:rpm/almalinux/rubygem-typeprofpkg:rpm/almalinux/rubygemspkg:rpm/almalinux/rubygems-develpkg:rpm/almalinux/ruby4.0pkg:rpm/almalinux/ruby4.0-rubygem-pgpkg:rpm/almalinux/ruby-bundled-gemspkg:rpm/almalinux/rubygem-mysql2pkg:rpm/almalinux/rubygem-mysql2-docpkg:rpm/almalinux/rubygem-pgpkg:rpm/almalinux/rubygem-pg-docpkg:rpm/almalinux/rubygem-raccpkg:rpm/almalinux/rubygem-psychpkg:rpm/almalinux/ruby-docpkg:rpm/almalinux/rubypkg:rpm/almalinux/ruby-default-gemspkg:rpm/almalinux/ruby-libspkg:rpm/almalinux/rubygem-bundlerpkg:rpm/almalinux/rubygem-io-consolepkg:rpm/almalinux/rubygem-rexmlpkg:rpm/almalinux/ruby4.0-docpkg:rpm/almalinux/rubygem-bigdecimalpkg:rpm/almalinux/rubygem-minitestpkg:rpm/almalinux/rubygem-rdoc
< 1.2.1-168.el9_8+ 44 more
- (no CPE)range: < 1.2.1-168.el9_8
- (no CPE)range: < 0.5.7-37.el10_2
- (no CPE)range: < 3.0.7-168.el9_8
- (no CPE)range: < 1.3.5-168.el9_8
- (no CPE)range: < 4.0.6-37.el10_2
- (no CPE)range: < 0.3.0-4.module_el8.5.0+2625+ec418553
- (no CPE)range: < 0.3.0-4.module_el8.10.0+3871+342e2c2f
- (no CPE)range: < 4.3.0-2.module_el8.5.0+2625+ec418553
- (no CPE)range: < 4.3.0-2.module_el8.5.0+2625+ec418553
- (no CPE)range: < 1.2.0-116.module_el8.10.0+4293+d4d7c902
- (no CPE)range: < 2.5.1-3.module_el8.10.0+4294+1072b022
- (no CPE)range: < 2.5.1-3.module_el8.10.0+4294+1072b022
- (no CPE)range: < 0.1.1-116.module_el8.10.0+4294+1072b022
- (no CPE)range: < 2.1.2-116.module_el8.10.0+4294+1072b022
- (no CPE)range: < 0.3.0-116.module_el8.10.0+4293+d4d7c902
- (no CPE)range: < 2.5.9-116.module_el8.10.0+4293+d4d7c902
- (no CPE)range: < 1.16.1-5.module_el8.10.0+3991+5e651d4e
- (no CPE)range: < 2.5.1-168.el9_8
- (no CPE)range: < 13.0.3-168.el9_8
- (no CPE)range: < 1.4.0-168.el9_8
- (no CPE)range: < 0.2.9-168.el9_8
- (no CPE)range: < 3.3.7-168.el9_8
- (no CPE)range: < 0.15.2-168.el9_8
- (no CPE)range: < 3.2.33-168.el9_8
- (no CPE)range: < 3.2.33-168.el9_8
- (no CPE)range: < 4.0.6-37.el10_2
- (no CPE)range: < 1.6.3-37.el10_2
- (no CPE)range: < 4.0.6-35.module_el9.8.0+319+116e6235
- (no CPE)range: < 0.5.7-1.module_el9.8.0+232+50f6dd36
- (no CPE)range: < 0.5.7-1.module_el9.8.0+232+50f6dd36
- (no CPE)range: < 1.6.3-1.module_el9.8.0+232+50f6dd36
- (no CPE)range: < 1.6.3-1.module_el9.8.0+232+50f6dd36
- (no CPE)range: < 1.8.1-35.module_el9.8.0+319+116e6235
- (no CPE)range: < 3.3.2-168.el9_8
- (no CPE)range: < 3.0.7-168.el9_8
- (no CPE)range: < 3.0.7-168.el9_8
- (no CPE)range: < 3.0.7-168.el9_8
- (no CPE)range: < 3.0.7-168.el9_8
- (no CPE)range: < 2.2.33-168.el9_8
- (no CPE)range: < 0.5.7-168.el9_8
- (no CPE)range: < 3.2.5-168.el9_8
- (no CPE)range: < 4.0.6-37.el10_2
- (no CPE)range: < 3.0.0-168.el9_8
- (no CPE)range: < 5.14.2-168.el9_8
- (no CPE)range: < 6.3.4.1-168.el9_8
Patches
Vulnerability mechanics
References
1News mentions
0No linked articles in our index yet.