oss-sec mailing list archives
Re: [ruby-core:63604] [ruby-trunk - Bug #10019] [Open] segmentation fault/buffer overrun in pack.c (encodes)
From: Ramon de C Valle <rdecvalle () vmware com>
Date: Tue, 15 Jul 2014 15:10:05 +0000
On Jul 15, 2014, at 2:09 AM, cve-assign () mitre org wrote:
Signed PGP partIs MITRE or Red Hat going to assign a CVE for it?We haven't yet been able to determine whether the discussion is about two separate vulnerabilities. http://openwall.com/lists/oss-security/2014/07/09/13 says: ruby -v: ruby 2.1.2p168 (2014-07-06 revision 46721) [i386-mingw32] ... While working with an AWS sample I hit a segmentation fault. The same sample works under 1.9.3. First, we don't know what "The same sample works under 1.9.3" means. It might mean "The same AWS sample is also a working vulnerability reproducer when using Ruby 1.9.3." It might instead mean "With this AWS sample, my program works normally when using Ruby 1.9.3; in other words, no vulnerability is observed.”
It meant that his sample worked normally when he used Ruby 1.9.3. (I assumed this because the version he specified as containing the bug in the report was Ruby 2.1, and specified Ruby 2.0 as requiring backport, but not Ruby 1.9.3.)
http://openwall.com/lists/oss-security/2014/07/10/15 says: Anyway, whatever the reporter is referring to, he mentions it doesn't occur in 1.9.3, and looking at 1.9.3, the only related differences I immediately noticed are the absence of the check at https://github.com/ruby/ruby/blob/trunk/pack.c#L829 in pack_pack function and padding being an int (instead of char) in the encodes function. These differences in pack.c obviously aren't the same as (and aren't expected to be the same as) the pack.c code changes in Revision 46778 (aka the https://bugs.ruby-lang.org/projects/ruby-trunk/repository/revisions/46778/diff/pack.c changes).
These are the differences I noticed when comparing the related code in Ruby 1.9.3 (where his sample worked normally) with Ruby 2.0 and 2.1, but are not related to the (off-by-one) initially discussed, as it may be the case the reporter may be referring to a different issue, since Tomas analysis of aws-sdk gem and its dependencies indicates it's unlikely this issue is being caused by any of these gems.
(We realize that 1.9.3 is of interest because it is the "Old stable" distribution advertised on the https://www.ruby-lang.org/en/downloads/ page.) Is one of these scenarios the correct interpretation? 1. There is only one vulnerability. Version 2.1.2 is an example of an affected version. Version 1.9.3 is an example of a non-affected version. 2. There is only one vulnerability. Version 2.1.2 is an example of an affected version. Version 1.9.3 is also an example of an affected version. 3. A vulnerability in pack.c was fixed during Ruby 1.x development, but then a regression occurred during Ruby 2.x development, and the vulnerability is present in, for example, version 2.1.2. (A regression would generally mean that two CVE IDs are required.) 4. The Ruby 1.x pack.c and the Ruby 2.x pack.c are vulnerable in substantially different ways, requiring different fixes. (Again, this would generally mean that two CVE IDs are required.) We don't require that the set of affected versions is precisely determined before a CVE assignment. Narrowing it down to one of the above scenarios is probably required because otherwise the correct number of CVE IDs isn't known.
Ruby 1.9.3, 2.0, and 2.1 are affected by the off-by-one. We’re still not sure about the presence of a different issue affecting Ruby 2.0 and 2.1. I left a comment on the report pointing out that 1.9.3 is also affected by the off-by-one and suggesting confirming with the reporter if he continues to observe the crash after adding the fix.
-- CVE assignment team, MITRE CVE Numbering Authority M/S M300 202 Burlington Road, Bedford, MA 01730 USA [ PGP key available through http://cve.mitre.org/cve/request_id.html ]
-- Ramon de C Valle VMware Product Security Engineering
Attachment:
signature.asc
Description: Message signed with OpenPGP using GPGMail
Current thread:
- Fwd: [ruby-core:63604] [ruby-trunk - Bug #10019] [Open] segmentation fault/buffer overrun in pack.c (encodes) Ramon de C Valle (Jul 09)
- Re: Fwd: [ruby-core:63604] [ruby-trunk - Bug #10019] [Open] segmentation fault/buffer overrun in pack.c (encodes) Murray McAllister (Jul 09)
- Re: Fwd: [ruby-core:63604] [ruby-trunk - Bug #10019] [Open] segmentation fault/buffer overrun in pack.c (encodes) Tomas Hoger (Jul 10)
- Re: Fwd: [ruby-core:63604] [ruby-trunk - Bug #10019] [Open] segmentation fault/buffer overrun in pack.c (encodes) Ramon de C Valle (Jul 10)
- Re: [ruby-core:63604] [ruby-trunk - Bug #10019] [Open] segmentation fault/buffer overrun in pack.c (encodes) Ramon de C Valle (Jul 10)
- Re: [ruby-core:63604] [ruby-trunk - Bug #10019] [Open] segmentation fault/buffer overrun in pack.c (encodes) Ramon de C Valle (Jul 14)
- Re: [ruby-core:63604] [ruby-trunk - Bug #10019] [Open] segmentation fault/buffer overrun in pack.c (encodes) Kurt Seifried (Jul 14)
- Re: [ruby-core:63604] [ruby-trunk - Bug #10019] [Open] segmentation fault/buffer overrun in pack.c (encodes) cve-assign (Jul 14)
- Re: [ruby-core:63604] [ruby-trunk - Bug #10019] [Open] segmentation fault/buffer overrun in pack.c (encodes) Ramon de C Valle (Jul 15)
- Re: [ruby-core:63604] [ruby-trunk - Bug #10019] [Open] segmentation fault/buffer overrun in pack.c (encodes) cve-assign (Jul 15)
- Re: Re: [ruby-core:63604] [ruby-trunk - Bug #10019] [Open] segmentation fault/buffer overrun in pack.c (encodes) Tomas Hoger (Jul 16)
- Re: Re: [ruby-core:63604] [ruby-trunk - Bug #10019] [Open] segmentation fault/buffer overrun in pack.c (encodes) Tomas Hoger (Jul 16)
- Re: [ruby-core:63604] [ruby-trunk - Bug #10019] [Open] segmentation fault/buffer overrun in pack.c (encodes) Ramon de C Valle (Jul 16)
- Re: Fwd: [ruby-core:63604] [ruby-trunk - Bug #10019] [Open] segmentation fault/buffer overrun in pack.c (encodes) Ramon de C Valle (Jul 10)
- Re: [ruby-core:63604] [ruby-trunk - Bug #10019] [Open] segmentation fault/buffer overrun in pack.c (encodes) cve-assign (Jul 17)