Every CVE Search/ Get API key

CVE-2026-80213

An issue was discovered in the resolv gem before 0.7.2 for Ruby. Resolv::DNS::MessageEncoder...

4.0 MediumFix available

An issue was discovered in the resolv gem before 0.7.2 for Ruby. Resolv::DNS::MessageEncoder wrote a DNS label's length into a single octet without checking its range. A label longer than 255 octets had its length stored modulo 256 but the label data was written unchanged, and thus the bytes on the wire described a different name than the one the application asked to encode. RFC 1035 section 2.3.4 limits a label to 63 octets, and the two high bits of the length octet are reserved for compression pointers. put_string packed the length with put_pack("C", d.length) and put_label used it for labels, and thus any value from 0 to 255 could end up as a label length octet, including the reserved 0x40-0xBF range and the 0xC0-0xFF pointer range. Resolv::DNS::Name.create did not check per-label or total name length either, and thus an attacker-controlled hostname reached the encoder unchanged. An application that resolves an attacker-controlled hostname sends a query whose wire bytes name a domain the attacker chose. A hostname suffix that the application validates against an allowlist becomes padding that never appears on the wire, and thus allowlist and egress checks can be bypassed. The recursive resolver caches the response under the attacker's name, and DNS logs record that name rather than the one the application asked for. A label length whose low octet lands in the 0xC0-0xFF range produces a length octet that conforming parsers read as the start of a compression pointer, with the following attacker-controlled byte as the offset.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
High
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
Low
Availability
None

Exploit likelihood

0.27%Unchanged since Aug 28, 2026
90%50%10%1%

What each source reports

CVE List Score used 4.0

An issue was discovered in the resolv gem before 0.7.2 for Ruby. Resolv::DNS::MessageEncoder wrote a DNS label's length into a single octet without checking its range. A label longer than 255 octets had its length stored modulo 256 but the label data was written unchanged, and thus the bytes on the wire described a different name than the one the application asked to encode. RFC 1035 section 2.3.4 limits a label to 63 octets, and the two high bits of the length octet are reserved for compression pointers. put_string packed the length with put_pack("C", d.length) and put_label used it for labels, and thus any value from 0 to 255 could end up as a label length octet, including the reserved 0x40-0xBF range and the 0xC0-0xFF pointer range. Resolv::DNS::Name.create did not check per-label or total name length either, and thus an attacker-controlled hostname reached the encoder unchanged. An application that resolves an attacker-controlled hostname sends a query whose wire bytes name a domain the attacker chose. A hostname suffix that the application validates against an allowlist becomes padding that never appears on the wire, and thus allowlist and egress checks can be bypassed. The recursive resolver caches the response under the attacker's name, and DNS logs record that name rather than the one the application asked for. A label length whose low octet lands in the 0xC0-0xFF range produces a length octet that conforming parsers read as the start of a compression pointer, with the following attacker-controlled byte as the offset.

Record
CVE-2026-80213
CVSS 3.1
4.0 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:N
Weakness
CWE-197
Updated
2026-11-02
EUVDEUVD-2026-67139 4.0

An issue was discovered in the resolv gem before 0.7.2 for Ruby. Resolv::DNS::MessageEncoder wrote a DNS label's length into a single octet without checking its range. A label longer than 255 octets had its length stored modulo 256 but the label data was written unchanged, and thus the bytes on the wire described a different name than the one the application asked to encode. RFC 1035 section 2.3.4 limits a label to 63 octets, and the two high bits of the length octet are reserved for compression pointers. put_string packed the length with put_pack("C", d.length) and put_label used it for labels, and thus any value from 0 to 255 could end up as a label length octet, including the reserved 0x40-0xBF range and the 0xC0-0xFF pointer range. Resolv::DNS::Name.create did not check per-label or total name length either, and thus an attacker-controlled hostname reached the encoder unchanged. An application that resolves an attacker-controlled hostname sends a query whose wire bytes name a domain the attacker chose. A hostname suffix that the application validates against an allowlist becomes padding that never appears on the wire, and thus allowlist and egress checks can be bypassed. The recursive resolver caches the response under the attacker's name, and DNS logs record that name rather than the one the application asked for. A label length whose low octet lands in the 0xC0-0xFF range produces a length octet that conforming parsers read as the start of a compression pointer, with the following attacker-controlled byte as the offset.

Record
EUVD-2026-67139
CVSS 3.1
4.0 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-jr95-x3fr-rcg4 4.0

An issue was discovered in the resolv gem before 0.7.2 for Ruby. Resolv::DNS::MessageEncoder...

An issue was discovered in the resolv gem before 0.7.2 for Ruby. Resolv::DNS::MessageEncoder wrote a DNS label's length into a single octet without checking its range. A label longer than 255 octets had its length stored modulo 256 but the label data was written unchanged, and thus the bytes on the wire described a different name than the one the application asked to encode. RFC 1035 section 2.3.4 limits a label to 63 octets, and the two high bits of the length octet are reserved for compression pointers. put_string packed the length with put_pack("C", d.length) and put_label used it for labels, and thus any value from 0 to 255 could end up as a label length octet, including the reserved 0x40-0xBF range and the 0xC0-0xFF pointer range. Resolv::DNS::Name.create did not check per-label or total name length either, and thus an attacker-controlled hostname reached the encoder unchanged. An application that resolves an attacker-controlled hostname sends a query whose wire bytes name a domain the attacker chose. A hostname suffix that the application validates against an allowlist becomes padding that never appears on the wire, and thus allowlist and egress checks can be bypassed. The recursive resolver caches the response under the attacker's name, and DNS logs record that name rather than the one the application asked for. A label length whose low octet lands in the 0xC0-0xFF range produces a length octet that conforming parsers read as the start of a compression pointer, with the following attacker-controlled byte as the offset.

Record
GHSA-jr95-x3fr-rcg4
CVSS 3.1
4.0 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:N
Weakness
CWE-197
Updated
2026-11-02
NVD 4.0

An issue was discovered in the resolv gem before 0.7.2 for Ruby. Resolv::DNS::MessageEncoder wrote a DNS label's length into a single octet without checking its range. A label longer than 255 octets had its length stored modulo 256 but the label data was written unchanged, and thus the bytes on the wire described a different name than the one the application asked to encode. RFC 1035 section 2.3.4 limits a label to 63 octets, and the two high bits of the length octet are reserved for compression pointers. put_string packed the length with put_pack("C", d.length) and put_label used it for labels, and thus any value from 0 to 255 could end up as a label length octet, including the reserved 0x40-0xBF range and the 0xC0-0xFF pointer range. Resolv::DNS::Name.create did not check per-label or total name length either, and thus an attacker-controlled hostname reached the encoder unchanged. An application that resolves an attacker-controlled hostname sends a query whose wire bytes name a domain the attacker chose. A hostname suffix that the application validates against an allowlist becomes padding that never appears on the wire, and thus allowlist and egress checks can be bypassed. The recursive resolver caches the response under the attacker's name, and DNS logs record that name rather than the one the application asked for. A label length whose low octet lands in the 0xC0-0xFF range produces a length octet that conforming parsers read as the start of a compression pointer, with the following attacker-controlled byte as the offset.

Record
CVE-2026-80213
CVSS 3.1
4.0 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:N
Weakness
CWE-197
Updated
2026-11-02
OSVALPINE-CVE-2026-80213 4.0

An issue was discovered in the resolv gem before 0.7.2 for Ruby. Resolv::DNS::MessageEncoder wrote a DNS label's length into a single octet without checking its range. A label longer than 255 octets had its length stored modulo 256 but the label data was written unchanged, and thus the bytes on the wire described a different name than the one the application asked to encode. RFC 1035 section 2.3.4 limits a label to 63 octets, and the two high bits of the length octet are reserved for compression pointers. put_string packed the length with put_pack("C", d.length) and put_label used it for labels, and thus any value from 0 to 255 could end up as a label length octet, including the reserved 0x40-0xBF range and the 0xC0-0xFF pointer range. Resolv::DNS::Name.create did not check per-label or total name length either, and thus an attacker-controlled hostname reached the encoder unchanged. An application that resolves an attacker-controlled hostname sends a query whose wire bytes name a domain the attacker chose. A hostname suffix that the application validates against an allowlist becomes padding that never appears on the wire, and thus allowlist and egress checks can be bypassed. The recursive resolver caches the response under the attacker's name, and DNS logs record that name rather than the one the application asked for. A label length whose low octet lands in the 0xC0-0xFF range produces a length octet that conforming parsers read as the start of a compression pointer, with the following attacker-controlled byte as the offset.

Record
ALPINE-CVE-2026-80213
CVSS 3.1
4.0 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:N
Updated
2026-11-02
OSVBELL-CVE-2026-80213 4.0
Record
BELL-CVE-2026-80213
CVSS 3.1
4.0 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:N
Updated
2026-11-02
Show 15 moreShow less
OSV 4.0

An issue was discovered in the resolv gem before 0.7.2 for Ruby. Resolv::DNS::MessageEncoder wrote a DNS label's length into a single octet without checking its range. A label longer than 255 octets had its length stored modulo 256 but the label data was written unchanged, and thus the bytes on the wire described a different name than the one the application asked to encode. RFC 1035 section 2.3.4 limits a label to 63 octets, and the two high bits of the length octet are reserved for compression pointers. put_string packed the length with put_pack("C", d.length) and put_label used it for labels, and thus any value from 0 to 255 could end up as a label length octet, including the reserved 0x40-0xBF range and the 0xC0-0xFF pointer range. Resolv::DNS::Name.create did not check per-label or total name length either, and thus an attacker-controlled hostname reached the encoder unchanged. An application that resolves an attacker-controlled hostname sends a query whose wire bytes name a domain the attacker chose. A hostname suffix that the application validates against an allowlist becomes padding that never appears on the wire, and thus allowlist and egress checks can be bypassed. The recursive resolver caches the response under the attacker's name, and DNS logs record that name rather than the one the application asked for. A label length whose low octet lands in the 0xC0-0xFF range produces a length octet that conforming parsers read as the start of a compression pointer, with the following attacker-controlled byte as the offset.

Record
CVE-2026-80213
CVSS 3.1
4.0 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:N
Weakness
CWE-197
Updated
2026-11-02
OSVDEBIAN-CVE-2026-80213 4.0

An issue was discovered in the resolv gem before 0.7.2 for Ruby. Resolv::DNS::MessageEncoder wrote a DNS label's length into a single octet without checking its range. A label longer than 255 octets had its length stored modulo 256 but the label data was written unchanged, and thus the bytes on the wire described a different name than the one the application asked to encode. RFC 1035 section 2.3.4 limits a label to 63 octets, and the two high bits of the length octet are reserved for compression pointers. put_string packed the length with put_pack("C", d.length) and put_label used it for labels, and thus any value from 0 to 255 could end up as a label length octet, including the reserved 0x40-0xBF range and the 0xC0-0xFF pointer range. Resolv::DNS::Name.create did not check per-label or total name length either, and thus an attacker-controlled hostname reached the encoder unchanged. An application that resolves an attacker-controlled hostname sends a query whose wire bytes name a domain the attacker chose. A hostname suffix that the application validates against an allowlist becomes padding that never appears on the wire, and thus allowlist and egress checks can be bypassed. The recursive resolver caches the response under the attacker's name, and DNS logs record that name rather than the one the application asked for. A label length whose low octet lands in the 0xC0-0xFF range produces a length octet that conforming parsers read as the start of a compression pointer, with the following attacker-controlled byte as the offset.

Record
DEBIAN-CVE-2026-80213
CVSS 3.1
4.0 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:N
Updated
2026-11-07
OSVOESA-2026-3864 7.5

ruby security update

Ruby is a fast and easy interpreted scripting language for object-oriented programming. It has many functions for processing text Files and perform system management tasks (such as Perl).

Security Fix(es):

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.(CVE-2026-80212)

An issue was discovered in the resolv gem before 0.7.2 for Ruby. Resolv::DNS::MessageEncoder wrote a DNS label's length into a single octet without checking its range. A label longer than 255 octets had its length stored modulo 256 but the label data was written unchanged, and thus the bytes on the wire described a different name than the one the application asked to encode. RFC 1035 section 2.3.4 limits a label to 63 octets, and the two high bits of the length octet are reserved for compression pointers. put_string packed the length with put_pack("C", d.length) and put_label used it for labels, and thus any value from 0 to 255 could end up as a label length octet, including the reserved 0x40-0xBF range and the 0xC0-0xFF pointer range. Resolv::DNS::Name.create did not check per-label or total name length either, and thus an attacker-controlled hostname reached the encoder unchanged. An application that resolves an attacker-controlled hostname sends a query whose wire bytes name a domain the attacker chose. A hostname suffix that the application validates against an allowlist becomes padding that never appears on the wire, and thus allowlist and egress checks can be bypassed. The recursive resolver caches the response under the attacker's name, and DNS logs record that name rather than the one the application asked for. A label length whose low octet lands in the 0xC0-0xFF range produces a length octet that conforming parsers read as the start of a compression pointer, with the following attacker-controlled byte as the offset.(CVE-2026-80213)

RubyGems fails to re-validate path containment after filesystem symlink resolution during gem extraction. When a pre-existing symlink inside the destination directory points outside the extraction root, extracted files that appear to be written under the destination directory can instead be written outside of it, breaking the extraction safety boundary. The fix resolves the real path of the parent directory before writing and raises Gem::Package::PathError if it escapes the destination directory.(CVE-2026-82455)

Record
OESA-2026-3864
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVOESA-2026-3865 6.9

ruby security update

Ruby is a fast and easy interpreted scripting language for object-oriented programming. It has many functions for processing text Files and perform system management tasks (such as Perl).

Security Fix(es):

An issue was discovered in the resolv gem before 0.7.2 for Ruby. Resolv::DNS::MessageEncoder wrote a DNS label's length into a single octet without checking its range. A label longer than 255 octets had its length stored modulo 256 but the label data was written unchanged, and thus the bytes on the wire described a different name than the one the application asked to encode. RFC 1035 section 2.3.4 limits a label to 63 octets, and the two high bits of the length octet are reserved for compression pointers. put_string packed the length with put_pack("C", d.length) and put_label used it for labels, and thus any value from 0 to 255 could end up as a label length octet, including the reserved 0x40-0xBF range and the 0xC0-0xFF pointer range. Resolv::DNS::Name.create did not check per-label or total name length either, and thus an attacker-controlled hostname reached the encoder unchanged. An application that resolves an attacker-controlled hostname sends a query whose wire bytes name a domain the attacker chose. A hostname suffix that the application validates against an allowlist becomes padding that never appears on the wire, and thus allowlist and egress checks can be bypassed. The recursive resolver caches the response under the attacker's name, and DNS logs record that name rather than the one the application asked for. A label length whose low octet lands in the 0xC0-0xFF range produces a length octet that conforming parsers read as the start of a compression pointer, with the following attacker-controlled byte as the offset.(CVE-2026-80213)

RubyGems fails to re-validate path containment after filesystem symlink resolution during gem extraction. When a pre-existing symlink inside the destination directory points outside the extraction root, extracted files that appear to be written under the destination directory can instead be written outside of it, breaking the extraction safety boundary. The fix resolves the real path of the parent directory before writing and raises Gem::Package::PathError if it escapes the destination directory.(CVE-2026-82455)

Record
OESA-2026-3865
CVSS 4.0
6.9 MediumCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N
Updated
2026-11-02
OSVOESA-2026-3866 6.9

ruby security update

Ruby is a fast and easy interpreted scripting language for object-oriented programming. It has many functions for processing text Files and perform system management tasks (such as Perl).

Security Fix(es):

An issue was discovered in the resolv gem before 0.7.2 for Ruby. Resolv::DNS::MessageEncoder wrote a DNS label's length into a single octet without checking its range. A label longer than 255 octets had its length stored modulo 256 but the label data was written unchanged, and thus the bytes on the wire described a different name than the one the application asked to encode. RFC 1035 section 2.3.4 limits a label to 63 octets, and the two high bits of the length octet are reserved for compression pointers. put_string packed the length with put_pack("C", d.length) and put_label used it for labels, and thus any value from 0 to 255 could end up as a label length octet, including the reserved 0x40-0xBF range and the 0xC0-0xFF pointer range. Resolv::DNS::Name.create did not check per-label or total name length either, and thus an attacker-controlled hostname reached the encoder unchanged. An application that resolves an attacker-controlled hostname sends a query whose wire bytes name a domain the attacker chose. A hostname suffix that the application validates against an allowlist becomes padding that never appears on the wire, and thus allowlist and egress checks can be bypassed. The recursive resolver caches the response under the attacker's name, and DNS logs record that name rather than the one the application asked for. A label length whose low octet lands in the 0xC0-0xFF range produces a length octet that conforming parsers read as the start of a compression pointer, with the following attacker-controlled byte as the offset.(CVE-2026-80213)

RubyGems fails to re-validate path containment after filesystem symlink resolution during gem extraction. When a pre-existing symlink inside the destination directory points outside the extraction root, extracted files that appear to be written under the destination directory can instead be written outside of it, breaking the extraction safety boundary. The fix resolves the real path of the parent directory before writing and raises Gem::Package::PathError if it escapes the destination directory.(CVE-2026-82455)

Record
OESA-2026-3866
CVSS 4.0
6.9 MediumCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N
Updated
2026-11-02
OSVOESA-2026-3867 6.9

ruby security update

Ruby is a fast and easy interpreted scripting language for object-oriented programming. It has many functions for processing text Files and perform system management tasks (such as Perl).

Security Fix(es):

An issue was discovered in the resolv gem before 0.7.2 for Ruby. Resolv::DNS::MessageEncoder wrote a DNS label's length into a single octet without checking its range. A label longer than 255 octets had its length stored modulo 256 but the label data was written unchanged, and thus the bytes on the wire described a different name than the one the application asked to encode. RFC 1035 section 2.3.4 limits a label to 63 octets, and the two high bits of the length octet are reserved for compression pointers. put_string packed the length with put_pack("C", d.length) and put_label used it for labels, and thus any value from 0 to 255 could end up as a label length octet, including the reserved 0x40-0xBF range and the 0xC0-0xFF pointer range. Resolv::DNS::Name.create did not check per-label or total name length either, and thus an attacker-controlled hostname reached the encoder unchanged. An application that resolves an attacker-controlled hostname sends a query whose wire bytes name a domain the attacker chose. A hostname suffix that the application validates against an allowlist becomes padding that never appears on the wire, and thus allowlist and egress checks can be bypassed. The recursive resolver caches the response under the attacker's name, and DNS logs record that name rather than the one the application asked for. A label length whose low octet lands in the 0xC0-0xFF range produces a length octet that conforming parsers read as the start of a compression pointer, with the following attacker-controlled byte as the offset.(CVE-2026-80213)

RubyGems fails to re-validate path containment after filesystem symlink resolution during gem extraction. When a pre-existing symlink inside the destination directory points outside the extraction root, extracted files that appear to be written under the destination directory can instead be written outside of it, breaking the extraction safety boundary. The fix resolves the real path of the parent directory before writing and raises Gem::Package::PathError if it escapes the destination directory.(CVE-2026-82455)

Record
OESA-2026-3867
CVSS 4.0
6.9 MediumCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N
Updated
2026-11-02
OSVOESA-2026-3868 4.0

ruby security update

Ruby is a fast and easy interpreted scripting language for object-oriented programming. It has many functions for processing text Files and perform system management tasks (such as Perl).

Security Fix(es):

An issue was discovered in the resolv gem before 0.7.2 for Ruby. Resolv::DNS::MessageEncoder wrote a DNS label's length into a single octet without checking its range. A label longer than 255 octets had its length stored modulo 256 but the label data was written unchanged, and thus the bytes on the wire described a different name than the one the application asked to encode. RFC 1035 section 2.3.4 limits a label to 63 octets, and the two high bits of the length octet are reserved for compression pointers. put_string packed the length with put_pack("C", d.length) and put_label used it for labels, and thus any value from 0 to 255 could end up as a label length octet, including the reserved 0x40-0xBF range and the 0xC0-0xFF pointer range. Resolv::DNS::Name.create did not check per-label or total name length either, and thus an attacker-controlled hostname reached the encoder unchanged. An application that resolves an attacker-controlled hostname sends a query whose wire bytes name a domain the attacker chose. A hostname suffix that the application validates against an allowlist becomes padding that never appears on the wire, and thus allowlist and egress checks can be bypassed. The recursive resolver caches the response under the attacker's name, and DNS logs record that name rather than the one the application asked for. A label length whose low octet lands in the 0xC0-0xFF range produces a length octet that conforming parsers read as the start of a compression pointer, with the following attacker-controlled byte as the offset.(CVE-2026-80213)

Record
OESA-2026-3868
CVSS 3.1
4.0 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:N
Updated
2026-11-02
OSVRHSA-2026:57565 9.1

Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update

Record
RHSA-2026:57565
CVSS 3.1
9.1 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
Updated
2026-11-02
OSVRHSA-2026:57986 7.5

Red Hat Security Advisory: Red Hat Hardened Images RPMs bug fix and enhancement update

Record
RHSA-2026:57986
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVRHSA-2026:57994 7.5

Red Hat Security Advisory: Red Hat Hardened Images RPMs bug fix and enhancement update

Record
RHSA-2026:57994
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVRHSA-2026:62562 9.1

Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update

Record
RHSA-2026:62562
CVSS 3.1
9.1 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
Updated
2026-11-02
OSVRHSA-2026:62563 9.1

Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update

Record
RHSA-2026:62563
CVSS 3.1
9.1 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
Updated
2026-11-02
OSVAZL-98229 No score

CVE-2026-80213 affecting package ruby for versions less than 3.3.5-9

An issue was discovered in the resolv gem before 0.7.2 for Ruby. Resolv::DNS::MessageEncoder wrote a DNS label's length into a single octet without checking its range. A label longer than 255 octets had its length stored modulo 256 but the label data was written unchanged, and thus the bytes on the wire described a different name than the one the application asked to encode. RFC 1035 section 2.3.4 limits a label to 63 octets, and the two high bits of the length octet are reserved for compression pointers. put_string packed the length with put_pack("C", d.length) and put_label used it for labels, and thus any value from 0 to 255 could end up as a label length octet, including the reserved 0x40-0xBF range and the 0xC0-0xFF pointer range. Resolv::DNS::Name.create did not check per-label or total name length either, and thus an attacker-controlled hostname reached the encoder unchanged. An application that resolves an attacker-controlled hostname sends a query whose wire bytes name a domain the attacker chose. A hostname suffix that the application validates against an allowlist becomes padding that never appears on the wire, and thus allowlist and egress checks can be bypassed. The recursive resolver caches the response under the attacker's name, and DNS logs record that name rather than the one the application asked for. A label length whose low octet lands in the 0xC0-0xFF range produces a length octet that conforming parsers read as the start of a compression pointer, with the following attacker-controlled byte as the offset.

Record
AZL-98229
Updated
2026-11-02
OSVCLSA-2026-1789392152 No score

ruby: Fix of 2 CVEs

  • CVE-2026-80212: fix unbounded memory growth in the DNS resolver by no longer permanently registering an on-demand class for each unknown (type, class) pair as a Generic constant and a ClassHash entry, and by comparing generic resources and questions by their type and class values rather than by class identity
  • CVE-2026-80213: enforce the RFC 1035 DNS label and name size limits when encoding by making the 63-octet label limit an invariant of Label::Str, guarding put_string and put_label, counting the encoded form in get_labels, and raising ResolvError for an oversized name in Name.create
Record
CLSA-2026-1789392152
Updated
2026-11-02
OSVCLSA-2026-1789644305 No score

ruby: Fix of 2 CVEs

  • CVE-2026-80212: resolv: stop Resource::Generic.create from permanently registering a generated class for each unknown (type, class) pair as a Generic constant and a ClassHash entry, and compare generic resources and questions by their TypeValue/ClassValue instead of by class identity
  • CVE-2026-80213: resolv: enforce the RFC 1035 label and name size limits when encoding by making the 63-octet label limit an invariant of Label::Str, bounding put_string and put_label, counting the encoded form in get_labels, and raising ResolvError for an oversized name in Name.create
Record
CLSA-2026-1789644305
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
ruby
Alpine:v3.21
before 3.3.13-r0
3.3.13-r0
ruby
Alpine:v3.22
before 3.4.12-r0
3.4.12-r0
ruby
Alpine:v3.23
before 3.4.12-r0
3.4.12-r0
ruby
Alpine:v3.24
before 3.4.12-r0
3.4.12-r0
ruby
Azure Linux:3
before 3.3.5-9
3.3.5-9
ruby
Alpaquita:23
3.1.2-r1 up to 3.3.13-r0
3.3.13-r0
ruby
Alpaquita:25
3.4.4-r0 up to 3.4.12-r0
3.4.12-r0
ruby
Alpaquita:stream
3.1.2-r1 up to 3.4.12-r0
3.4.12-r0
ruby
TuxCare:AlmaLinux:9.2
From an advisory covering 2 CVEs
before 3.0.4-160.el9_2.tuxcare.els19
3.0.4-160.el9_2.tuxcare.els19
ruby-default-gems
TuxCare:AlmaLinux:9.2
From an advisory covering 2 CVEs
before 3.0.4-160.el9_2.tuxcare.els19
3.0.4-160.el9_2.tuxcare.els19
Show 134 moreShow less
Affected packages
PackageAffectedFixed
ruby-devel
TuxCare:AlmaLinux:9.2
From an advisory covering 2 CVEs
before 3.0.4-160.el9_2.tuxcare.els19
3.0.4-160.el9_2.tuxcare.els19
ruby-doc
TuxCare:AlmaLinux:9.2
From an advisory covering 2 CVEs
before 3.0.4-160.el9_2.tuxcare.els19
3.0.4-160.el9_2.tuxcare.els19
ruby-libs
TuxCare:AlmaLinux:9.2
From an advisory covering 2 CVEs
before 3.0.4-160.el9_2.tuxcare.els19
3.0.4-160.el9_2.tuxcare.els19
rubygem-bigdecimal
TuxCare:AlmaLinux:9.2
From an advisory covering 2 CVEs
before 3.0.0-160.el9_2.tuxcare.els19
3.0.0-160.el9_2.tuxcare.els19
rubygem-bundler
TuxCare:AlmaLinux:9.2
From an advisory covering 2 CVEs
before 2.2.33-160.el9_2.tuxcare.els19
2.2.33-160.el9_2.tuxcare.els19
rubygem-io-console
TuxCare:AlmaLinux:9.2
From an advisory covering 2 CVEs
before 0.5.7-160.el9_2.tuxcare.els19
0.5.7-160.el9_2.tuxcare.els19
rubygem-irb
TuxCare:AlmaLinux:9.2
From an advisory covering 2 CVEs
before 1.3.5-160.el9_2.tuxcare.els19
1.3.5-160.el9_2.tuxcare.els19
rubygem-json
TuxCare:AlmaLinux:9.2
From an advisory covering 2 CVEs
before 2.5.1-160.el9_2.tuxcare.els19
2.5.1-160.el9_2.tuxcare.els19
rubygem-minitest
TuxCare:AlmaLinux:9.2
From an advisory covering 2 CVEs
before 5.14.2-160.el9_2.tuxcare.els19
5.14.2-160.el9_2.tuxcare.els19
rubygem-power_assert
TuxCare:AlmaLinux:9.2
From an advisory covering 2 CVEs
before 1.2.0-160.el9_2.tuxcare.els19
1.2.0-160.el9_2.tuxcare.els19
rubygem-psych
TuxCare:AlmaLinux:9.2
From an advisory covering 2 CVEs
before 3.3.2-160.el9_2.tuxcare.els19
3.3.2-160.el9_2.tuxcare.els19
rubygem-rake
TuxCare:AlmaLinux:9.2
From an advisory covering 2 CVEs
before 13.0.3-160.el9_2.tuxcare.els19
13.0.3-160.el9_2.tuxcare.els19
rubygem-rbs
TuxCare:AlmaLinux:9.2
From an advisory covering 2 CVEs
before 1.4.0-160.el9_2.tuxcare.els19
1.4.0-160.el9_2.tuxcare.els19
rubygem-rdoc
TuxCare:AlmaLinux:9.2
From an advisory covering 2 CVEs
before 6.3.3-160.el9_2.tuxcare.els19
6.3.3-160.el9_2.tuxcare.els19
rubygem-rexml
TuxCare:AlmaLinux:9.2
From an advisory covering 2 CVEs
before 3.3.3-160.el9_2.tuxcare.els19
3.3.3-160.el9_2.tuxcare.els19
rubygem-rss
TuxCare:AlmaLinux:9.2
From an advisory covering 2 CVEs
before 0.2.9-160.el9_2.tuxcare.els19
0.2.9-160.el9_2.tuxcare.els19
rubygem-test-unit
TuxCare:AlmaLinux:9.2
From an advisory covering 2 CVEs
before 3.3.7-160.el9_2.tuxcare.els19
3.3.7-160.el9_2.tuxcare.els19
rubygem-typeprof
TuxCare:AlmaLinux:9.2
From an advisory covering 2 CVEs
before 0.15.2-160.el9_2.tuxcare.els19
0.15.2-160.el9_2.tuxcare.els19
rubygems
TuxCare:AlmaLinux:9.2
From an advisory covering 2 CVEs
before 3.2.33-160.el9_2.tuxcare.els19
3.2.33-160.el9_2.tuxcare.els19
rubygems-devel
TuxCare:AlmaLinux:9.2
From an advisory covering 2 CVEs
before 3.2.33-160.el9_2.tuxcare.els19
3.2.33-160.el9_2.tuxcare.els19
ruby
TuxCare:AlmaLinux:9.6
From an advisory covering 2 CVEs
before 3.0.7-165.el9_6.tuxcare.els8
3.0.7-165.el9_6.tuxcare.els8
ruby-default-gems
TuxCare:AlmaLinux:9.6
From an advisory covering 2 CVEs
before 3.0.7-165.el9_6.tuxcare.els8
3.0.7-165.el9_6.tuxcare.els8
ruby-devel
TuxCare:AlmaLinux:9.6
From an advisory covering 2 CVEs
before 3.0.7-165.el9_6.tuxcare.els8
3.0.7-165.el9_6.tuxcare.els8
ruby-doc
TuxCare:AlmaLinux:9.6
From an advisory covering 2 CVEs
before 3.0.7-165.el9_6.tuxcare.els8
3.0.7-165.el9_6.tuxcare.els8
ruby-libs
TuxCare:AlmaLinux:9.6
From an advisory covering 2 CVEs
before 3.0.7-165.el9_6.tuxcare.els8
3.0.7-165.el9_6.tuxcare.els8
rubygem-bigdecimal
TuxCare:AlmaLinux:9.6
From an advisory covering 2 CVEs
before 3.0.0-165.el9_6.tuxcare.els8
3.0.0-165.el9_6.tuxcare.els8
rubygem-bundler
TuxCare:AlmaLinux:9.6
From an advisory covering 2 CVEs
before 2.2.33-165.el9_6.tuxcare.els8
2.2.33-165.el9_6.tuxcare.els8
rubygem-io-console
TuxCare:AlmaLinux:9.6
From an advisory covering 2 CVEs
before 0.5.7-165.el9_6.tuxcare.els8
0.5.7-165.el9_6.tuxcare.els8
rubygem-irb
TuxCare:AlmaLinux:9.6
From an advisory covering 2 CVEs
before 1.3.5-165.el9_6.tuxcare.els8
1.3.5-165.el9_6.tuxcare.els8
rubygem-json
TuxCare:AlmaLinux:9.6
From an advisory covering 2 CVEs
before 2.5.1-165.el9_6.tuxcare.els8
2.5.1-165.el9_6.tuxcare.els8
rubygem-minitest
TuxCare:AlmaLinux:9.6
From an advisory covering 2 CVEs
before 5.14.2-165.el9_6.tuxcare.els8
5.14.2-165.el9_6.tuxcare.els8
rubygem-power_assert
TuxCare:AlmaLinux:9.6
From an advisory covering 2 CVEs
before 1.2.1-165.el9_6.tuxcare.els8
1.2.1-165.el9_6.tuxcare.els8
rubygem-psych
TuxCare:AlmaLinux:9.6
From an advisory covering 2 CVEs
before 3.3.2-165.el9_6.tuxcare.els8
3.3.2-165.el9_6.tuxcare.els8
rubygem-rake
TuxCare:AlmaLinux:9.6
From an advisory covering 2 CVEs
before 13.0.3-165.el9_6.tuxcare.els8
13.0.3-165.el9_6.tuxcare.els8
rubygem-rbs
TuxCare:AlmaLinux:9.6
From an advisory covering 2 CVEs
before 1.4.0-165.el9_6.tuxcare.els8
1.4.0-165.el9_6.tuxcare.els8
rubygem-rdoc
TuxCare:AlmaLinux:9.6
From an advisory covering 2 CVEs
before 6.3.4.1-165.el9_6.tuxcare.els8
6.3.4.1-165.el9_6.tuxcare.els8
rubygem-rexml
TuxCare:AlmaLinux:9.6
From an advisory covering 2 CVEs
before 3.2.5-165.el9_6.tuxcare.els8
3.2.5-165.el9_6.tuxcare.els8
rubygem-rss
TuxCare:AlmaLinux:9.6
From an advisory covering 2 CVEs
before 0.2.9-165.el9_6.tuxcare.els8
0.2.9-165.el9_6.tuxcare.els8
rubygem-test-unit
TuxCare:AlmaLinux:9.6
From an advisory covering 2 CVEs
before 3.3.7-165.el9_6.tuxcare.els8
3.3.7-165.el9_6.tuxcare.els8
rubygem-typeprof
TuxCare:AlmaLinux:9.6
From an advisory covering 2 CVEs
before 0.15.2-165.el9_6.tuxcare.els8
0.15.2-165.el9_6.tuxcare.els8
rubygems
TuxCare:AlmaLinux:9.6
From an advisory covering 2 CVEs
before 3.2.33-165.el9_6.tuxcare.els8
3.2.33-165.el9_6.tuxcare.els8
rubygems-devel
TuxCare:AlmaLinux:9.6
From an advisory covering 2 CVEs
before 3.2.33-165.el9_6.tuxcare.els8
3.2.33-165.el9_6.tuxcare.els8
ruby3.1
Debian:12
All versions, plus listed versions
3.1.2-73.1.2-7+deb12u13.1.2-7+hurd.13.1.2-83.1.2-8.1~exp13.1.2-8.33.1.2-8.43.1.2-8.5
None known
ruby3.3
Debian:13
before 3.3.13-0+deb13u1, plus listed versions
3.3.8-23.3.8-2.13.3.8-2.2
3.3.13-0+deb13u1
ruby3.3
Debian:14
All versions, plus listed versions
3.3.8-23.3.8-2.13.3.8-2.2
None known
ruby
openEuler:24.03-LTS-SP4
From an advisory covering 3 CVEs
before 3.2.2-160.oe2403sp4
3.2.2-160.oe2403sp4
ruby
openEuler:20.03-LTS-SP4
From an advisory covering 2 CVEs
before 2.5.8-144.oe2003sp4
2.5.8-144.oe2003sp4
ruby
openEuler:22.03-LTS-SP4
From an advisory covering 2 CVEs
before 3.0.3-151.oe2203sp4
3.0.3-151.oe2203sp4
ruby
openEuler:24.03-LTS-SP1
From an advisory covering 2 CVEs
before 3.2.2-160.oe2403sp1
3.2.2-160.oe2403sp1
ruby
openEuler:24.03-LTS-SP3
before 3.2.2-161.oe2403sp3
3.2.2-161.oe2403sp3
ruby4.0
Red Hat:hummingbird:1
From an advisory covering 4 CVEs
before 0:4.0.6-37.2.hum1
0:4.0.6-37.2.hum1
ruby4.0-bundled-gems
Red Hat:hummingbird:1
From an advisory covering 4 CVEs
before 0:4.0.6-37.2.hum1
0:4.0.6-37.2.hum1
ruby4.0-default-gems
Red Hat:hummingbird:1
From an advisory covering 4 CVEs
before 0:4.0.6-37.2.hum1
0:4.0.6-37.2.hum1
ruby4.0-devel
Red Hat:hummingbird:1
From an advisory covering 4 CVEs
before 0:4.0.6-37.2.hum1
0:4.0.6-37.2.hum1
ruby4.0-doc
Red Hat:hummingbird:1
From an advisory covering 4 CVEs
before 0:4.0.6-37.2.hum1
0:4.0.6-37.2.hum1
ruby4.0-libs
Red Hat:hummingbird:1
From an advisory covering 4 CVEs
before 0:4.0.6-37.2.hum1
0:4.0.6-37.2.hum1
rubygem4.0-bigdecimal
Red Hat:hummingbird:1
From an advisory covering 4 CVEs
before 0:4.0.1-37.2.hum1
0:4.0.1-37.2.hum1
rubygem4.0-bundler
Red Hat:hummingbird:1
From an advisory covering 4 CVEs
before 0:4.0.16-37.2.hum1
0:4.0.16-37.2.hum1
rubygem4.0-devel
Red Hat:hummingbird:1
From an advisory covering 4 CVEs
before 0:4.0.16-37.2.hum1
0:4.0.16-37.2.hum1
rubygem4.0-io-console
Red Hat:hummingbird:1
From an advisory covering 4 CVEs
before 0:0.8.2-37.2.hum1
0:0.8.2-37.2.hum1
rubygem4.0-irb
Red Hat:hummingbird:1
From an advisory covering 4 CVEs
before 0:1.16.0-37.2.hum1
0:1.16.0-37.2.hum1
rubygem4.0-json
Red Hat:hummingbird:1
From an advisory covering 4 CVEs
before 0:2.18.0-37.2.hum1
0:2.18.0-37.2.hum1
rubygem4.0-minitest
Red Hat:hummingbird:1
From an advisory covering 4 CVEs
before 0:6.0.0-37.2.hum1
0:6.0.0-37.2.hum1
rubygem4.0-power_assert
Red Hat:hummingbird:1
From an advisory covering 4 CVEs
before 0:3.0.1-37.2.hum1
0:3.0.1-37.2.hum1
rubygem4.0-psych
Red Hat:hummingbird:1
From an advisory covering 4 CVEs
before 0:5.3.1-37.2.hum1
0:5.3.1-37.2.hum1
rubygem4.0-racc
Red Hat:hummingbird:1
From an advisory covering 4 CVEs
before 0:1.8.1-37.2.hum1
0:1.8.1-37.2.hum1
rubygem4.0-rake
Red Hat:hummingbird:1
From an advisory covering 4 CVEs
before 0:13.3.1-37.2.hum1
0:13.3.1-37.2.hum1
rubygem4.0-rbs
Red Hat:hummingbird:1
From an advisory covering 4 CVEs
before 0:3.10.0-37.2.hum1
0:3.10.0-37.2.hum1
rubygem4.0-rdoc
Red Hat:hummingbird:1
From an advisory covering 4 CVEs
before 0:7.0.4-37.2.hum1
0:7.0.4-37.2.hum1
rubygem4.0-rexml
Red Hat:hummingbird:1
From an advisory covering 4 CVEs
before 0:3.4.4-37.2.hum1
0:3.4.4-37.2.hum1
rubygem4.0-rss
Red Hat:hummingbird:1
From an advisory covering 4 CVEs
before 0:0.3.2-37.2.hum1
0:0.3.2-37.2.hum1
rubygem4.0-rubygems
Red Hat:hummingbird:1
From an advisory covering 4 CVEs
before 0:4.0.16-37.2.hum1
0:4.0.16-37.2.hum1
rubygem4.0-test-unit
Red Hat:hummingbird:1
From an advisory covering 4 CVEs
before 0:3.7.5-37.2.hum1
0:3.7.5-37.2.hum1
rubygem4.0-typeprof
Red Hat:hummingbird:1
From an advisory covering 4 CVEs
before 0:0.31.1-37.2.hum1
0:0.31.1-37.2.hum1
ruby3.3
Red Hat:hummingbird:1
From an advisory covering 3 CVEs
before 0:3.3.10-23.5.hum1
0:3.3.10-23.5.hum1
ruby3.3-bundled-gems
Red Hat:hummingbird:1
From an advisory covering 3 CVEs
before 0:3.3.10-23.5.hum1
0:3.3.10-23.5.hum1
ruby3.3-default-gems
Red Hat:hummingbird:1
From an advisory covering 3 CVEs
before 0:3.3.10-23.5.hum1
0:3.3.10-23.5.hum1
ruby3.3-devel
Red Hat:hummingbird:1
From an advisory covering 3 CVEs
before 0:3.3.10-23.5.hum1
0:3.3.10-23.5.hum1
ruby3.3-doc
Red Hat:hummingbird:1
From an advisory covering 3 CVEs
before 0:3.3.10-23.5.hum1
0:3.3.10-23.5.hum1
ruby3.3-libs
Red Hat:hummingbird:1
From an advisory covering 3 CVEs
before 0:3.3.10-23.5.hum1
0:3.3.10-23.5.hum1
ruby3.4
Red Hat:hummingbird:1
From an advisory covering 3 CVEs
before 0:3.4.10-31.6.hum1
0:3.4.10-31.6.hum1
ruby3.4-bundled-gems
Red Hat:hummingbird:1
From an advisory covering 3 CVEs
before 0:3.4.10-31.6.hum1
0:3.4.10-31.6.hum1
ruby3.4-default-gems
Red Hat:hummingbird:1
From an advisory covering 3 CVEs
before 0:3.4.10-31.6.hum1
0:3.4.10-31.6.hum1
ruby3.4-devel
Red Hat:hummingbird:1
From an advisory covering 3 CVEs
before 0:3.4.10-31.6.hum1
0:3.4.10-31.6.hum1
ruby3.4-doc
Red Hat:hummingbird:1
From an advisory covering 3 CVEs
before 0:3.4.10-31.6.hum1
0:3.4.10-31.6.hum1
ruby3.4-libs
Red Hat:hummingbird:1
From an advisory covering 3 CVEs
before 0:3.4.10-31.6.hum1
0:3.4.10-31.6.hum1
ruby3.3
Red Hat:hummingbird:1
From an advisory covering 22 CVEs
before 0:3.3.10-23.6.hum1
0:3.3.10-23.6.hum1
ruby3.3-bundled-gems
Red Hat:hummingbird:1
From an advisory covering 22 CVEs
before 0:3.3.10-23.6.hum1
0:3.3.10-23.6.hum1
ruby3.3-default-gems
Red Hat:hummingbird:1
From an advisory covering 22 CVEs
before 0:3.3.10-23.6.hum1
0:3.3.10-23.6.hum1
ruby3.3-devel
Red Hat:hummingbird:1
From an advisory covering 22 CVEs
before 0:3.3.10-23.6.hum1
0:3.3.10-23.6.hum1
ruby3.3-doc
Red Hat:hummingbird:1
From an advisory covering 22 CVEs
before 0:3.3.10-23.6.hum1
0:3.3.10-23.6.hum1
ruby3.3-libs
Red Hat:hummingbird:1
From an advisory covering 22 CVEs
before 0:3.3.10-23.6.hum1
0:3.3.10-23.6.hum1
rubygem3.3-bigdecimal
Red Hat:hummingbird:1
From an advisory covering 22 CVEs
before 0:3.1.5-23.6.hum1
0:3.1.5-23.6.hum1
rubygem3.3-bundler
Red Hat:hummingbird:1
From an advisory covering 22 CVEs
before 0:2.5.22-23.6.hum1
0:2.5.22-23.6.hum1
rubygem3.3-devel
Red Hat:hummingbird:1
From an advisory covering 22 CVEs
before 0:3.5.22-23.6.hum1
0:3.5.22-23.6.hum1
rubygem3.3-io-console
Red Hat:hummingbird:1
From an advisory covering 22 CVEs
before 0:0.7.1-23.6.hum1
0:0.7.1-23.6.hum1
rubygem3.3-irb
Red Hat:hummingbird:1
From an advisory covering 22 CVEs
before 0:1.13.1-23.6.hum1
0:1.13.1-23.6.hum1
rubygem3.3-json
Red Hat:hummingbird:1
From an advisory covering 22 CVEs
before 0:2.7.2-23.6.hum1
0:2.7.2-23.6.hum1
rubygem3.3-minitest
Red Hat:hummingbird:1
From an advisory covering 22 CVEs
before 0:5.20.0-23.6.hum1
0:5.20.0-23.6.hum1
rubygem3.3-power_assert
Red Hat:hummingbird:1
From an advisory covering 22 CVEs
before 0:2.0.3-23.6.hum1
0:2.0.3-23.6.hum1
rubygem3.3-psych
Red Hat:hummingbird:1
From an advisory covering 22 CVEs
before 0:5.1.2-23.6.hum1
0:5.1.2-23.6.hum1
rubygem3.3-racc
Red Hat:hummingbird:1
From an advisory covering 22 CVEs
before 0:1.7.3-23.6.hum1
0:1.7.3-23.6.hum1
rubygem3.3-rake
Red Hat:hummingbird:1
From an advisory covering 22 CVEs
before 0:13.1.0-23.6.hum1
0:13.1.0-23.6.hum1
rubygem3.3-rbs
Red Hat:hummingbird:1
From an advisory covering 22 CVEs
before 0:3.4.0-23.6.hum1
0:3.4.0-23.6.hum1
rubygem3.3-rdoc
Red Hat:hummingbird:1
From an advisory covering 22 CVEs
before 0:6.6.3.1-23.6.hum1
0:6.6.3.1-23.6.hum1
rubygem3.3-rexml
Red Hat:hummingbird:1
From an advisory covering 22 CVEs
before 0:3.4.4-23.6.hum1
0:3.4.4-23.6.hum1
rubygem3.3-rss
Red Hat:hummingbird:1
From an advisory covering 22 CVEs
before 0:0.3.1-23.6.hum1
0:0.3.1-23.6.hum1
rubygem3.3-rubygems
Red Hat:hummingbird:1
From an advisory covering 22 CVEs
before 0:3.5.22-23.6.hum1
0:3.5.22-23.6.hum1
rubygem3.3-test-unit
Red Hat:hummingbird:1
From an advisory covering 22 CVEs
before 0:3.6.1-23.6.hum1
0:3.6.1-23.6.hum1
rubygem3.3-typeprof
Red Hat:hummingbird:1
From an advisory covering 22 CVEs
before 0:0.21.9-23.6.hum1
0:0.21.9-23.6.hum1
ruby4.0
Red Hat:hummingbird:1
From an advisory covering 21 CVEs
before 0:4.0.6-37.3.hum1
0:4.0.6-37.3.hum1
ruby4.0-bundled-gems
Red Hat:hummingbird:1
From an advisory covering 21 CVEs
before 0:4.0.6-37.3.hum1
0:4.0.6-37.3.hum1
ruby4.0-default-gems
Red Hat:hummingbird:1
From an advisory covering 21 CVEs
before 0:4.0.6-37.3.hum1
0:4.0.6-37.3.hum1
ruby4.0-devel
Red Hat:hummingbird:1
From an advisory covering 21 CVEs
before 0:4.0.6-37.3.hum1
0:4.0.6-37.3.hum1
ruby4.0-doc
Red Hat:hummingbird:1
From an advisory covering 21 CVEs
before 0:4.0.6-37.3.hum1
0:4.0.6-37.3.hum1
ruby4.0-libs
Red Hat:hummingbird:1
From an advisory covering 21 CVEs
before 0:4.0.6-37.3.hum1
0:4.0.6-37.3.hum1
rubygem4.0-bigdecimal
Red Hat:hummingbird:1
From an advisory covering 21 CVEs
before 0:4.0.1-37.3.hum1
0:4.0.1-37.3.hum1
rubygem4.0-bundler
Red Hat:hummingbird:1
From an advisory covering 21 CVEs
before 0:4.0.16-37.3.hum1
0:4.0.16-37.3.hum1
rubygem4.0-devel
Red Hat:hummingbird:1
From an advisory covering 21 CVEs
before 0:4.0.16-37.3.hum1
0:4.0.16-37.3.hum1
rubygem4.0-io-console
Red Hat:hummingbird:1
From an advisory covering 21 CVEs
before 0:0.8.2-37.3.hum1
0:0.8.2-37.3.hum1
rubygem4.0-irb
Red Hat:hummingbird:1
From an advisory covering 21 CVEs
before 0:1.16.0-37.3.hum1
0:1.16.0-37.3.hum1
rubygem4.0-json
Red Hat:hummingbird:1
From an advisory covering 21 CVEs
before 0:2.18.0-37.3.hum1
0:2.18.0-37.3.hum1
rubygem4.0-minitest
Red Hat:hummingbird:1
From an advisory covering 21 CVEs
before 0:6.0.0-37.3.hum1
0:6.0.0-37.3.hum1
rubygem4.0-power_assert
Red Hat:hummingbird:1
From an advisory covering 21 CVEs
before 0:3.0.1-37.3.hum1
0:3.0.1-37.3.hum1
rubygem4.0-psych
Red Hat:hummingbird:1
From an advisory covering 21 CVEs
before 0:5.3.1-37.3.hum1
0:5.3.1-37.3.hum1
rubygem4.0-racc
Red Hat:hummingbird:1
From an advisory covering 21 CVEs
before 0:1.8.1-37.3.hum1
0:1.8.1-37.3.hum1
rubygem4.0-rake
Red Hat:hummingbird:1
From an advisory covering 21 CVEs
before 0:13.3.1-37.3.hum1
0:13.3.1-37.3.hum1
rubygem4.0-rbs
Red Hat:hummingbird:1
From an advisory covering 21 CVEs
before 0:3.10.0-37.3.hum1
0:3.10.0-37.3.hum1
rubygem4.0-rdoc
Red Hat:hummingbird:1
From an advisory covering 21 CVEs
before 0:7.0.4-37.3.hum1
0:7.0.4-37.3.hum1
rubygem4.0-rexml
Red Hat:hummingbird:1
From an advisory covering 21 CVEs
before 0:3.4.4-37.3.hum1
0:3.4.4-37.3.hum1
rubygem4.0-rss
Red Hat:hummingbird:1
From an advisory covering 21 CVEs
before 0:0.3.2-37.3.hum1
0:0.3.2-37.3.hum1
rubygem4.0-rubygems
Red Hat:hummingbird:1
From an advisory covering 21 CVEs
before 0:4.0.16-37.3.hum1
0:4.0.16-37.3.hum1
rubygem4.0-test-unit
Red Hat:hummingbird:1
From an advisory covering 21 CVEs
before 0:3.7.5-37.3.hum1
0:3.7.5-37.3.hum1
rubygem4.0-typeprof
Red Hat:hummingbird:1
From an advisory covering 21 CVEs
before 0:0.31.1-37.3.hum1
0:0.31.1-37.3.hum1

History

History
RecordedChangedSources
affected, aliases, referencesOSV
affected, facts
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-80213 is a medium vulnerability (CVSS 4.0) in Ruby Resolv, published August 21, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.27%, the 19th percentile. Fixed in ruby 3.3.13-r0.

References

Show 130 moreShow less
MoveEnter Open