{"answers":{"affected":"It affects 1 product.","exploited":"It is not confirmed as exploited in the wild, but public exploit code for CVE-2022-29218 exists.","fix":"No fix has been published for CVE-2022-29218 yet. Limit exposure of the affected software until one is available.","what":"CVE-2022-29218 is a high-severity vulnerability in rubygems.org, published on 12 May 2022. Any signed-in user can exploit it over the network, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2022-29218 and fix it if it is affected.\n\nWhat it is: CVE-2022-29218 is a high-severity vulnerability in rubygems.org, published on 12 May 2022. Any signed-in user can exploit it over the network, with no action from the victim.\nExploitation: It is not confirmed as exploited in the wild, but public exploit code for CVE-2022-29218 exists.\n\nAffected product: rubygems.org. No package-level version data is available, so check the vendor advisory linked from the reference page.\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2022-29218/ (Markdown: https://insights.sbomify.com/CVE-2022-29218/index.md)","id":"CVE-2022-29218","markdown":"https://insights.sbomify.com/CVE-2022-29218/index.md","name":"CVE-2022-29218","record":{"aliases":[],"analysis":{"component_type":"cloud_service","fix_type":"patch","impacts":["code_execution","privilege_escalation"],"network_reachable":"yes","non_default_config":false,"product_category":"RubyGems package registry","requires_auth":"low_privilege","summary":"Attackers could replace legitimate gems with malicious ones in the CDN cache, leading to code execution for users installing affected packages.","user_interaction":"not_required","vuln_class":"supply_chain"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"GitHub_M","cpe":[{"product":"rubygems.org","vendor":"rubygems"}],"cvss":{"score":7.7,"severity":"high","source":"cna","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:H/A:N","version":"3.1"},"cwes":[{"id":"CWE-290","name":"Authentication Bypass by Spoofing"},{"id":"CWE-863","name":"Incorrect Authorization"},{"id":"CWE-269","name":"Improper Privilege Management"}],"description":"RubyGems is a package registry used to supply software for the Ruby language ecosystem. An ordering mistake in the code that accepts gem uploads allowed some gems (with platforms ending in numbers, like `arm64-darwin-21`) to be temporarily replaced in the CDN cache by a malicious package. The bug has been patched, and is believed to have never been exploited, based on an extensive review of logs and existing gems by rubygems. The easiest way to ensure that an application has not been exploited by this vulnerability is to verify all downloaded .gems checksums match the checksum recorded in the RubyGems.org database. RubyGems.org has been patched and is no longer vulnerable to this issue.","ecosystems":[],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"weaponised"},"has_fix":null,"headline":"Unauthorized takeover for new versions of some platform-specific gems","id":"CVE-2022-29218","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":null,"product":null,"products":[],"type":"supply_chain","year":"2022"},"n_packages":0,"n_references":2,"next":{"headline":"Integer Overflow in Lodestar","id":"CVE-2022-29219"},"packages":[],"prev":{"headline":"Key confusion through non-blocklisted public key formats in PyJWT","id":"CVE-2022-29217"},"products":["rubygems.org"],"published":"2022-05-12","related":[{"cvss_score":9.9,"headline":"Unauthorized gem takeover for some gems on rubygems.org","id":"CVE-2022-29176","kev_date_added":null,"published":"2022-05-05"},{"cvss_score":7.4,"headline":"Unauthorized gem replacement for full names ending in numbers on rubygems.org","id":"CVE-2023-40165","kev_date_added":null,"published":"2023-08-17"},{"cvss_score":4.8,"headline":"rubygems.org MFA Bypass through password reset function could allow account takeover","id":"CVE-2024-21654","kev_date_added":null,"published":"2024-01-12"}],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"US public information, NVD API terms","name":"NVD"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"no","exploitation":"poc","technical_impact":"partial"},"state":"PUBLISHED","updated":"2025-04-22","vendors":["rubygems"]},"summary":"Attackers could replace legitimate gems with malicious ones in the CDN cache, leading to code execution for users installing affected packages.","url":"https://insights.sbomify.com/CVE-2022-29218/"}