ALAS-2017-915

Related Vulnerabilities: CVE-2017-0898   CVE-2017-0899   CVE-2017-0900   CVE-2017-0901   CVE-2017-0902   CVE-2017-0903   CVE-2017-10784   CVE-2017-14033   CVE-2017-14064  

Arbitrary heap exposure during a JSON.generate callRuby through 2.2.7, 2.3.x through 2.3.4, and 2.4.x through 2.4.1 can expose arbitrary memory during a JSON.generate call. The issues lies in using strdup in ext/json/ext/generator/generator.c, which will stop after encountering a '\\0' byte, returning a pointer to a string of length zero, which is not the length stored in space_len. (CVE-2017-14064) Escape sequence injection vulnerability in the Basic authentication of WEBrickThe Basic authentication code in WEBrick library in Ruby before 2.2.8, 2.3.x before 2.3.5, and 2.4.x through 2.4.1 allows remote attackers to inject terminal emulator escape sequences into its log and possibly execute arbitrary commands via a crafted user name. (CVE-2017-10784) Buffer underrun in OpenSSL ASN1 decodeThe decode method in the OpenSSL::ASN1 module in Ruby before 2.2.8, 2.3.x before 2.3.5, and 2.4.x through 2.4.1 allows attackers to cause a denial of service (interpreter crash) via a crafted string. (CVE-2017-14033) No size limit in summary length of gem specRubyGems version 2.6.12 and earlier is vulnerable to maliciously crafted gem specifications to cause a denial of service attack against RubyGems clients who have issued a `query` command. (CVE-2017-0900) Arbitrary file overwrite due to incorrect validation of specification nameRubyGems version 2.6.12 and earlier fails to validate specification names, allowing a maliciously crafted gem to potentially overwrite any file on the filesystem. (CVE-2017-0901) DNS hijacking vulnerabilityRubyGems version 2.6.12 and earlier is vulnerable to a DNS hijacking vulnerability that allows a MITM attacker to force the RubyGems client to download and install gems from a server that the attacker controls. (CVE-2017-0902) Buffer underrun vulnerability in Kernel.sprintfRuby before 2.4.2, 2.3.5, and 2.2.8 is vulnerable to a malicious format string which contains a precious specifier (*) with a huge minus value. Such situation can lead to a buffer overrun, resulting in a heap memory corruption or an information disclosure from the heap. (CVE-2017-0898) Escape sequence in the "summary" field of gemspecRubyGems version 2.6.12 and earlier is vulnerable to maliciously crafted gem specifications that include terminal escape characters. Printing the gem specification would execute terminal escape sequences. (CVE-2017-0899) A vulnerability was found where the rubygems module was vulnerable to an unsafe YAML deserialization when inspecting a gem. Applications inspecting gem files without installing them can be tricked to execute arbitrary code in the context of the ruby interpreter. (CVE-2017-0903)

ALAS-2017-915


Amazon Linux AMI Security Advisory: ALAS-2017-915
Advisory Release Date: 2017-10-26 17:01 Pacific
Advisory Updated Date: 2018-01-18 20:17 Pacific
Severity: Medium

Issue Overview:

Arbitrary heap exposure during a JSON.generate call
Ruby through 2.2.7, 2.3.x through 2.3.4, and 2.4.x through 2.4.1 can expose arbitrary memory during a JSON.generate call. The issues lies in using strdup in ext/json/ext/generator/generator.c, which will stop after encountering a '\\0' byte, returning a pointer to a string of length zero, which is not the length stored in space_len. (CVE-2017-14064)

Escape sequence injection vulnerability in the Basic authentication of WEBrick
The Basic authentication code in WEBrick library in Ruby before 2.2.8, 2.3.x before 2.3.5, and 2.4.x through 2.4.1 allows remote attackers to inject terminal emulator escape sequences into its log and possibly execute arbitrary commands via a crafted user name. (CVE-2017-10784)

Buffer underrun in OpenSSL ASN1 decode
The decode method in the OpenSSL::ASN1 module in Ruby before 2.2.8, 2.3.x before 2.3.5, and 2.4.x through 2.4.1 allows attackers to cause a denial of service (interpreter crash) via a crafted string. (CVE-2017-14033)

No size limit in summary length of gem spec
RubyGems version 2.6.12 and earlier is vulnerable to maliciously crafted gem specifications to cause a denial of service attack against RubyGems clients who have issued a `query` command. (CVE-2017-0900)

Arbitrary file overwrite due to incorrect validation of specification name
RubyGems version 2.6.12 and earlier fails to validate specification names, allowing a maliciously crafted gem to potentially overwrite any file on the filesystem. (CVE-2017-0901)

DNS hijacking vulnerability
RubyGems version 2.6.12 and earlier is vulnerable to a DNS hijacking vulnerability that allows a MITM attacker to force the RubyGems client to download and install gems from a server that the attacker controls. (CVE-2017-0902)

Buffer underrun vulnerability in Kernel.sprintf
Ruby before 2.4.2, 2.3.5, and 2.2.8 is vulnerable to a malicious format string which contains a precious specifier (*) with a huge minus value. Such situation can lead to a buffer overrun, resulting in a heap memory corruption or an information disclosure from the heap. (CVE-2017-0898)

Escape sequence in the "summary" field of gemspec
RubyGems version 2.6.12 and earlier is vulnerable to maliciously crafted gem specifications that include terminal escape characters. Printing the gem specification would execute terminal escape sequences. (CVE-2017-0899)

A vulnerability was found where the rubygems module was vulnerable to an unsafe YAML deserialization when inspecting a gem. Applications inspecting gem files without installing them can be tricked to execute arbitrary code in the context of the ruby interpreter. (CVE-2017-0903)


Affected Packages:

ruby24


Issue Correction:
Run yum update ruby24 to update your system.

New Packages:
i686:
    rubygem24-bigdecimal-1.3.0-1.30.4.amzn1.i686
    rubygem24-io-console-0.4.6-1.30.4.amzn1.i686
    ruby24-devel-2.4.2-1.30.4.amzn1.i686
    rubygem24-json-2.0.4-1.30.4.amzn1.i686
    rubygem24-xmlrpc-0.2.1-1.30.4.amzn1.i686
    rubygem24-psych-2.2.2-1.30.4.amzn1.i686
    ruby24-debuginfo-2.4.2-1.30.4.amzn1.i686
    ruby24-2.4.2-1.30.4.amzn1.i686
    ruby24-libs-2.4.2-1.30.4.amzn1.i686

noarch:
    rubygem24-did_you_mean-1.1.0-1.30.4.amzn1.noarch
    rubygems24-2.6.13-1.30.4.amzn1.noarch
    rubygems24-devel-2.6.13-1.30.4.amzn1.noarch
    ruby24-irb-2.4.2-1.30.4.amzn1.noarch
    ruby24-doc-2.4.2-1.30.4.amzn1.noarch

src:
    ruby24-2.4.2-1.30.4.amzn1.src

x86_64:
    ruby24-devel-2.4.2-1.30.4.amzn1.x86_64
    rubygem24-xmlrpc-0.2.1-1.30.4.amzn1.x86_64
    rubygem24-json-2.0.4-1.30.4.amzn1.x86_64
    rubygem24-bigdecimal-1.3.0-1.30.4.amzn1.x86_64
    ruby24-2.4.2-1.30.4.amzn1.x86_64
    ruby24-debuginfo-2.4.2-1.30.4.amzn1.x86_64
    rubygem24-io-console-0.4.6-1.30.4.amzn1.x86_64
    ruby24-libs-2.4.2-1.30.4.amzn1.x86_64
    rubygem24-psych-2.2.2-1.30.4.amzn1.x86_64