GitHub Advisoryadvisory · RubyGems

GHSA-cf3w-g86h-35x4 Code Injection vulnerability in CarrierWave::RMagick

HIGH Published 2021-02-08 Modified 2022-04-27 Official page ↗
Aliases
CVE-2021-21305
Ecosystem
RubyGems
Packages
carrierwave
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:L
Weaknesses
CWE-74, CWE-94
Reviewed
2021-02-08

Affected packages

• RubyGems carrierwave: < 1.3.2 → fixed in 1.3.2 • RubyGems carrierwave: >= 2.0.0, < 2.1.1 → fixed in 2.1.1

Description

Impact CarrierWave::RMagick has a Code Injection vulnerability. Its `#manipulate!` method inappropriately evals the content of mutation option(`:read`/`:write`), allowing attackers to craft a string that can be executed as a Ruby code. If an application developer supplies untrusted inputs to the option, it will lead to remote code execution(RCE). (But supplying untrusted input to the option itself is dangerous even in absence of this vulnerability, since is prone to DoS vulnerability - attackers can try to consume massive amounts of memory by resizing to a very large dimension) Proof of Concept ```ruby class MyUploader shows "Hacked" ``` Patches Upgrade to 2.1.1 or 1.3.2. Workarounds Stop supplying untrusted input to `#manipulate!`'s mutation option. References Code Injection Software Attack For more information If you have any questions or comments about this advisory: • Open an issue in CarrierWave repo • Email me at [email protected]

Related

Alias · CVE (1)

  • CVE-2021-21305 CarrierWave is an open-source RubyGem which provides a simple and flexible way to upload files from Ruby applications. vulnerability

Weakness · CWE (2)

  • CWE-74 Improper Neutralization of Special Elements in Output Used by a Downstream Component weakness
  • CWE-94 Improper Control of Generation of Code weakness

References