Skip to main content

Ruby resolv gem EUVDEUVD-2026-67138

| CVE-2026-80212 HIGH
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-08-27 mitre GHSA-x2vh-ff4w-v64c
7.5
CVSS 3.1 · Vendor: mitre
Share

Severity by source

Vendor (mitre) PRIMARY
7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI
7.5 HIGH

DNS response delivery is network-based with no auth or interaction required; impact is purely availability via unbounded memory growth, with no confidentiality or integrity effect.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (mitre).

CVSS VectorVendor: mitre

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
None
Integrity
None
Availability
High

Lifecycle Timeline

3
Patch available
Aug 27, 2026 - 18:02 EUVD
Analysis Generated
Aug 27, 2026 - 17:54 vuln.today
CVE Published
Aug 27, 2026 - 14:15 cve.org
HIGH 7.5

DescriptionCVE.org

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.

AnalysisAI

Unbounded memory exhaustion in Ruby's resolv gem (before 0.7.2) allows an attacker controlling DNS responses to permanently grow a target process's memory without limit, eventually crashing the service. The root cause is that Resolv::DNS::Resource.get_class and related methods register a new Ruby class as a constant for each unknown DNS resource record type/class pair encountered, preventing garbage collection for the lifetime of the process. …

Unlock full vulnerability intelligence

  • Risk assessment & exploitation conditions
  • Attack chain visualization
  • Remediation with exact patch versions
  • Threat intelligence from 22 sources
  • Personal watchlist & email alerts

Free forever · No credit card required

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata

Access
Gain control of upstream DNS resolver or achieve on-path DNS spoofing position
Delivery
Craft DNS responses containing tens of thousands of distinct unknown type/class pairs
Exploit
Target Ruby application calls Resolv::DNS::Message.decode on attacker-supplied response
Execution
Each unknown pair triggers permanent class and constant registration in ClassHash
Persist
Memory grows unbounded across repeated response cycles
Impact
Ruby process exhausts available memory and crashes

Vulnerability AssessmentAI

Exploitation Exploitation requires the attacker to control DNS responses returned to the target Ruby application - specifically through one of: a spoofed DNS response delivered via an on-path network position, a malicious DNS server configured as the application's upstream resolver, or a hijacked legitimate upstream DNS server. … Additional conditions and limiting factors are described in the full assessment.
Risk Assessment The CVSS 3.1 score of 7.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H) accurately characterizes a remotely exploitable denial-of-service with no authentication or user interaction requirement. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in.
Exploit Scenario An attacker who has compromised or is impersonating an upstream DNS resolver sends a series of DNS responses to a target Ruby application, each containing tens of thousands of resource records with distinct unknown (type, class) pairs. Each decoded response permanently registers hundreds of new Ruby class constants in the resolv library's ClassHash, growing the process heap by tens of megabytes per response. …
Remediation The primary fix is to upgrade the resolv gem to version 0.7.2 or later, which corrects the unbounded class registration behavior. … Detailed patch versions, workarounds, and compensating controls in full report.

Recommended ActionAI

Within 24 hours, inventory all Ruby applications and services across the organization, documenting their version and resolv gem version; prioritize production systems that handle external DNS requests. …

Sign in for detailed remediation steps and compensating controls.

Threat intelligence, references, and detailed analysis are available after sign-in.

Share

EUVD-2026-67138 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy