Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1336 CNY

100%

CVE-2026-80212

Quick assessment

Affected
Ruby resolv
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

在 0.7.2 版本之前的 Ruby 库中发现了一个问题。在解码响应时, 、 和 会为遇到的每一个未知的 DNS 资源记录(类型、类别)对,或每一个未知的 SvcParamKey 动态生成一个新的类。每个生成的类都会永久注册为 (或 )上的常量,并且作为类查找哈希表(ClassHash)中的一个条目,因此即使在响应被丢弃之后,这些类仍然通过该常量保持可达状态。由于类型和类别各为 16 位值,攻击者若控制 DNS 响应(例如伪造的响应,或恶意/被劫持的上游 DNS 服务器),则可以在大约 2^32 个不同的(类型,类

CVSS 7.5 · High

Affected Version Matrix 2

VendorProduct Version RangeStatus
Ruby resolv < 0.3.2 affected
0.4.0< 0.7.2 affected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-80212

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
N/A
Source: CVE Program / CVE List V5
Vulnerability 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.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Source: CVE Program / CVE List V5
Vulnerability Type
不加限制或调节的资源分配
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
Ruby resolv 0 ~ 0.3.2 -

II. Public POCs for CVE-2026-80212

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-80212

登录查看更多情报信息。

Vendor Advisories for CVE-2026-80212 (1)

Proof of Concept for CVE-2026-80212 (1)

IV. Related Vulnerabilities

V. Comments for CVE-2026-80212

No comments yet


Leave a comment