VDB
Sign up
HIGH7.4

GHSA-qrqm-fpv6-6r8g

Command Injection Vulnerability in Mechanize

Quick fix

GHSA-qrqm-fpv6-6r8g — mechanize: upgrade to the fixed version with the command below.

bundle update mechanize

Details

This security advisory has been created for public disclosure of a Command Injection vulnerability that was responsibly reported by @kyoshidajp (Katsuhiko YOSHIDA).

### Impact

Mechanize `>= v2.0`, `< v2.7.7` allows 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`: since v2.0 (see 208e3ed) - `Mechanize::CookieJar#save_as`: since v2.0 (see 5b776a4) - `Mechanize#download`: since v2.2 (see dc91667) - `Mechanize::Download#save` and `#save!` since v2.1 (see 98b2f51, bd62ff0) - `Mechanize::File#save` and `#save_as`: since v2.1 (see 2bf7519) - `Mechanize::FileResponse#read_body`: since v2.0 (see 01039f5)

### Patches

These vulnerabilities are patched in Mechanize v2.7.7.

### Workarounds

No workarounds are available. We recommend upgrading to v2.7.7 or later.

### References

See https://docs.rubocop.org/rubocop/cops_security.html#securityopen for background on why `Kernel.open` should not be used with untrusted input.

### For more information

If you have any questions or comments about this advisory, please open an issue in [sparklemotion/mechanize](https://github.com/sparklemotion/mechanize/issues/new).

Are you affected?

Enter the version of the package you're using.

Affected packages

RubyGems/mechanize
Introduced in: 2.0.0Fixed in: 2.7.7
Fixbundle update mechanize

References