CVE-2020-10933: Infoleak
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#readnonblock(requestedsize, 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.
Affected Software
Event History
Parent advisories
This vulnerability appears in the following advisories.
Frequently Asked Questions
What is CVE-2020-10933?
CVE-2020-10933 is a vulnerability in Ruby that allows an attacker to read arbitrary memory in the socket library.
Which versions of Ruby are affected by CVE-2020-10933?
Ruby 2.5.x through 2.5.7, 2.6.x through 2.6.5, and 2.7.0 are affected by CVE-2020-10933.
How does CVE-2020-10933 work?
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, allowing an attacker to access uninitialized memory.
What is the severity of CVE-2020-10933?
CVE-2020-10933 has a severity rating of 5.3, which is considered medium.
How can I mitigate CVE-2020-10933 in Ruby?
Update to Ruby version 2.5.9, 2.6.6, or 2.7.1 to mitigate CVE-2020-10933.