{"answers":{"affected":"","exploited":"There is no known exploitation of CVE-2026-80212 in the wild and no public exploit code.","fix":"Upgrade to a fixed version.","what":"CVE-2026-80212 is a high-severity denial of service vulnerability in Ruby resolv, published on 27 Aug 2026. An attacker can exploit it over the internet without logging in, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2026-80212 and fix it if it is affected.\n\nWhat it is: CVE-2026-80212 is a high-severity denial of service vulnerability in Ruby resolv, published on 27 Aug 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.\nExploitation: There is no known exploitation of CVE-2026-80212 in the wild and no public exploit code.\n\nAffected product: Ruby resolv. No package-level version data is available, so check the vendor advisory linked from the reference page.\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-80212/ (Markdown: https://insights.sbomify.com/CVE-2026-80212/index.md)","id":"CVE-2026-80212","markdown":"https://insights.sbomify.com/CVE-2026-80212/index.md","name":"CVE-2026-80212","record":{"aliases":["ALPINE-CVE-2026-80212","ALSA-2026:72285","ALSA-2026:72286","ALSA-2026:72427","ALSA-2026:72484","ALSA-2026:72485","ALSA-2026:72785","AZL-98232","BELL-CVE-2026-80212","CLEANSTART-2026-NH74697","CLSA-2026-1789389792","GHSA-x2vh-ff4w-v64c","OESA-2026-3666","OESA-2026-3667","RHSA-2026:72285","RHSA-2026:72286","RHSA-2026:72427","RHSA-2026:72484","RHSA-2026:72485","RHSA-2026:72785","RHSA-2026:83570","RHSA-2026:83571","RHSA-2026:83572","RHSA-2026:83574","RLSA-2026:72285","RLSA-2026:72286","RLSA-2026:72427","RLSA-2026:72484","RLSA-2026:72485","RLSA-2026:72785"],"analysis":{"component_type":"library","fix_type":"upgrade","impacts":["denial_of_service"],"network_reachable":"yes","non_default_config":false,"product_category":"Ruby DNS library","requires_auth":"none","summary":"An attacker can cause memory exhaustion and denial of service in Ruby applications by sending crafted DNS responses that trigger unbounded class generation.","user_interaction":"not_required","vuln_class":"denial_of_service"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"mitre","cpe":[],"cvss":{"score":7.5,"severity":"high","source":"cna","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","version":"3.1"},"cwes":[{"id":"CWE-770","name":"Allocation of Resources Without Limits or Throttling"}],"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.","ecosystems":["AlmaLinux:10","AlmaLinux:8","AlmaLinux:9","Red Hat:enterprise_linux:10.2","Red Hat:enterprise_linux:8::appstream","Red Hat:enterprise_linux:9::appstream","Red Hat:enterprise_linux:9::crb","Red Hat:enterprise_linux_eus:10.0","Red Hat:rhel_e4s:9.2::appstream","Red Hat:rhel_e4s:9.4::appstream","Red Hat:rhel_eus:9.6::appstream","Red Hat:rhel_eus:9.6::crb","Rocky Linux:10","Rocky Linux:8","Rocky Linux:9"],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"none_known"},"has_fix":true,"headline":"Denial of service in resolv","id":"CVE-2026-80212","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":null,"product":null,"products":[],"type":"denial_of_service","year":"2026"},"n_packages":474,"n_references":2,"next":{"headline":"Other in resolv","id":"CVE-2026-80213"},"packages":[{"ecosystem":"AlmaLinux:10","fixed":["3.3.12-15.el10_2"],"introduced":["0"],"last_affected":[],"package":"ruby","purl":"pkg:rpm/almalinux/ruby","source":"ALSA-2026:72785"},{"ecosystem":"AlmaLinux:10","fixed":["3.3.12-15.el10_2"],"introduced":["0"],"last_affected":[],"package":"ruby-bundled-gems","purl":"pkg:rpm/almalinux/ruby-bundled-gems","source":"ALSA-2026:72785"},{"ecosystem":"AlmaLinux:10","fixed":["3.3.12-15.el10_2"],"introduced":["0"],"last_affected":[],"package":"ruby-default-gems","purl":"pkg:rpm/almalinux/ruby-default-gems","source":"ALSA-2026:72785"},{"ecosystem":"AlmaLinux:10","fixed":["3.3.12-15.el10_2"],"introduced":["0"],"last_affected":[],"package":"ruby-devel","purl":"pkg:rpm/almalinux/ruby-devel","source":"ALSA-2026:72785"},{"ecosystem":"AlmaLinux:10","fixed":["3.3.12-15.el10_2"],"introduced":["0"],"last_affected":[],"package":"ruby-doc","purl":"pkg:rpm/almalinux/ruby-doc","source":"ALSA-2026:72785"},{"ecosystem":"AlmaLinux:10","fixed":["3.3.12-15.el10_2"],"introduced":["0"],"last_affected":[],"package":"ruby-libs","purl":"pkg:rpm/almalinux/ruby-libs","source":"ALSA-2026:72785"},{"ecosystem":"AlmaLinux:10","fixed":["4.0.6-37.el10_2"],"introduced":["0"],"last_affected":[],"package":"ruby4.0","purl":"pkg:rpm/almalinux/ruby4.0","source":"ALSA-2026:72427"},{"ecosystem":"AlmaLinux:10","fixed":["4.0.6-37.el10_2"],"introduced":["0"],"last_affected":[],"package":"ruby4.0-devel","purl":"pkg:rpm/almalinux/ruby4.0-devel","source":"ALSA-2026:72427"},{"ecosystem":"AlmaLinux:10","fixed":["4.0.6-37.el10_2"],"introduced":["0"],"last_affected":[],"package":"ruby4.0-doc","purl":"pkg:rpm/almalinux/ruby4.0-doc","source":"ALSA-2026:72427"},{"ecosystem":"AlmaLinux:10","fixed":["0.5.7-37.el10_2"],"introduced":["0"],"last_affected":[],"package":"ruby4.0-rubygem-mysql2","purl":"pkg:rpm/almalinux/ruby4.0-rubygem-mysql2","source":"ALSA-2026:72427"},{"ecosystem":"AlmaLinux:10","fixed":["1.6.3-37.el10_2"],"introduced":["0"],"last_affected":[],"package":"ruby4.0-rubygem-pg","purl":"pkg:rpm/almalinux/ruby4.0-rubygem-pg","source":"ALSA-2026:72427"},{"ecosystem":"AlmaLinux:10","fixed":["3.1.5-15.el10_2"],"introduced":["0"],"last_affected":[],"package":"rubygem-bigdecimal","purl":"pkg:rpm/almalinux/rubygem-bigdecimal","source":"ALSA-2026:72785"},{"ecosystem":"AlmaLinux:10","fixed":["2.5.22-15.el10_2"],"introduced":["0"],"last_affected":[],"package":"rubygem-bundler","purl":"pkg:rpm/almalinux/rubygem-bundler","source":"ALSA-2026:72785"},{"ecosystem":"AlmaLinux:10","fixed":["0.7.1-15.el10_2"],"introduced":["0"],"last_affected":[],"package":"rubygem-io-console","purl":"pkg:rpm/almalinux/rubygem-io-console","source":"ALSA-2026:72785"},{"ecosystem":"AlmaLinux:10","fixed":["1.13.1-15.el10_2"],"introduced":["0"],"last_affected":[],"package":"rubygem-irb","purl":"pkg:rpm/almalinux/rubygem-irb","source":"ALSA-2026:72785"},{"ecosystem":"AlmaLinux:10","fixed":["2.7.2-15.el10_2"],"introduced":["0"],"last_affected":[],"package":"rubygem-json","purl":"pkg:rpm/almalinux/rubygem-json","source":"ALSA-2026:72785"},{"ecosystem":"AlmaLinux:10","fixed":["5.20.0-15.el10_2"],"introduced":["0"],"last_affected":[],"package":"rubygem-minitest","purl":"pkg:rpm/almalinux/rubygem-minitest","source":"ALSA-2026:72785"},{"ecosystem":"AlmaLinux:10","fixed":["2.0.3-15.el10_2"],"introduced":["0"],"last_affected":[],"package":"rubygem-power_assert","purl":"pkg:rpm/almalinux/rubygem-power_assert","source":"ALSA-2026:72785"},{"ecosystem":"AlmaLinux:10","fixed":["5.1.2-15.el10_2"],"introduced":["0"],"last_affected":[],"package":"rubygem-psych","purl":"pkg:rpm/almalinux/rubygem-psych","source":"ALSA-2026:72785"},{"ecosystem":"AlmaLinux:10","fixed":["1.7.3-15.el10_2"],"introduced":["0"],"last_affected":[],"package":"rubygem-racc","purl":"pkg:rpm/almalinux/rubygem-racc","source":"ALSA-2026:72785"},{"ecosystem":"AlmaLinux:10","fixed":["13.1.0-15.el10_2"],"introduced":["0"],"last_affected":[],"package":"rubygem-rake","purl":"pkg:rpm/almalinux/rubygem-rake","source":"ALSA-2026:72785"},{"ecosystem":"AlmaLinux:10","fixed":["3.4.0-15.el10_2"],"introduced":["0"],"last_affected":[],"package":"rubygem-rbs","purl":"pkg:rpm/almalinux/rubygem-rbs","source":"ALSA-2026:72785"},{"ecosystem":"AlmaLinux:10","fixed":["6.6.3.1-15.el10_2"],"introduced":["0"],"last_affected":[],"package":"rubygem-rdoc","purl":"pkg:rpm/almalinux/rubygem-rdoc","source":"ALSA-2026:72785"},{"ecosystem":"AlmaLinux:10","fixed":["3.4.4-15.el10_2"],"introduced":["0"],"last_affected":[],"package":"rubygem-rexml","purl":"pkg:rpm/almalinux/rubygem-rexml","source":"ALSA-2026:72785"},{"ecosystem":"AlmaLinux:10","fixed":["0.3.1-15.el10_2"],"introduced":["0"],"last_affected":[],"package":"rubygem-rss","purl":"pkg:rpm/almalinux/rubygem-rss","source":"ALSA-2026:72785"},{"ecosystem":"AlmaLinux:10","fixed":["3.6.1-15.el10_2"],"introduced":["0"],"last_affected":[],"package":"rubygem-test-unit","purl":"pkg:rpm/almalinux/rubygem-test-unit","source":"ALSA-2026:72785"},{"ecosystem":"AlmaLinux:10","fixed":["0.21.9-15.el10_2"],"introduced":["0"],"last_affected":[],"package":"rubygem-typeprof","purl":"pkg:rpm/almalinux/rubygem-typeprof","source":"ALSA-2026:72785"},{"ecosystem":"AlmaLinux:10","fixed":["3.5.22-15.el10_2"],"introduced":["0"],"last_affected":[],"package":"rubygems","purl":"pkg:rpm/almalinux/rubygems","source":"ALSA-2026:72785"},{"ecosystem":"AlmaLinux:10","fixed":["3.5.22-15.el10_2"],"introduced":["0"],"last_affected":[],"package":"rubygems-devel","purl":"pkg:rpm/almalinux/rubygems-devel","source":"ALSA-2026:72785"},{"ecosystem":"AlmaLinux:8","fixed":["3.3.12-9.module_el8.10.0+4288+ce06a94b"],"introduced":["0"],"last_affected":[],"package":"ruby","purl":"pkg:rpm/almalinux/ruby","source":"ALSA-2026:72285"},{"ecosystem":"AlmaLinux:8","fixed":["3.3.12-9.module_el8.10.0+4288+ce06a94b"],"introduced":["0"],"last_affected":[],"package":"ruby-bundled-gems","purl":"pkg:rpm/almalinux/ruby-bundled-gems","source":"ALSA-2026:72285"},{"ecosystem":"AlmaLinux:8","fixed":["3.3.12-9.module_el8.10.0+4288+ce06a94b"],"introduced":["0"],"last_affected":[],"package":"ruby-default-gems","purl":"pkg:rpm/almalinux/ruby-default-gems","source":"ALSA-2026:72285"},{"ecosystem":"AlmaLinux:8","fixed":["3.3.12-9.module_el8.10.0+4288+ce06a94b"],"introduced":["0"],"last_affected":[],"package":"ruby-devel","purl":"pkg:rpm/almalinux/ruby-devel","source":"ALSA-2026:72285"},{"ecosystem":"AlmaLinux:8","fixed":["3.3.12-9.module_el8.10.0+4288+ce06a94b"],"introduced":["0"],"last_affected":[],"package":"ruby-doc","purl":"pkg:rpm/almalinux/ruby-doc","source":"ALSA-2026:72285"},{"ecosystem":"AlmaLinux:8","fixed":["3.3.12-9.module_el8.10.0+4288+ce06a94b"],"introduced":["0"],"last_affected":[],"package":"ruby-libs","purl":"pkg:rpm/almalinux/ruby-libs","source":"ALSA-2026:72285"},{"ecosystem":"AlmaLinux:8","fixed":["0.4.0-1.module_el8.10.0+3799+191214cc"],"introduced":["0"],"last_affected":[],"package":"rubygem-abrt","purl":"pkg:rpm/almalinux/rubygem-abrt","source":"ALSA-2026:72285"},{"ecosystem":"AlmaLinux:8","fixed":["0.4.0-1.module_el8.10.0+3799+191214cc"],"introduced":["0"],"last_affected":[],"package":"rubygem-abrt-doc","purl":"pkg:rpm/almalinux/rubygem-abrt-doc","source":"ALSA-2026:72285"},{"ecosystem":"AlmaLinux:8","fixed":["3.1.5-9.module_el8.10.0+4288+ce06a94b"],"introduced":["0"],"last_affected":[],"package":"rubygem-bigdecimal","purl":"pkg:rpm/almalinux/rubygem-bigdecimal","source":"ALSA-2026:72285"},{"ecosystem":"AlmaLinux:8","fixed":["2.5.22-9.module_el8.10.0+4288+ce06a94b"],"introduced":["0"],"last_affected":[],"package":"rubygem-bundler","purl":"pkg:rpm/almalinux/rubygem-bundler","source":"ALSA-2026:72285"},{"ecosystem":"AlmaLinux:8","fixed":["0.7.1-9.module_el8.10.0+4288+ce06a94b"],"introduced":["0"],"last_affected":[],"package":"rubygem-io-console","purl":"pkg:rpm/almalinux/rubygem-io-console","source":"ALSA-2026:72285"}],"prev":{"headline":"FrontAccounting through 2.4.20 Use of Unsalted MD5 for Password Storage","id":"CVE-2026-80211"},"products":["resolv"],"published":"2026-08-27","related":[],"sources":[{"class":"attribution","licence":"MIT","name":"AlmaLinux","prefix":"ALSA"},{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"yes","exploitation":"none","technical_impact":"partial"},"state":"PUBLISHED","updated":"2026-08-27","vendors":["Ruby"]},"summary":"An attacker can cause memory exhaustion and denial of service in Ruby applications by sending crafted DNS responses that trigger unbounded class generation.","url":"https://insights.sbomify.com/CVE-2026-80212/"}