Upstream information
CVE-2026-80212 at MITRE
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.
Overall state of this security issue: Resolved
This issue is currently rated as having important severity.
CVSS v3 Scores
| CVSS detail | CNA (MITRE) |
| Base Score | 7.5 |
| Vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
| Attack Vector | Network |
| Attack Complexity | Low |
| Privileges Required | None |
| User Interaction | None |
| Scope | Unchanged |
| Confidentiality Impact | None |
| Integrity Impact | None |
| Availability Impact | High |
| CVSSv3 Version | 3.1 |
No SUSE Bugzilla entries cross referenced.
SUSE Security Advisories:
List of released packages
| Product(s) | Fixed package version(s) | References |
| SUSE Liberty Linux 10 | ruby >= 3.3.12-15.el10_2
ruby-bundled-gems >= 3.3.12-15.el10_2
ruby-default-gems >= 3.3.12-15.el10_2
ruby-devel >= 3.3.12-15.el10_2
ruby-doc >= 3.3.12-15.el10_2
ruby-libs >= 3.3.12-15.el10_2
ruby4.0 >= 4.0.6-37.el10_2
ruby4.0-devel >= 4.0.6-37.el10_2
ruby4.0-doc >= 4.0.6-37.el10_2
ruby4.0-rubygem-mysql2 >= 0.5.7-37.el10_2
ruby4.0-rubygem-pg >= 1.6.3-37.el10_2
rubygem-bigdecimal >= 3.1.5-15.el10_2
rubygem-bundler >= 2.5.22-15.el10_2
rubygem-io-console >= 0.7.1-15.el10_2
rubygem-irb >= 1.13.1-15.el10_2
rubygem-json >= 2.7.2-15.el10_2
rubygem-minitest >= 5.20.0-15.el10_2
rubygem-power_assert >= 2.0.3-15.el10_2
rubygem-psych >= 5.1.2-15.el10_2
rubygem-racc >= 1.7.3-15.el10_2
rubygem-rake >= 13.1.0-15.el10_2
rubygem-rbs >= 3.4.0-15.el10_2
rubygem-rdoc >= 6.6.3.1-15.el10_2
rubygem-rexml >= 3.4.4-15.el10_2
rubygem-rss >= 0.3.1-15.el10_2
rubygem-test-unit >= 3.6.1-15.el10_2
rubygem-typeprof >= 0.21.9-15.el10_2
rubygems >= 3.5.22-15.el10_2
rubygems-devel >= 3.5.22-15.el10_2
| Patchnames: RHSA-2026:72427 (x86_64) RHSA-2026:72785 (x86_64) |
| SUSE Liberty Linux 8 | ruby >= 3.3.12-9.module+el8.10.0+24850+a62b5b25
ruby-bundled-gems >= 3.3.12-9.module+el8.10.0+24850+a62b5b25
ruby-default-gems >= 3.3.12-9.module+el8.10.0+24850+a62b5b25
ruby-devel >= 3.3.12-9.module+el8.10.0+24850+a62b5b25
ruby-doc >= 3.3.12-9.module+el8.10.0+24850+a62b5b25
ruby-irb >= 2.5.9-116.module+el8.10.0+24853+52b5af56
ruby-libs >= 3.3.12-9.module+el8.10.0+24850+a62b5b25
rubygem-abrt >= 0.4.0-1.module+el8.10.0+21226+b78a28c4
rubygem-abrt-doc >= 0.4.0-1.module+el8.10.0+21226+b78a28c4
rubygem-bigdecimal >= 3.1.5-9.module+el8.10.0+24850+a62b5b25
rubygem-bson >= 4.3.0-2.module+el8.9.0+19193+435404ae
rubygem-bson-doc >= 4.3.0-2.module+el8.9.0+19193+435404ae
rubygem-bundler >= 2.5.22-9.module+el8.10.0+24850+a62b5b25
rubygem-bundler-doc >= 1.16.1-5.module+el8.10.0+23088+750dc6ca
rubygem-did_you_mean >= 1.2.0-116.module+el8.10.0+24853+52b5af56
rubygem-io-console >= 0.7.1-9.module+el8.10.0+24850+a62b5b25
rubygem-irb >= 1.13.1-9.module+el8.10.0+24850+a62b5b25
rubygem-json >= 2.7.2-9.module+el8.10.0+24850+a62b5b25
rubygem-minitest >= 5.20.0-9.module+el8.10.0+24850+a62b5b25
rubygem-mongo >= 2.5.1-3.module+el8.10.0+24944+b1921893
rubygem-mongo-doc >= 2.5.1-3.module+el8.10.0+24944+b1921893
rubygem-mysql2 >= 0.5.5-1.module+el8.10.0+21226+b78a28c4
rubygem-mysql2-doc >= 0.5.5-1.module+el8.10.0+21226+b78a28c4
rubygem-net-telnet >= 0.1.1-116.module+el8.10.0+24853+52b5af56
rubygem-openssl >= 2.1.2-116.module+el8.10.0+24853+52b5af56
rubygem-pg >= 1.5.4-1.module+el8.10.0+21226+b78a28c4
rubygem-pg-doc >= 1.5.4-1.module+el8.10.0+21226+b78a28c4
rubygem-power_assert >= 2.0.3-9.module+el8.10.0+24850+a62b5b25
rubygem-psych >= 5.1.2-9.module+el8.10.0+24850+a62b5b25
rubygem-racc >= 1.7.3-9.module+el8.10.0+24850+a62b5b25
rubygem-rake >= 13.1.0-9.module+el8.10.0+24850+a62b5b25
rubygem-rbs >= 3.4.0-9.module+el8.10.0+24850+a62b5b25
rubygem-rdoc >= 6.6.3.1-9.module+el8.10.0+24850+a62b5b25
rubygem-rexml >= 3.4.4-9.module+el8.10.0+24850+a62b5b25
rubygem-rss >= 0.3.1-9.module+el8.10.0+24850+a62b5b25
rubygem-test-unit >= 3.6.1-9.module+el8.10.0+24850+a62b5b25
rubygem-typeprof >= 0.21.9-9.module+el8.10.0+24850+a62b5b25
rubygem-xmlrpc >= 0.3.0-116.module+el8.10.0+24853+52b5af56
rubygems >= 3.5.22-9.module+el8.10.0+24850+a62b5b25
rubygems-devel >= 3.5.22-9.module+el8.10.0+24850+a62b5b25
| Patchnames: RHSA-2026:72285 (i686,x86_64) RHSA-2026:73519 (i686,x86_64) |
| SUSE Liberty Linux 9 | ruby >= 4.0.6-35.module+el9.8.0+24852+4534d062
ruby-bundled-gems >= 4.0.6-35.module+el9.8.0+24852+4534d062
ruby-default-gems >= 4.0.6-35.module+el9.8.0+24852+4534d062
ruby-devel >= 4.0.6-35.module+el9.8.0+24852+4534d062
ruby-doc >= 4.0.6-35.module+el9.8.0+24852+4534d062
ruby-libs >= 4.0.6-35.module+el9.8.0+24852+4534d062
rubygem-bigdecimal >= 4.0.1-35.module+el9.8.0+24852+4534d062
rubygem-bundler >= 4.0.16-35.module+el9.8.0+24852+4534d062
rubygem-io-console >= 0.8.2-35.module+el9.8.0+24852+4534d062
rubygem-irb >= 1.16.0-35.module+el9.8.0+24852+4534d062
rubygem-json >= 2.18.0-35.module+el9.8.0+24852+4534d062
rubygem-minitest >= 6.0.0-35.module+el9.8.0+24852+4534d062
rubygem-mysql2 >= 0.5.7-1.module+el9.8.0+24428+77f1d00a
rubygem-mysql2-doc >= 0.5.7-1.module+el9.8.0+24428+77f1d00a
rubygem-pg >= 1.6.3-1.module+el9.8.0+24428+77f1d00a
rubygem-pg-doc >= 1.6.3-1.module+el9.8.0+24428+77f1d00a
rubygem-power_assert >= 3.0.1-35.module+el9.8.0+24852+4534d062
rubygem-psych >= 5.3.1-35.module+el9.8.0+24852+4534d062
rubygem-racc >= 1.8.1-35.module+el9.8.0+24852+4534d062
rubygem-rake >= 13.3.1-35.module+el9.8.0+24852+4534d062
rubygem-rbs >= 3.10.0-35.module+el9.8.0+24852+4534d062
rubygem-rdoc >= 7.0.4-35.module+el9.8.0+24852+4534d062
rubygem-rexml >= 3.4.4-35.module+el9.8.0+24852+4534d062
rubygem-rss >= 0.3.2-35.module+el9.8.0+24852+4534d062
rubygem-test-unit >= 3.7.5-35.module+el9.8.0+24852+4534d062
rubygem-typeprof >= 0.31.1-35.module+el9.8.0+24852+4534d062
rubygems >= 4.0.16-35.module+el9.8.0+24852+4534d062
rubygems-devel >= 4.0.16-35.module+el9.8.0+24852+4534d062
| Patchnames: RHSA-2026:72286 (i686,x86_64) RHSA-2026:72484 (i686,x86_64) RHSA-2026:72485 (i686,x86_64) |
SUSE Timeline for this CVE
CVE page created: Mon Sep 28 16:46:50 2026
CVE page last modified: Fri Oct 2 11:56:24 2026