summaryrefslogtreecommitdiff
blob: 9e0f1160376e2a0d5c4a0551b5f07f6532d8e221 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE glsa SYSTEM "http://www.gentoo.org/dtd/glsa.dtd">

<glsa id="200812-17">
  <title>Ruby: Multiple vulnerabilities</title>
  <synopsis>
    Multiple vulnerabilities have been discovered in Ruby that allow for
    attacks including arbitrary code execution and Denial of Service.
  </synopsis>
  <product type="ebuild">ruby</product>
  <announced>December 16, 2008</announced>
  <revised>December 16, 2008: 01</revised>
  <bug>225465</bug>
  <bug>236060</bug>
  <access>remote</access>
  <affected>
    <package name="dev-lang/ruby" auto="yes" arch="*">
      <unaffected range="ge">1.8.6_p287-r1</unaffected>
      <vulnerable range="lt">1.8.6_p287-r1</vulnerable>
    </package>
  </affected>
  <background>
    <p>
    Ruby is an interpreted object-oriented programming language. The
    elaborate standard library includes an HTTP server ("WEBRick") and a
    class for XML parsing ("REXML").
    </p>
  </background>
  <description>
    <p>
    Multiple vulnerabilities have been discovered in the Ruby interpreter
    and its standard libraries. Drew Yao of Apple Product Security
    discovered the following flaws:
    </p>
    <ul>
    <li>Arbitrary code execution
    or Denial of Service (memory corruption) in the rb_str_buf_append()
    function (CVE-2008-2662).</li>
    <li>Arbitrary code execution or Denial
    of Service (memory corruption) in the rb_ary_stor() function
    (CVE-2008-2663).</li>
    <li>Memory corruption via alloca in the
    rb_str_format() function (CVE-2008-2664).</li>
    <li>Memory corruption
    ("REALLOC_N") in the rb_ary_splice() and rb_ary_replace() functions
    (CVE-2008-2725).</li>
    <li>Memory corruption ("beg + rlen") in the
    rb_ary_splice() and rb_ary_replace() functions (CVE-2008-2726).</li>
    </ul> <p>
    Furthermore, several other vulnerabilities have been reported:
    </p>
    <ul>
    <li>Tanaka Akira reported an issue with resolv.rb that enables
    attackers to spoof DNS responses (CVE-2008-1447).</li>
    <li>Akira Tagoh
    of RedHat discovered a Denial of Service (crash) issue in the
    rb_ary_fill() function in array.c (CVE-2008-2376).</li>
    <li>Several
    safe level bypass vulnerabilities were discovered and reported by Keita
    Yamaguchi (CVE-2008-3655).</li>
    <li>Christian Neukirchen is credited
    for discovering a Denial of Service (CPU consumption) attack in the
    WEBRick HTTP server (CVE-2008-3656).</li>
    <li>A fault in the dl module
    allowed the circumvention of taintness checks which could possibly lead
    to insecure code execution was reported by "sheepman"
    (CVE-2008-3657).</li>
    <li>Tanaka Akira again found a DNS spoofing
    vulnerability caused by the resolv.rb implementation using poor
    randomness (CVE-2008-3905).</li>
    <li>Luka Treiber and Mitja Kolsek
    (ACROS Security) disclosed a Denial of Service (CPU consumption)
    vulnerability in the REXML module when dealing with recursive entity
    expansion (CVE-2008-3790).</li>
    </ul>
  </description>
  <impact type="normal">
    <p>
    These vulnerabilities allow remote attackers to execute arbitrary code,
    spoof DNS responses, bypass Ruby's built-in security and taintness
    checks, and cause a Denial of Service via crash or CPU exhaustion.
    </p>
  </impact>
  <workaround>
    <p>
    There is no known workaround at this time.
    </p>
  </workaround>
  <resolution>
    <p>
    All Ruby users should upgrade to the latest version:
    </p>
    <code>
    # emerge --sync
    # emerge --ask --oneshot --verbose &quot;&gt;=dev-lang/ruby-1.8.6_p287-r1&quot;</code>
  </resolution>
  <references>
    <uri link="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-1447">CVE-2008-1447</uri>
    <uri link="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-2376">CVE-2008-2376</uri>
    <uri link="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-2662">CVE-2008-2662</uri>
    <uri link="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-2663">CVE-2008-2663</uri>
    <uri link="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-2664">CVE-2008-2664</uri>
    <uri link="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-2725">CVE-2008-2725</uri>
    <uri link="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-2726">CVE-2008-2726</uri>
    <uri link="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-3655">CVE-2008-3655</uri>
    <uri link="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-3656">CVE-2008-3656</uri>
    <uri link="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-3657">CVE-2008-3657</uri>
    <uri link="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-3790">CVE-2008-3790</uri>
    <uri link="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-3905">CVE-2008-3905</uri>
  </references>
  <metadata tag="requester" timestamp="Sun, 21 Sep 2008 11:43:41 +0000">
    keytoaster
  </metadata>
  <metadata tag="submitter" timestamp="Mon, 10 Nov 2008 18:52:14 +0000">
    hoffie
  </metadata>
  <metadata tag="bugReady" timestamp="Thu, 27 Nov 2008 16:38:46 +0000">
    rbu
  </metadata>
</glsa>