<?xml version="1.0" encoding="UTF-8"?>
<cvrfdoc xmlns="http://www.icasi.org/CVRF/schema/cvrf/1.1" xmlns:cvrf="http://www.icasi.org/CVRF/schema/cvrf/1.1">
	<DocumentTitle xml:lang="en">An update for ruby is now available for openEuler-24.03-LTS-SP1</DocumentTitle>
	<DocumentType>Security Advisory</DocumentType>
	<DocumentPublisher Type="Vendor">
		<ContactDetails>openeuler-security@openeuler.org</ContactDetails>
		<IssuingAuthority>openEuler security committee</IssuingAuthority>
	</DocumentPublisher>
	<DocumentTracking>
		<Identification>
			<ID>openEuler-SA-2026-3534</ID>
		</Identification>
		<Status>Final</Status>
		<Version>1.0</Version>
		<RevisionHistory>
			<Revision>
				<Number>1.0</Number>
				<Date>2026-08-30</Date>
				<Description>Initial</Description>
			</Revision>
		</RevisionHistory>
		<InitialReleaseDate>2026-08-30</InitialReleaseDate>
		<CurrentReleaseDate>2026-08-30</CurrentReleaseDate>
		<Generator>
			<Engine>openEuler SA Tool V1.0</Engine>
			<Date>2026-08-30</Date>
		</Generator>
	</DocumentTracking>
	<DocumentNotes>
		<Note Title="Synopsis" Type="General" Ordinal="1" xml:lang="en">ruby security update</Note>
		<Note Title="Summary" Type="General" Ordinal="2" xml:lang="en">An update for ruby is now available for openEuler-24.03-LTS-SP1</Note>
		<Note Title="Description" Type="General" Ordinal="3" xml:lang="en">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):

The attack vector is a potential Denial of Service (DoS). The vulnerability is caused by an insufficient check on the length of a decompressed domain name within a DNS packet.

An attacker can craft a malicious DNS packet containing a highly compressed domain name. When the resolv library parses such a packet, the name decompression process consumes a large amount of CPU resources, as the library does not limit the resulting length of the name.

This resource consumption can cause the application thread to become unresponsive, resulting in a Denial of Service condition.(CVE-2025-24294)

zlib is a Ruby interface for the zlib compression/decompression library. Versions 3.0.0 and below, 3.1.0, 3.1.1, 3.2.0 and 3.2.1 contain a buffer overflow vulnerability in the Zlib::GzipReader. The zstream_buffer_ungets function prepends caller-provided bytes ahead of previously produced output but fails to guarantee the backing Ruby string has enough capacity before the memmove shifts the existing data. This can lead to memory corruption when the buffer length exceeds capacity. This issue has been fixed in versions 3.0.1, 3.1.2 and 3.2.3.(CVE-2026-27820)</Note>
		<Note Title="Topic" Type="General" Ordinal="4" xml:lang="en">An update for ruby is now available for openEuler-24.03-LTS-SP1.

openEuler Security has rated this update as having a security impact of critical. A Common Vunlnerability Scoring System(CVSS)base score,which gives a detailed severity rating, is available for each vulnerability from the CVElink(s) in the References section.</Note>
		<Note Title="Severity" Type="General" Ordinal="5" xml:lang="en">Critical</Note>
		<Note Title="Affected Component" Type="General" Ordinal="6" xml:lang="en">ruby</Note>
	</DocumentNotes>
	<DocumentReferences>
		<Reference Type="Self">
			<URL>https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2026-3534</URL>
		</Reference>
		<Reference Type="openEuler CVE">
			<URL>https://www.openeuler.org/en/security/cve/detail/?cveId=CVE-2025-24294</URL>
			<URL>https://www.openeuler.org/en/security/cve/detail/?cveId=CVE-2026-27820</URL>
		</Reference>
		<Reference Type="Other">
			<URL>https://nvd.nist.gov/vuln/detail/CVE-2025-24294</URL>
			<URL>https://nvd.nist.gov/vuln/detail/CVE-2026-27820</URL>
		</Reference>
	</DocumentReferences>
	<ProductTree xmlns="http://www.icasi.org/CVRF/schema/prod/1.1">
		<Branch Type="Product Name" Name="openEuler">
			<FullProductName ProductID="openEuler-24.03-LTS-SP1" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">openEuler-24.03-LTS-SP1</FullProductName>
		</Branch>
		<Branch Type="Package Arch" Name="aarch64">
			<FullProductName ProductID="ruby-3.2.2-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">ruby-3.2.2-157.oe2403sp1.aarch64.rpm</FullProductName>
			<FullProductName ProductID="ruby-bundled-gems-3.2.2-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">ruby-bundled-gems-3.2.2-157.oe2403sp1.aarch64.rpm</FullProductName>
			<FullProductName ProductID="ruby-debuginfo-3.2.2-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">ruby-debuginfo-3.2.2-157.oe2403sp1.aarch64.rpm</FullProductName>
			<FullProductName ProductID="ruby-debugsource-3.2.2-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">ruby-debugsource-3.2.2-157.oe2403sp1.aarch64.rpm</FullProductName>
			<FullProductName ProductID="ruby-devel-3.2.2-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">ruby-devel-3.2.2-157.oe2403sp1.aarch64.rpm</FullProductName>
			<FullProductName ProductID="rubygem-bigdecimal-3.1.3-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">rubygem-bigdecimal-3.1.3-157.oe2403sp1.aarch64.rpm</FullProductName>
			<FullProductName ProductID="rubygem-io-console-0.6.0-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">rubygem-io-console-0.6.0-157.oe2403sp1.aarch64.rpm</FullProductName>
			<FullProductName ProductID="rubygem-json-2.6.3-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">rubygem-json-2.6.3-157.oe2403sp1.aarch64.rpm</FullProductName>
			<FullProductName ProductID="rubygem-openssl-3.1.0-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">rubygem-openssl-3.1.0-157.oe2403sp1.aarch64.rpm</FullProductName>
			<FullProductName ProductID="rubygem-psych-5.0.1-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">rubygem-psych-5.0.1-157.oe2403sp1.aarch64.rpm</FullProductName>
			<FullProductName ProductID="rubygem-rbs-2.8.2-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">rubygem-rbs-2.8.2-157.oe2403sp1.aarch64.rpm</FullProductName>
		</Branch>
		<Branch Type="Package Arch" Name="src">
			<FullProductName ProductID="ruby-3.2.2-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">ruby-3.2.2-157.oe2403sp1.src.rpm</FullProductName>
		</Branch>
		<Branch Type="Package Arch" Name="x86_64">
			<FullProductName ProductID="ruby-3.2.2-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">ruby-3.2.2-157.oe2403sp1.x86_64.rpm</FullProductName>
			<FullProductName ProductID="ruby-bundled-gems-3.2.2-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">ruby-bundled-gems-3.2.2-157.oe2403sp1.x86_64.rpm</FullProductName>
			<FullProductName ProductID="ruby-debuginfo-3.2.2-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">ruby-debuginfo-3.2.2-157.oe2403sp1.x86_64.rpm</FullProductName>
			<FullProductName ProductID="ruby-debugsource-3.2.2-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">ruby-debugsource-3.2.2-157.oe2403sp1.x86_64.rpm</FullProductName>
			<FullProductName ProductID="ruby-devel-3.2.2-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">ruby-devel-3.2.2-157.oe2403sp1.x86_64.rpm</FullProductName>
			<FullProductName ProductID="rubygem-bigdecimal-3.1.3-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">rubygem-bigdecimal-3.1.3-157.oe2403sp1.x86_64.rpm</FullProductName>
			<FullProductName ProductID="rubygem-io-console-0.6.0-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">rubygem-io-console-0.6.0-157.oe2403sp1.x86_64.rpm</FullProductName>
			<FullProductName ProductID="rubygem-json-2.6.3-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">rubygem-json-2.6.3-157.oe2403sp1.x86_64.rpm</FullProductName>
			<FullProductName ProductID="rubygem-openssl-3.1.0-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">rubygem-openssl-3.1.0-157.oe2403sp1.x86_64.rpm</FullProductName>
			<FullProductName ProductID="rubygem-psych-5.0.1-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">rubygem-psych-5.0.1-157.oe2403sp1.x86_64.rpm</FullProductName>
			<FullProductName ProductID="rubygem-rbs-2.8.2-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">rubygem-rbs-2.8.2-157.oe2403sp1.x86_64.rpm</FullProductName>
		</Branch>
		<Branch Type="Package Arch" Name="noarch">
			<FullProductName ProductID="ruby-help-3.2.2-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">ruby-help-3.2.2-157.oe2403sp1.noarch.rpm</FullProductName>
			<FullProductName ProductID="ruby-irb-3.2.2-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">ruby-irb-3.2.2-157.oe2403sp1.noarch.rpm</FullProductName>
			<FullProductName ProductID="rubygem-did_you_mean-1.6.3-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">rubygem-did_you_mean-1.6.3-157.oe2403sp1.noarch.rpm</FullProductName>
			<FullProductName ProductID="rubygem-minitest-5.16.3-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">rubygem-minitest-5.16.3-157.oe2403sp1.noarch.rpm</FullProductName>
			<FullProductName ProductID="rubygem-rake-13.0.6-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">rubygem-rake-13.0.6-157.oe2403sp1.noarch.rpm</FullProductName>
			<FullProductName ProductID="rubygem-rdoc-6.5.0-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">rubygem-rdoc-6.5.0-157.oe2403sp1.noarch.rpm</FullProductName>
			<FullProductName ProductID="rubygem-rexml-3.2.5-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">rubygem-rexml-3.2.5-157.oe2403sp1.noarch.rpm</FullProductName>
			<FullProductName ProductID="rubygem-rss-0.2.9-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">rubygem-rss-0.2.9-157.oe2403sp1.noarch.rpm</FullProductName>
			<FullProductName ProductID="rubygem-test-unit-3.5.7-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">rubygem-test-unit-3.5.7-157.oe2403sp1.noarch.rpm</FullProductName>
			<FullProductName ProductID="rubygem-typeprof-0.21.3-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">rubygem-typeprof-0.21.3-157.oe2403sp1.noarch.rpm</FullProductName>
			<FullProductName ProductID="rubygems-3.4.10-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">rubygems-3.4.10-157.oe2403sp1.noarch.rpm</FullProductName>
			<FullProductName ProductID="rubygems-devel-3.4.10-157" CPE="cpe:/a:openEuler:openEuler:24.03-LTS-SP1">rubygems-devel-3.4.10-157.oe2403sp1.noarch.rpm</FullProductName>
		</Branch>
	</ProductTree>
	<Vulnerability Ordinal="1" xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1">
		<Notes>
			<Note Title="Vulnerability Description" Type="General" Ordinal="1" xml:lang="en">The attack vector is a potential Denial of Service (DoS). The vulnerability is caused by an insufficient check on the length of a decompressed domain name within a DNS packet.

An attacker can craft a malicious DNS packet containing a highly compressed domain name. When the resolv library parses such a packet, the name decompression process consumes a large amount of CPU resources, as the library does not limit the resulting length of the name.

This resource consumption can cause the application thread to become unresponsive, resulting in a Denial of Service condition.</Note>
		</Notes>
		<ReleaseDate>2026-08-30</ReleaseDate>
		<CVE>CVE-2025-24294</CVE>
		<ProductStatuses>
			<Status Type="Fixed">
				<ProductID>openEuler-24.03-LTS-SP1</ProductID>
			</Status>
		</ProductStatuses>
		<Threats>
			<Threat Type="Impact">
				<Description>High</Description>
			</Threat>
		</Threats>
		<CVSSScoreSets>
			<ScoreSet>
				<BaseScore>7.5</BaseScore>
				<Vector>AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H</Vector>
			</ScoreSet>
		</CVSSScoreSets>
		<Remediations>
			<Remediation Type="Vendor Fix">
				<Description>ruby security update</Description>
				<DATE>2026-08-30</DATE>
				<URL>https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2026-3534</URL>
			</Remediation>
		</Remediations>
	</Vulnerability>
	<Vulnerability Ordinal="2" xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1">
		<Notes>
			<Note Title="Vulnerability Description" Type="General" Ordinal="1" xml:lang="en">zlib is a Ruby interface for the zlib compression/decompression library. Versions 3.0.0 and below, 3.1.0, 3.1.1, 3.2.0 and 3.2.1 contain a buffer overflow vulnerability in the Zlib::GzipReader. The zstream_buffer_ungets function prepends caller-provided bytes ahead of previously produced output but fails to guarantee the backing Ruby string has enough capacity before the memmove shifts the existing data. This can lead to memory corruption when the buffer length exceeds capacity. This issue has been fixed in versions 3.0.1, 3.1.2 and 3.2.3.</Note>
		</Notes>
		<ReleaseDate>2026-08-30</ReleaseDate>
		<CVE>CVE-2026-27820</CVE>
		<ProductStatuses>
			<Status Type="Fixed">
				<ProductID>openEuler-24.03-LTS-SP1</ProductID>
			</Status>
		</ProductStatuses>
		<Threats>
			<Threat Type="Impact">
				<Description>Critical</Description>
			</Threat>
		</Threats>
		<CVSSScoreSets>
			<ScoreSet>
				<BaseScore>9.8</BaseScore>
				<Vector>AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H</Vector>
			</ScoreSet>
		</CVSSScoreSets>
		<Remediations>
			<Remediation Type="Vendor Fix">
				<Description>ruby security update</Description>
				<DATE>2026-08-30</DATE>
				<URL>https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2026-3534</URL>
			</Remediation>
		</Remediations>
	</Vulnerability>
</cvrfdoc>