CVE-2021-21289
Mechanize is an open-source ruby library that makes automated web interaction easy. In Mechanize from version 2.0.0 and before version 2.7.7 there is a command injection vulnerability. Affected versions of mechanize allow for OS commands to be injected using several classes' methods which implicitly use Ruby's Kernel.open method. Exploitation is possible only if untrusted input is used as a local filename and passed to any of these calls: Mechanize::CookieJar#load, Mechanize::CookieJar#save_as, Mechanize#download, Mechanize::Download#save, Mechanize::File#save, and Mechanize::FileResponse#read_body. This is fixed in version 2.7.7.
EPSS 3.51% · 89.1th percentile
Risk Scores
Affected Products
| Vendor | Product | Versions |
|---|---|---|
| Ubuntu:20.04:LTS | ruby-mechanize | 0, 2.7.6-1 |
| Ubuntu:22.04:LTS | ruby-mechanize | 2.7.7-1, 2.7.7-3, 0 |
| Ubuntu:16.04:LTS | ruby-mechanize | 0, 2.7.3-1 |
| Ubuntu:18.04:LTS | ruby-mechanize | 0, 2.7.5-1, 2.7.5-2 |
Timeline
- Feb 2, 2021 CVE Published
- Apr 14, 2021 EPSS Score
- Jun 23, 2021 EPSS Score
- Oct 27, 2021 EPSS Score
- Dec 28, 2021 EPSS Score
- Feb 4, 2022 EPSS Score
- Mar 1, 2022 EPSS Score
- Apr 1, 2022 EPSS Score
- Jul 5, 2022 EPSS Score
- Sep 7, 2022 EPSS Score
- Nov 9, 2022 EPSS Score
- Mar 7, 2023 EPSS Score
References
- https://github.com/sparklemotion/mechanize/security/advisories/GHSA-qrqm-fpv6-6r8g third-party-advisory
- https://rubygems.org/gems/mechanize/ third-party-advisory
- https://www.cve.org/CVERecord?id=CVE-2021-21289 third-party-advisory
- https://ubuntu.com/security/CVE-2021-21289 advisory
- https://github.com/sparklemotion/mechanize/commit/aae0b13514a1a0caf93b1cf233733c50e679069a fix
- https://github.com/sparklemotion/mechanize/commit/2ac906b26f4a565a0af92df5fb9c8a36c2b75375 fix
- https://github.com/sparklemotion/mechanize/commit/f43a3952ab39341136656b0a8b2c8597ba1b4adc fix
- https://github.com/sparklemotion/mechanize/commit/b48b12f5db33c5a94a14dfcab8adf3e73cfa0388 fix
- https://github.com/sparklemotion/mechanize/commit/63f8779e49664d5e95fae8d42d04c8e373162b3c fix
- https://github.com/sparklemotion/mechanize/commit/66a6a1bfa653a5f13274a396a5e5441238656aa0 fix
- https://github.com/sparklemotion/mechanize/releases/tag/v2.7.7 fix