Name | CVE-2020-10933 |
Description | An issue was discovered in Ruby 2.5.x through 2.5.7, 2.6.x through 2.6.5, and 2.7.0. If a victim calls BasicSocket#read_nonblock(requested_size, buffer, exception: false), the method resizes the buffer to fit the requested size, but no data is copied. Thus, the buffer string provides the previous value of the heap. This may expose possibly sensitive data from the interpreter. |
Source | CVE (at NVD; CERT, LWN, oss-sec, fulldisc, Red Hat, Ubuntu, Gentoo, SUSE bugzilla/CVE, GitHub advisories/code/issues, web search, more) |
References | DSA-4721-1 |
The table below lists information on source packages.
Source Package | Release | Version | Status |
---|---|---|---|
ruby2.1 (PTS) | jessie, jessie (lts) | 2.1.5-2+deb8u14 | fixed |
ruby2.3 (PTS) | stretch (security) | 2.3.3-1+deb9u11 | fixed |
stretch (lts), stretch | 2.3.3-1+deb9u12 | fixed | |
ruby2.5 (PTS) | buster, buster (lts) | 2.5.5-3+deb10u7 | fixed |
buster (security) | 2.5.5-3+deb10u6 | fixed | |
ruby2.7 (PTS) | bullseye | 2.7.4-1+deb11u1 | fixed |
bullseye (security) | 2.7.4-1+deb11u2 | fixed |
The information below is based on the following data on fixed versions.
Package | Type | Release | Fixed Version | Urgency | Origin | Debian Bugs |
---|---|---|---|---|---|---|
ruby2.1 | source | (unstable) | (not affected) | |||
ruby2.3 | source | (unstable) | (not affected) | |||
ruby2.5 | source | buster | 2.5.5-3+deb10u2 | DSA-4721-1 | ||
ruby2.5 | source | (unstable) | (unfixed) | |||
ruby2.7 | source | (unstable) | 2.7.1-1 |
- ruby2.3 <not-affected> (Vulnerable code introduced in 2.5.0)
- ruby2.1 <not-affected> (Vulnerable code introduced in 2.5.0)
https://www.ruby-lang.org/en/news/2020/03/31/heap-exposure-in-socket-cve-2020-10933/
Fixed by: https://github.com/ruby/ruby/commit/61b7f86248bd121be2e83768be71ef289e8e5b90
Introduced around https://github.com/ruby/ruby/commit/ba5eb6458a7e9a41ee76cfe45b84f997600681dc
and https://github.com/ruby/ruby/commit/ba5eb6458a7e9a41ee76cfe45b84f997600681dc