~ / search / GHSA-cxf7-qrc5-9446

GHSA-cxf7-qrc5-9446

Remote shell execution vulnerability in image_processing

Source: GitHub Advisory Database (reviewed) Critical CVE-2022-24720

Packages

EcosystemPackageAffectedFixed in
RubyGems image_processing < 1.12.2 1.12.2

Details

As written in the advisory (Markdown source, shown as plain text).

### Impact When using the `#apply` method from image_processing to apply a series of operations that are coming from unsanitized user input, this allows the attacker to execute shell commands: ```rb ImageProcessing::Vips.apply({ system: "echo EXECUTED" }) #>> EXECUTED ``` This method is called internally by Active Storage variants, so Active Storage is vulnerable as well. ### Patches The vulnerability has been fixed in version 1.12.2 of image_processing. ### Workarounds If you're processing based on user input, it's highly recommended that you always sanitize the user input, by allowing only a constrained set of operations. For example: ```rb operations = params[:operations] .map { |operation| [operation[:name], *operation[:value]] } .select { |name, *| name.to_s.include? %w[resize_to_limit strip ...] } # sanitization ImageProcessing::Vips.apply(operations) ```

References

External links from the advisory. They lead to third-party sites.