Bug 451828 (CVE-2008-2726) - CVE-2008-2726 ruby: integer overflow in rb_ary_splice/update/replace() - beg + rlen
Summary: CVE-2008-2726 ruby: integer overflow in rb_ary_splice/update/replace() - beg ...
Keywords:
Status: CLOSED ERRATA
Alias: CVE-2008-2726
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Red Hat Product Security
QA Contact:
URL:
Whiteboard:
: CVE-2008-2728 (view as bug list)
Depends On: 451926 451927 451928 451929 451930 451931 452293 452294 452295
Blocks:
TreeView+ depends on / blocked
 
Reported: 2008-06-17 17:32 UTC by Tomas Hoger
Modified: 2023-05-11 13:04 UTC (History)
2 users (show)

Fixed In Version: 1.8.6.230-1.fc9
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2008-07-26 06:02:47 UTC
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2008:0561 0 normal SHIPPED_LIVE Moderate: ruby security update 2008-07-16 14:14:30 UTC
Red Hat Product Errata RHSA-2008:0562 0 normal SHIPPED_LIVE Moderate: ruby security update 2008-07-14 13:43:04 UTC

Description Tomas Hoger 2008-06-17 17:32:51 UTC
Drew Yao of the Apple Product Security team reported an integer overflow leading
to a bypass of memory re-allocation causing a heap overflow in the
rb_ary_splice() function used by ruby interpreter for handling arrays. 
Problematic addition that may overflow:

     if (beg >= RARRAY(ary)->len) {
-->    len = beg + rlen;  
       if (len >= RARRAY(ary)->aux.capa) {
         REALLOC_N(RARRAY(ary)->ptr, VALUE, len);

The addition may overflow causing len to be negative and due to that, REALLOC_N
is not called.
       
This flaw can be used to crash and possibly execute arbitrary code with the
privileges of Ruby application which use untrusted input in array operations.

Acknowledgements:

Red Hat would like to thank Drew Yao of the Apple Product Security team for reporting this issue.

Comment 1 Tomas Hoger 2008-06-17 17:40:55 UTC
Drew Yao's proposed patch is the same as for CVE-2008-2725:

https://bugzilla.redhat.com/show_bug.cgi?id=451821#c1

Comment 4 Tomas Hoger 2008-06-20 18:52:49 UTC
Public now, lifting embargo:
http://preview.ruby-lang.org/en/news/2008/06/20/arbitrary-code-execution-vulnerabilities

Upstream released fixed versions:
1.8.5-p231, 1.8.6-p230, 1.8.7-p22, 1.9.0-2

Patches applied upstream:
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=17460
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=17472


Comment 8 Fedora Update System 2008-06-25 02:50:40 UTC
ruby-1.8.6.230-1.fc8 has been pushed to the Fedora 8 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 9 Fedora Update System 2008-06-25 02:52:15 UTC
ruby-1.8.6.230-1.fc9 has been pushed to the Fedora 9 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 10 Tomas Hoger 2008-07-01 07:00:36 UTC
*** Bug 451836 has been marked as a duplicate of this bug. ***


Note You need to log in before you can comment on or make changes to this bug.