CVE-2024-27281
Medium · 4.5CVSS
4.5
EPSS
1.6%
Published
May 14, 2024
CISA due date
—
Cloudanix analysis
A flaw in a Ruby documentation tool can let a malicious project run commands when its documentation is generated.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- High
- Impact
- Remote Code Execution
- Component
- Library
- Class
- Deserialization
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
RDoc versions 6.3.3 through 6.6.2, as shipped with Ruby 3.x through 3.3.0, unsafely deserialize YAML when reading .rdoc_options and, in some scenarios, when loading crafted RDoc documentation cache data. Because deserialization is not restricted to safe primitive types, a malicious YAML payload can instantiate arbitrary Ruby classes and trigger gadget chains that execute code in the context of the user or process running RDoc. The practical impact is local or workflow-mediated code execution during documentation generation or cache loading, with potential confidentiality, integrity, and availability impact limited to the privileges of the RDoc execution context.
Why it matters to the business
The main operational risk is compromise of developer workstations, CI/CD runners, build systems, or application maintenance jobs that generate Ruby documentation from untrusted or attacker-influenced source trees. Although the CVSS score is moderate, EPSS is low, the issue is not in CISA KEV, and no mature public exploitation is indicated, the vulnerability has been public for a long period and affects a common Ruby documentation component that may be transitively present in larger products such as GitLab. Successful exploitation could allow theft of source code or credentials available to build jobs, tampering with generated artifacts, lateral movement from CI infrastructure, or disruption of build and release processes.
How an attack unfolds
An attacker first needs a path to place or influence RDoc input that will later be processed by a victim or automated system. Common routes include submitting a malicious repository, dependency, package, merge request, source archive, or documentation bundle containing a crafted .rdoc_options file, or causing a crafted RDoc cache to be loaded. When RDoc runs, it parses the YAML content using unsafe object restoration. The payload abuses Ruby object deserialization behavior and available gadget classes to execute attacker-controlled code. The resulting commands run with the privileges and environment of the RDoc process, which may include developer credentials, CI job tokens, repository access, signing material, or network reachability. Exploitation is constrained by the need for RDoc execution against attacker-controlled content and suitable Ruby gadget availability, which is consistent with the local, high-complexity, user-interaction characteristics and the absence of known widespread exploitation.
How to fix it
Upgrade RDoc to a fixed version and ensure bundled Ruby installations and product dependencies no longer include vulnerable RDoc releases. The primary fixed RDoc version is 6.6.3.1. For Ruby 3.0 environments, use rdoc 6.3.4.1 or later; for Ruby 3.1, use rdoc 6.4.1.1 or later; for Ruby 3.2, use rdoc 6.5.1.1 or later; for Ruby 3.3-era installations, use rdoc 6.6.3.1 or later. For gitlab-org/gitlab source usage, update to a revision containing fix commit 9ec5f337f9fecb932051eca4d24744475f25870e or a vendor release that includes that commit. If immediate upgrade is not possible, avoid running RDoc on untrusted repositories or archives, disable automatic documentation generation for untrusted contributions, remove or ignore untrusted .rdoc_options files before execution, isolate documentation generation in sandboxed containers with no secrets and minimal network access, and clear/rebuild documentation caches from trusted input only.
How to confirm the fix worked
Confirm exposure by inventorying Ruby and RDoc versions across developer images, CI runners, build containers, application containers, release workers, and packaged products. Use commands such as `ruby -v`, `rdoc --version`, `gem list rdoc`, `bundle info rdoc`, and lockfile review to verify that RDoc is at or above the applicable fixed version. For GitLab source deployments or forks, verify the deployed code includes commit 9ec5f337f9fecb932051eca4d24744475f25870e or an equivalent upstream release. Validate mitigation by running documentation generation in a test environment against a benign .rdoc_options file and confirming that unsafe Ruby object deserialization is rejected or no longer results in object restoration. Also scan source trees, build workspaces, caches, and artifacts for unexpected .rdoc_options files or RDoc cache content containing Ruby object YAML tags.
Typical attack path
- Identify an organization or workflow that runs RDoc against externally supplied, forked, vendored, or otherwise untrusted Ruby source content.
- Prepare a malicious .rdoc_options YAML file or crafted RDoc cache that uses Ruby object tags intended to trigger unsafe deserialization behavior.
- Deliver the payload through a repository, package, archive, merge request, dependency update, or other source/documentation ingestion path.
- Wait for a developer workstation, documentation generation task, CI runner, release process, or maintenance job to invoke RDoc on the malicious content.
- RDoc deserializes the crafted YAML and restores attacker-controlled Ruby objects without class restrictions.
- The deserialization gadget chain executes code as the account running RDoc.
- The attacker uses that execution context to access files, environment variables, source repositories, CI tokens, network services, or to alter build/documentation outputs.
How to detect it
Investigate whether RDoc processed attacker-controlled content before patching. Useful sources include CI job logs, build runner logs, shell command history, process execution telemetry, EDR events, container runtime logs, repository audit logs, merge request or package ingestion logs, file integrity monitoring, and network egress logs from build systems. Hunt for RDoc invocations in directories containing newly added or modified .rdoc_options files, especially files with YAML Ruby object tags such as `!ruby/object`, `!ruby/hash`, or `!ruby/struct`. Review documentation cache directories and generated artifacts for unexpected YAML object serialization, recently modified cache files, or content not attributable to normal builds. Correlate RDoc execution with suspicious child processes such as shells, interpreters, download utilities, credential access commands, or outbound connections from CI/build hosts. Because no specific public exploit pattern is established for this CVE, detection should focus on unsafe deserialization artifacts and anomalous post-RDoc behavior rather than a single fixed signature.
- .rdoc_options
- !ruby/object
- !ruby/hash
- !ruby/struct
- rdoc --op
- rdoc --main
- rake rdoc
- /usr/bin/rdoc
- /usr/local/bin/rdoc
- /usr/bin/ruby
- rdoc 6.3.3
- rdoc 6.4.0
- rdoc 6.4.1
- rdoc 6.5.0
- rdoc 6.5.1
- rdoc 6.6.0
- rdoc 6.6.1
- rdoc 6.6.2
- .rdoc_cache
- doc/.rdoc
- Gem::Installer
- Gem::SpecFetcher
- Gem::Requirement
- Kernel.system
- Open3.popen3
What your security team should do
- Prioritize upgrading RDoc in Ruby developer, CI, build, and release environments to the appropriate fixed version, even though current exploitation likelihood is low, because the issue is long public and affects supply-chain-adjacent workflows.
- Find all automated jobs that run `rdoc`, `yard` integrations invoking RDoc, `rake rdoc`, or documentation generation against untrusted or contributor-controlled source and restrict them until patched.
- Treat documentation generation as untrusted code execution: run it in ephemeral, least-privileged containers without production secrets, cloud credentials, signing keys, or broad network access.
- Add repository and CI guardrails to flag unexpected .rdoc_options files and YAML documents containing Ruby object tags in externally submitted code.
- Review recent build and documentation jobs for anomalous commands, outbound network connections, secret access, or source artifact changes around RDoc execution.
- Regenerate RDoc caches and documentation artifacts from trusted, patched tooling after upgrade.
- For GitLab source consumers or forks, update to a version or commit that includes 9ec5f337f9fecb932051eca4d24744475f25870e and verify downstream images/packages were rebuilt.
The record
An issue was discovered in RDoc 6.3.3 through 6.6.2, as distributed in Ruby 3.x through 3.3.0. When parsing .rdoc_options (used for configuration in RDoc) as a YAML file, object injection and resultant remote code execution are possible because there are no restrictions on the classes that can be restored. (When loading the documentation cache, object injection and resultant remote code execution are also possible if there were a crafted cache.) The main fixed version is 6.6.3.1. For Ruby 3.0 users, a fixed version is rdoc 6.3.4.1. For Ruby 3.1 users, a fixed version is rdoc 6.4.1.1. For Ruby 3.2 users, a fixed version is rdoc 6.5.1.1.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| RubyGems | rdoc | 6.3.3 | 6.3.4.1 |
| RubyGems | rdoc | 6.4.0 | 6.4.1.1 |
| RubyGems | rdoc | 6.5.0 | 6.5.1.1 |
| RubyGems | rdoc | 6.6.0 | 6.6.3.1 |
| AlmaLinux:8 | ruby | 0 | 3.0.7-143.module_el8.10.0+3852+ce828b19 |
| AlmaLinux:8 | ruby | 0 | 3.1.5-143.module_el8.10.0+3854+02eaa59a |
| AlmaLinux:8 | ruby | 0 | 3.3.1-2.module_el8.10.0+3855+767cb125 |
| AlmaLinux:8 | ruby | 0 | 2.5.9-112.module_el8.10.0+3871+342e2c2f |
| AlmaLinux:8 | ruby-bundled-gems | 0 | 3.1.5-143.module_el8.10.0+3854+02eaa59a |
| AlmaLinux:8 | ruby-bundled-gems | 0 | 3.3.1-2.module_el8.10.0+3855+767cb125 |
| AlmaLinux:8 | ruby-default-gems | 0 | 3.0.7-143.module_el8.10.0+3852+ce828b19 |
| AlmaLinux:8 | ruby-default-gems | 0 | 3.1.5-143.module_el8.10.0+3854+02eaa59a |
| AlmaLinux:8 | ruby-default-gems | 0 | 3.3.1-2.module_el8.10.0+3855+767cb125 |
| AlmaLinux:8 | ruby-devel | 0 | 3.0.7-143.module_el8.10.0+3852+ce828b19 |
| AlmaLinux:8 | ruby-devel | 0 | 3.1.5-143.module_el8.10.0+3854+02eaa59a |
| AlmaLinux:8 | ruby-devel | 0 | 3.3.1-2.module_el8.10.0+3855+767cb125 |
| AlmaLinux:8 | ruby-devel | 0 | 2.5.9-112.module_el8.10.0+3871+342e2c2f |
| AlmaLinux:8 | ruby-doc | 0 | 3.0.7-143.module_el8.10.0+3852+ce828b19 |
| AlmaLinux:8 | ruby-doc | 0 | 3.1.5-143.module_el8.10.0+3854+02eaa59a |
| AlmaLinux:8 | ruby-doc | 0 | 3.3.1-2.module_el8.10.0+3855+767cb125 |
| AlmaLinux:8 | ruby-doc | 0 | 2.5.9-112.module_el8.10.0+3871+342e2c2f |
| AlmaLinux:8 | ruby-irb | 0 | 2.5.9-112.module_el8.10.0+3871+342e2c2f |
| AlmaLinux:8 | ruby-libs | 0 | 3.0.7-143.module_el8.10.0+3852+ce828b19 |
| AlmaLinux:8 | ruby-libs | 0 | 3.1.5-143.module_el8.10.0+3854+02eaa59a |
| AlmaLinux:8 | ruby-libs | 0 | 3.3.1-2.module_el8.10.0+3855+767cb125 |
| AlmaLinux:8 | ruby-libs | 0 | 2.5.9-112.module_el8.10.0+3871+342e2c2f |
| AlmaLinux:8 | rubygem-abrt | 0 | 0.4.0-1.module_el8.10.0+3852+ce828b19 |
| AlmaLinux:8 | rubygem-abrt | 0 | 0.4.0-1.module_el8.9.0+3746+91b8233a |
| AlmaLinux:8 | rubygem-abrt | 0 | 0.4.0-1.module_el8.10.0+3799+191214cc |
| AlmaLinux:8 | rubygem-abrt | 0 | 0.3.0-4.module_el8.10.0+3871+342e2c2f |
| AlmaLinux:8 | rubygem-abrt-doc | 0 | 0.4.0-1.module_el8.10.0+3852+ce828b19 |
| AlmaLinux:8 | rubygem-abrt-doc | 0 | 0.4.0-1.module_el8.9.0+3746+91b8233a |
| AlmaLinux:8 | rubygem-abrt-doc | 0 | 0.4.0-1.module_el8.10.0+3799+191214cc |
| AlmaLinux:8 | rubygem-abrt-doc | 0 | 0.3.0-4.module_el8.10.0+3871+342e2c2f |
| AlmaLinux:8 | rubygem-bigdecimal | 0 | 3.0.0-143.module_el8.10.0+3852+ce828b19 |
| AlmaLinux:8 | rubygem-bigdecimal | 0 | 3.1.1-143.module_el8.10.0+3854+02eaa59a |
| AlmaLinux:8 | rubygem-bigdecimal | 0 | 3.1.5-2.module_el8.10.0+3855+767cb125 |
| AlmaLinux:8 | rubygem-bigdecimal | 0 | 1.3.4-112.module_el8.10.0+3871+342e2c2f |
| AlmaLinux:8 | rubygem-bson | 0 | 4.3.0-2.module_el8.5.0+259+8cec6917 |
| AlmaLinux:8 | rubygem-bson | 0 | 4.3.0-2.module_el8.5.0+2625+ec418553 |
| AlmaLinux:8 | rubygem-bson | 0 | 4.3.0-2.module_el8.6.0+3170+4b08f9d4 |
| AlmaLinux:8 | rubygem-bson-doc | 0 | 4.3.0-2.module_el8.5.0+2625+ec418553 |
| AlmaLinux:8 | rubygem-bundler | 0 | 2.2.33-143.module_el8.10.0+3852+ce828b19 |
| AlmaLinux:8 | rubygem-bundler | 0 | 2.3.27-143.module_el8.10.0+3854+02eaa59a |
| AlmaLinux:8 | rubygem-bundler | 0 | 2.5.9-2.module_el8.10.0+3855+767cb125 |
| AlmaLinux:8 | rubygem-bundler | 0 | 1.16.1-4.module_el8.10.0+3871+342e2c2f |
| AlmaLinux:8 | rubygem-bundler-doc | 0 | 1.16.1-4.module_el8.10.0+3871+342e2c2f |
| AlmaLinux:8 | rubygem-did_you_mean | 0 | 1.2.0-112.module_el8.10.0+3871+342e2c2f |
| AlmaLinux:8 | rubygem-io-console | 0 | 0.5.7-143.module_el8.10.0+3852+ce828b19 |
| AlmaLinux:8 | rubygem-io-console | 0 | 0.5.11-143.module_el8.10.0+3854+02eaa59a |
| AlmaLinux:8 | rubygem-io-console | 0 | 0.7.1-2.module_el8.10.0+3855+767cb125 |
| AlmaLinux:8 | rubygem-io-console | 0 | 0.4.6-112.module_el8.10.0+3871+342e2c2f |
| AlmaLinux:8 | rubygem-irb | 0 | 1.3.5-143.module_el8.10.0+3852+ce828b19 |
| AlmaLinux:8 | rubygem-irb | 0 | 1.4.1-143.module_el8.10.0+3854+02eaa59a |
| AlmaLinux:8 | rubygem-irb | 0 | 1.11.0-2.module_el8.10.0+3855+767cb125 |
| AlmaLinux:8 | rubygem-json | 0 | 2.5.1-143.module_el8.10.0+3852+ce828b19 |
| AlmaLinux:8 | rubygem-json | 0 | 2.6.1-143.module_el8.10.0+3854+02eaa59a |
| AlmaLinux:8 | rubygem-json | 0 | 2.7.1-2.module_el8.10.0+3855+767cb125 |
| AlmaLinux:8 | rubygem-json | 0 | 2.1.0-112.module_el8.10.0+3871+342e2c2f |
| AlmaLinux:8 | rubygem-minitest | 0 | 5.14.2-143.module_el8.10.0+3852+ce828b19 |
| AlmaLinux:8 | rubygem-minitest | 0 | 5.15.0-143.module_el8.10.0+3854+02eaa59a |
| AlmaLinux:8 | rubygem-minitest | 0 | 5.20.0-2.module_el8.10.0+3855+767cb125 |
| AlmaLinux:8 | rubygem-minitest | 0 | 5.10.3-112.module_el8.10.0+3871+342e2c2f |
| AlmaLinux:8 | rubygem-mongo | 0 | 2.5.1-2.module_el8.5.0+2625+ec418553 |
| AlmaLinux:8 | rubygem-mongo-doc | 0 | 2.5.1-2.module_el8.5.0+2625+ec418553 |
| AlmaLinux:8 | rubygem-mysql2 | 0 | 0.5.3-2.module_el8.10.0+3852+ce828b19 |
| AlmaLinux:8 | rubygem-mysql2 | 0 | 0.5.3-3.module_el8.9.0+3746+91b8233a |
| AlmaLinux:8 | rubygem-mysql2 | 0 | 0.5.5-1.module_el8.10.0+3799+191214cc |
| AlmaLinux:8 | rubygem-mysql2 | 0 | 0.4.10-4.module_el8.5.0+259+8cec6917 |
| AlmaLinux:8 | rubygem-mysql2 | 0 | 0.4.10-4.module_el8.5.0+2625+ec418553 |
| AlmaLinux:8 | rubygem-mysql2 | 0 | 0.4.10-4.module_el8.6.0+3170+4b08f9d4 |
| AlmaLinux:8 | rubygem-mysql2-doc | 0 | 0.5.3-2.module_el8.10.0+3852+ce828b19 |
| AlmaLinux:8 | rubygem-mysql2-doc | 0 | 0.5.3-3.module_el8.9.0+3746+91b8233a |
| AlmaLinux:8 | rubygem-mysql2-doc | 0 | 0.5.5-1.module_el8.10.0+3799+191214cc |
| AlmaLinux:8 | rubygem-mysql2-doc | 0 | 0.4.10-4.module_el8.5.0+2625+ec418553 |
| AlmaLinux:8 | rubygem-net-telnet | 0 | 0.1.1-112.module_el8.10.0+3871+342e2c2f |
| AlmaLinux:8 | rubygem-openssl | 0 | 2.1.2-112.module_el8.10.0+3871+342e2c2f |
| AlmaLinux:8 | rubygem-pg | 0 | 1.2.3-1.module_el8.5.0+118+1ab773e1 |
| AlmaLinux:8 | rubygem-pg | 0 | 1.2.3-1.module_el8.5.0+2595+0c654ebc |
| AlmaLinux:8 | rubygem-pg | 0 | 1.2.3-1.module_el8.6.0+3144+d138acf1 |
| AlmaLinux:8 | rubygem-pg | 0 | 1.3.2-1.module_el8.9.0+3746+91b8233a |
| AlmaLinux:8 | rubygem-pg | 0 | 1.5.4-1.module_el8.10.0+3799+191214cc |
| AlmaLinux:8 | rubygem-pg | 0 | 1.0.0-3.module_el8.9.0+3635+c6f99506 |
| AlmaLinux:8 | rubygem-pg-doc | 0 | 1.2.3-1.module_el8.10.0+3852+ce828b19 |
| AlmaLinux:8 | rubygem-pg-doc | 0 | 1.2.3-1.module_el8.5.0+2595+0c654ebc |
| AlmaLinux:8 | rubygem-pg-doc | 0 | 1.3.2-1.module_el8.9.0+3746+91b8233a |
| AlmaLinux:8 | rubygem-pg-doc | 0 | 1.5.4-1.module_el8.10.0+3799+191214cc |
| AlmaLinux:8 | rubygem-pg-doc | 0 | 1.0.0-3.module_el8.9.0+3635+c6f99506 |
| AlmaLinux:8 | rubygem-power_assert | 0 | 1.2.1-143.module_el8.10.0+3852+ce828b19 |
| AlmaLinux:8 | rubygem-power_assert | 0 | 2.0.1-143.module_el8.10.0+3854+02eaa59a |
| AlmaLinux:8 | rubygem-power_assert | 0 | 2.0.3-2.module_el8.10.0+3855+767cb125 |
| AlmaLinux:8 | rubygem-power_assert | 0 | 1.1.1-112.module_el8.10.0+3871+342e2c2f |
| AlmaLinux:8 | rubygem-psych | 0 | 3.3.2-143.module_el8.10.0+3852+ce828b19 |
| AlmaLinux:8 | rubygem-psych | 0 | 4.0.4-143.module_el8.10.0+3854+02eaa59a |
| AlmaLinux:8 | rubygem-psych | 0 | 5.1.2-2.module_el8.10.0+3855+767cb125 |
| AlmaLinux:8 | rubygem-psych | 0 | 3.0.2-112.module_el8.10.0+3871+342e2c2f |
| AlmaLinux:8 | rubygem-racc | 0 | 1.7.3-2.module_el8.10.0+3855+767cb125 |
| AlmaLinux:8 | rubygem-rake | 0 | 13.0.3-143.module_el8.10.0+3852+ce828b19 |
| AlmaLinux:8 | rubygem-rake | 0 | 13.0.6-143.module_el8.10.0+3854+02eaa59a |
| AlmaLinux:8 | rubygem-rake | 0 | 13.1.0-2.module_el8.10.0+3855+767cb125 |
| AlmaLinux:8 | rubygem-rake | 0 | 12.3.3-112.module_el8.10.0+3871+342e2c2f |
| AlmaLinux:8 | rubygem-rbs | 0 | 1.4.0-143.module_el8.10.0+3852+ce828b19 |
| AlmaLinux:8 | rubygem-rbs | 0 | 2.7.0-143.module_el8.10.0+3854+02eaa59a |
| AlmaLinux:8 | rubygem-rbs | 0 | 3.4.0-2.module_el8.10.0+3855+767cb125 |
| AlmaLinux:8 | rubygem-rdoc | 0 | 6.3.4.1-143.module_el8.10.0+3852+ce828b19 |
| AlmaLinux:8 | rubygem-rdoc | 0 | 6.4.1.1-143.module_el8.10.0+3854+02eaa59a |
| AlmaLinux:8 | rubygem-rdoc | 0 | 6.6.3.1-2.module_el8.10.0+3855+767cb125 |
| AlmaLinux:8 | rubygem-rdoc | 0 | 6.0.1.1-112.module_el8.10.0+3871+342e2c2f |
| AlmaLinux:8 | rubygem-rexml | 0 | 3.2.5-143.module_el8.10.0+3852+ce828b19 |
| AlmaLinux:8 | rubygem-rexml | 0 | 3.2.5-143.module_el8.10.0+3854+02eaa59a |
| AlmaLinux:8 | rubygem-rexml | 0 | 3.2.6-2.module_el8.10.0+3855+767cb125 |
| AlmaLinux:8 | rubygem-rss | 0 | 0.2.9-143.module_el8.10.0+3852+ce828b19 |
| AlmaLinux:8 | rubygem-rss | 0 | 0.2.9-143.module_el8.10.0+3854+02eaa59a |
| AlmaLinux:8 | rubygem-rss | 0 | 0.3.0-2.module_el8.10.0+3855+767cb125 |
| AlmaLinux:8 | rubygem-test-unit | 0 | 3.3.7-143.module_el8.10.0+3852+ce828b19 |
| AlmaLinux:8 | rubygem-test-unit | 0 | 3.5.3-143.module_el8.10.0+3854+02eaa59a |
| AlmaLinux:8 | rubygem-test-unit | 0 | 3.6.1-2.module_el8.10.0+3855+767cb125 |
| AlmaLinux:8 | rubygem-test-unit | 0 | 3.2.7-112.module_el8.10.0+3871+342e2c2f |
| AlmaLinux:8 | rubygem-typeprof | 0 | 0.15.2-143.module_el8.10.0+3852+ce828b19 |
| AlmaLinux:8 | rubygem-typeprof | 0 | 0.21.3-143.module_el8.10.0+3854+02eaa59a |
| AlmaLinux:8 | rubygem-typeprof | 0 | 0.21.9-2.module_el8.10.0+3855+767cb125 |
| AlmaLinux:8 | rubygem-xmlrpc | 0 | 0.3.0-112.module_el8.10.0+3871+342e2c2f |
| AlmaLinux:8 | rubygems | 0 | 3.2.33-143.module_el8.10.0+3852+ce828b19 |
| AlmaLinux:8 | rubygems | 0 | 3.3.27-143.module_el8.10.0+3854+02eaa59a |
| AlmaLinux:8 | rubygems | 0 | 3.5.9-2.module_el8.10.0+3855+767cb125 |
| AlmaLinux:8 | rubygems | 0 | 2.7.6.3-112.module_el8.10.0+3871+342e2c2f |
| AlmaLinux:8 | rubygems-devel | 0 | 3.2.33-143.module_el8.10.0+3852+ce828b19 |
| AlmaLinux:8 | rubygems-devel | 0 | 3.3.27-143.module_el8.10.0+3854+02eaa59a |
| AlmaLinux:8 | rubygems-devel | 0 | 3.5.9-2.module_el8.10.0+3855+767cb125 |
| AlmaLinux:8 | rubygems-devel | 0 | 2.7.6.3-112.module_el8.10.0+3871+342e2c2f |
| AlmaLinux:9 | ruby | 0 | 3.1.5-144.module_el9.4.0+101+d58a8d95 |
| AlmaLinux:9 | ruby | 0 | 3.3.1-2.module_el9.4.0+102+68a93853 |
| AlmaLinux:9 | ruby | 0 | 3.0.7-162.el9_4 |
| AlmaLinux:9 | ruby-bundled-gems | 0 | 3.1.5-144.module_el9.4.0+101+d58a8d95 |
| AlmaLinux:9 | ruby-bundled-gems | 0 | 3.3.1-2.module_el9.4.0+102+68a93853 |
| AlmaLinux:9 | ruby-default-gems | 0 | 3.1.5-144.module_el9.4.0+101+d58a8d95 |
| AlmaLinux:9 | ruby-default-gems | 0 | 3.3.1-2.module_el9.4.0+102+68a93853 |
| AlmaLinux:9 | ruby-default-gems | 0 | 3.0.7-162.el9_4 |
| AlmaLinux:9 | ruby-devel | 0 | 3.1.5-144.module_el9.4.0+101+d58a8d95 |
| AlmaLinux:9 | ruby-devel | 0 | 3.3.1-2.module_el9.4.0+102+68a93853 |
| AlmaLinux:9 | ruby-devel | 0 | 3.0.7-162.el9_4 |
| AlmaLinux:9 | ruby-doc | 0 | 3.1.5-144.module_el9.4.0+101+d58a8d95 |
| AlmaLinux:9 | ruby-doc | 0 | 3.3.1-2.module_el9.4.0+102+68a93853 |
| AlmaLinux:9 | ruby-doc | 0 | 3.0.7-162.el9_4 |
| AlmaLinux:9 | ruby-libs | 0 | 3.1.5-144.module_el9.4.0+101+d58a8d95 |
| AlmaLinux:9 | ruby-libs | 0 | 3.3.1-2.module_el9.4.0+102+68a93853 |
| AlmaLinux:9 | ruby-libs | 0 | 3.0.7-162.el9_4 |
| AlmaLinux:9 | rubygem-bigdecimal | 0 | 3.1.1-144.module_el9.4.0+101+d58a8d95 |
| AlmaLinux:9 | rubygem-bigdecimal | 0 | 3.1.5-2.module_el9.4.0+102+68a93853 |
| AlmaLinux:9 | rubygem-bigdecimal | 0 | 3.0.0-162.el9_4 |
| AlmaLinux:9 | rubygem-bundler | 0 | 2.3.27-144.module_el9.4.0+101+d58a8d95 |
| AlmaLinux:9 | rubygem-bundler | 0 | 2.5.9-2.module_el9.4.0+102+68a93853 |
| AlmaLinux:9 | rubygem-bundler | 0 | 2.2.33-162.el9_4 |
| AlmaLinux:9 | rubygem-io-console | 0 | 0.5.11-144.module_el9.4.0+101+d58a8d95 |
| AlmaLinux:9 | rubygem-io-console | 0 | 0.7.1-2.module_el9.4.0+102+68a93853 |
| AlmaLinux:9 | rubygem-io-console | 0 | 0.5.7-162.el9_4 |
| AlmaLinux:9 | rubygem-irb | 0 | 1.4.1-144.module_el9.4.0+101+d58a8d95 |
| AlmaLinux:9 | rubygem-irb | 0 | 1.11.0-2.module_el9.4.0+102+68a93853 |
| AlmaLinux:9 | rubygem-irb | 0 | 1.3.5-162.el9_4 |
| AlmaLinux:9 | rubygem-json | 0 | 2.6.1-144.module_el9.4.0+101+d58a8d95 |
| AlmaLinux:9 | rubygem-json | 0 | 2.7.1-2.module_el9.4.0+102+68a93853 |
| AlmaLinux:9 | rubygem-json | 0 | 2.5.1-162.el9_4 |
| AlmaLinux:9 | rubygem-minitest | 0 | 5.15.0-144.module_el9.4.0+101+d58a8d95 |
| AlmaLinux:9 | rubygem-minitest | 0 | 5.20.0-2.module_el9.4.0+102+68a93853 |
| AlmaLinux:9 | rubygem-minitest | 0 | 5.14.2-162.el9_4 |
| AlmaLinux:9 | rubygem-mysql2 | 0 | 0.5.4-1.module_el9.1.0+8+503f6fbd |
| AlmaLinux:9 | rubygem-mysql2 | 0 | 0.5.5-1.module_el9.4.0+75+1a8fe981 |
| AlmaLinux:9 | rubygem-mysql2-doc | 0 | 0.5.4-1.module_el9.1.0+8+503f6fbd |
| AlmaLinux:9 | rubygem-mysql2-doc | 0 | 0.5.5-1.module_el9.4.0+75+1a8fe981 |
| AlmaLinux:9 | rubygem-pg | 0 | 1.3.5-1.module_el9.1.0+8+503f6fbd |
| AlmaLinux:9 | rubygem-pg | 0 | 1.5.4-1.module_el9.4.0+75+1a8fe981 |
| AlmaLinux:9 | rubygem-pg-doc | 0 | 1.3.5-1.module_el9.1.0+8+503f6fbd |
| AlmaLinux:9 | rubygem-pg-doc | 0 | 1.5.4-1.module_el9.4.0+75+1a8fe981 |
| AlmaLinux:9 | rubygem-power_assert | 0 | 2.0.1-144.module_el9.4.0+101+d58a8d95 |
| AlmaLinux:9 | rubygem-power_assert | 0 | 2.0.3-2.module_el9.4.0+102+68a93853 |
| AlmaLinux:9 | rubygem-power_assert | 0 | 1.2.1-162.el9_4 |
| AlmaLinux:9 | rubygem-psych | 0 | 4.0.4-144.module_el9.4.0+101+d58a8d95 |
| AlmaLinux:9 | rubygem-psych | 0 | 5.1.2-2.module_el9.4.0+102+68a93853 |
| AlmaLinux:9 | rubygem-psych | 0 | 3.3.2-162.el9_4 |
| AlmaLinux:9 | rubygem-racc | 0 | 1.7.3-2.module_el9.4.0+102+68a93853 |
| AlmaLinux:9 | rubygem-rake | 0 | 13.0.6-144.module_el9.4.0+101+d58a8d95 |
| AlmaLinux:9 | rubygem-rake | 0 | 13.1.0-2.module_el9.4.0+102+68a93853 |
| AlmaLinux:9 | rubygem-rake | 0 | 13.0.3-162.el9_4 |
| AlmaLinux:9 | rubygem-rbs | 0 | 2.7.0-144.module_el9.4.0+101+d58a8d95 |
| AlmaLinux:9 | rubygem-rbs | 0 | 3.4.0-2.module_el9.4.0+102+68a93853 |
| AlmaLinux:9 | rubygem-rbs | 0 | 1.4.0-162.el9_4 |
| AlmaLinux:9 | rubygem-rdoc | 0 | 6.4.1.1-144.module_el9.4.0+101+d58a8d95 |
| AlmaLinux:9 | rubygem-rdoc | 0 | 6.6.3.1-2.module_el9.4.0+102+68a93853 |
| AlmaLinux:9 | rubygem-rdoc | 0 | 6.3.4.1-162.el9_4 |
| AlmaLinux:9 | rubygem-rexml | 0 | 3.2.5-144.module_el9.4.0+101+d58a8d95 |
| AlmaLinux:9 | rubygem-rexml | 0 | 3.2.6-2.module_el9.4.0+102+68a93853 |
| AlmaLinux:9 | rubygem-rexml | 0 | 3.2.5-162.el9_4 |
| AlmaLinux:9 | rubygem-rss | 0 | 0.2.9-144.module_el9.4.0+101+d58a8d95 |
| AlmaLinux:9 | rubygem-rss | 0 | 0.3.0-2.module_el9.4.0+102+68a93853 |
| AlmaLinux:9 | rubygem-rss | 0 | 0.2.9-162.el9_4 |
| AlmaLinux:9 | rubygem-test-unit | 0 | 3.5.3-144.module_el9.4.0+101+d58a8d95 |
| AlmaLinux:9 | rubygem-test-unit | 0 | 3.6.1-2.module_el9.4.0+102+68a93853 |
| AlmaLinux:9 | rubygem-test-unit | 0 | 3.3.7-162.el9_4 |
| AlmaLinux:9 | rubygem-typeprof | 0 | 0.21.3-144.module_el9.4.0+101+d58a8d95 |
| AlmaLinux:9 | rubygem-typeprof | 0 | 0.21.9-2.module_el9.4.0+102+68a93853 |
Related vulnerabilities
- CVE-2025-58767 REXML is an XML toolkit for Ruby. Also affects ruby
- CVE-2025-27221 In the URI gem before 1.0.3 for Ruby, the URI handling methods (URI.join, URI#merge… Also affects ruby
- CVE-2025-25186 Net::IMAP implements Internet Message Access Protocol (IMAP) client functionality in Ruby. Also affects ruby
- CVE-2024-49761 REXML is an XML toolkit for Ruby. Also affects ruby
- CVE-2024-41946 REXML is an XML toolkit for Ruby. Also affects ruby
- CVE-2024-41123 REXML is an XML toolkit for Ruby. Also affects ruby
- CVE-2024-39908 REXML is an XML toolkit for Ruby. Also affects ruby
- CVE-2024-27282 An issue was discovered in Ruby 3.x through 3.3.0. Also affects ruby