CVE-2022-29176
Unauthorized gem takeover for some gems on rubygems.org
Severity Score
Exploit Likelihood
Affected Versions
Public Exploits
0Exploited in Wild
-Decision
Descriptions
Rubygems is a package registry used to supply software for the Ruby language ecosystem. Due to a bug in the yank action, it was possible for any RubyGems.org user to remove and replace certain gems even if that user was not authorized to do so. To be vulnerable, a gem needed: one or more dashes in its name creation within 30 days OR no updates for over 100 days At present, we believe this vulnerability has not been exploited. RubyGems.org sends an email to all gem owners when a gem version is published or yanked. We have not received any support emails from gem owners indicating that their gem has been yanked without authorization. An audit of gem changes for the last 18 months did not find any examples of this vulnerability being used in a malicious way. A deeper audit for any possible use of this exploit is ongoing, and we will update this advisory once it is complete. Using Bundler in --frozen or --deployment mode in CI and during deploys, as the Bundler team has always recommended, will guarantee that your application does not silently switch to versions created using this exploit. To audit your application history for possible past exploits, review your Gemfile.lock and look for gems whose platform changed when the version number did not change. For example, gemname-3.1.2 updating to gemname-3.1.2-java could indicate a possible abuse of this vulnerability. RubyGems.org has been patched and is no longer vulnerable to this issue as of the 5th of May 2022.
Rubygems es un registro de paquetes usado para suministrar software para el ecosistema del lenguaje Ruby. Debido a un bug en la acción de yank, era posible que cualquier usuario de RubyGems.org eliminara y sustituyera determinadas gemas incluso si ese usuario no estaba autorizado a hacerlo. Para ser vulnerable, una gema necesitaba: la creación de uno o más guiones en su nombre en un plazo de 30 días O no haber sido actualizada durante más de 100 días En la actualidad, creemos que esta vulnerabilidad no ha sido explotada. RubyGems.org envía un correo electrónico a todos los propietarios de gemas cuando es publicada o es retirada la versión de una gema. No hemos recibido ningún correo electrónico de soporte de los propietarios de gemas indicando que su gema ha sido retirada sin autorización. Una auditoría de los cambios de gemas de los últimos 18 meses no encontró ningún ejemplo de esta vulnerabilidad usada de forma maliciosa. Está siendo llevando a cabo una auditoría más profunda para detectar cualquier posible uso de esta explotación, y actualizaremos este aviso una vez que haya sido completado. El uso de Bundler en modo --frozen o --deployment en CI y durante los despliegues, como el equipo de Bundler siempre ha recomendado, garantizará que su aplicación no cambie silenciosamente a versiones creadas con esta explotación. Para auditar el historial de tu aplicación en busca de posibles explotaciones pasadas, revisa tu Gemfile.lock y busca gemas cuya plataforma haya cambiado cuando el número de versión no haya cambiado. Por ejemplo, la actualización de gemname-3.1.2 a gemname-3.1.2-java podría indicar un posible abuso de esta vulnerabilidad. RubyGems.org ha sido parcheado y ya no es vulnerable a este problema desde el 5 de mayo de 2022
CVSS Scores
SSVC
- Decision:-
Timeline
- 2022-04-13 CVE Reserved
- 2022-05-05 CVE Published
- 2024-03-21 EPSS Updated
- 2024-08-03 CVE Updated
- ---------- Exploited in Wild
- ---------- KEV Due Date
- ---------- First Exploit
CWE
- CWE-862: Missing Authorization
- CWE-863: Incorrect Authorization
CAPEC
References (2)
URL | Tag | Source |
---|---|---|
https://github.com/rubygems/rubygems.org/security/advisories/GHSA-hccv-rwq6-vh79 | Mitigation | |
https://security.netapp.com/advisory/ntap-20220616-0002 | Third Party Advisory |
URL | Date | SRC |
---|
URL | Date | SRC |
---|
URL | Date | SRC |
---|
Affected Vendors, Products, and Versions
Vendor | Product | Version | Other | Status | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Vendor | Product | Version | Other | Status | <-- --> | Vendor | Product | Version | Other | Status |
Rubygems Search vendor "Rubygems" | Rubygems.org Search vendor "Rubygems" for product "Rubygems.org" | - | - |
Affected
|