-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fixed a code-injection in Gem::Specification#ruby_code. #165
Conversation
* Explaination and Proof of Concept (PoC) exploit against this vulnerability: * https://github.com/sophsec/rubygems-pwn * https://rubygems.org/gems/rubygems-pwn
|
@postmodern confirmed. Bump++ |
|
@zenspider, @raggi, @evanphx, @sandal Can I get some extra eyes on this vulnerability and patch? |
|
I couldn't use this patch. It contained no tests and obviously the tests weren't run when it was committed. It introduced a possible SystemStackError. It allowed the dumped Hash to contain non-String keys and values. |
|
@drbrain Thanks for fixing this. Next time could you just Confirmed this patch fixes the vulnerability: s.summary = "A Proof of Concept (PoC) exploit for an trivial Security vulnerability in how RubyGems converts YAML-dumped gemspecs, back into Ruby code, when installing RubyGems}; require('base64');eval(Base64.decode64(\"YmVlcCA9IGxhbWJkYSB7IHxtfCBwdXRzICJcYSN7bX0iIH0Kc2F5X3B1dHMg\\nPSBsYW1iZGEgeyB8bXwgYmVlcFttXTsgc3lzdGVtKCdzYXknLG0pIH0Kc2F5\\nX3B1dHNbIkdlZW50bGVtZW4uIl0Kc2F5X3B1dHNbIkFsbCB2ZXJzaW9ucyBv\\nZiBSdWJ5LUdlbXMgYXJlIHZ1bG5lcmFibGUgdG8gcGVyc2lzdGVudCBjb2Rl\\nIGluamVjdGlvbiB2aWEgdGhlIGdlbSBzcGVjcyB0aGF0IGFyZSByZS1nZW5l\\ncmF0ZWQgd2hlbiB5b3UgaW5zdGFsbCBhIEdlbS4iXQoKYmVlcFsiKiBodHRw\\nczovL2dpdGh1Yi5jb20vcnVieWdlbXMvcnVieWdlbXMvcHVsbC8xNjUiXQo=\\n\")) #"
Will you be publishing a Security Advisory, so the Linux distributions can backport the patch or upgrade to 1.8.10? |
|
For just one line it wasn't worth the effort of --amend. For a larger patch I certainly will. I don't know anything about Security Advisories, but I will consult with Aaron. |
=== 1.8.10 / 2011-08-25 RubyGems 1.8.10 contains a security fix that prevents malicious gems from executing code when their specification is loaded. See rubygems/rubygems#165 for details. * 5 bug fixes: * RubyGems escapes strings in ruby-format specs using #dump instead of #to_s and %q to prevent code injection. Issue #165 by Postmodern * RubyGems attempt to activate the psych gem now to obtain bugfixes from psych. * Gem.dir has been restored to the front of Gem.path. Fixes remaining problem with Issue #115 * Fixed Syck DefaultKey infecting ruby-format specifications. * `gem uninstall a b` no longer stops if gem "a" is not installed.
vulnerability: