Skip to content

CVE-2017-14064 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 w...

CriticalCVSS 9.8 EPSS 9.4%
Published
Updated
Exploit status
No public exploit known

Description

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.

Affected products

ProductAffected versionsFixed in
ruby-lang ruby <= 2.2.7 No fix listed
ruby-lang ruby = 2.3.0 No fix listed
ruby-lang ruby = 2.3.0-preview1 No fix listed
ruby-lang ruby = 2.3.0-preview2 No fix listed
ruby-lang ruby = 2.3.1 No fix listed
ruby-lang ruby = 2.3.2 No fix listed
ruby-lang ruby = 2.3.3 No fix listed
ruby-lang ruby = 2.3.4 No fix listed
ruby-lang ruby = 2.4.0 No fix listed
ruby-lang ruby = 2.4.0-preview1 No fix listed
ruby-lang ruby = 2.4.0-preview2 No fix listed
ruby-lang ruby = 2.4.0-preview3 No fix listed
ruby-lang ruby = 2.4.0-rc1 No fix listed
ruby-lang ruby = 2.4.1 No fix listed
debian linux = 8.0 No fix listed
debian linux = 9.0 No fix listed
Canonical Ubuntu Linux = 14.04 No fix listed
Canonical Ubuntu Linux = 16.04 No fix listed
Canonical Ubuntu Linux = 17.10 No fix listed
redhat enterprise linux desktop = 7.0 No fix listed
redhat enterprise linux server = 7.0 No fix listed
redhat enterprise linux server aus = 7.4 No fix listed
redhat enterprise linux server aus = 7.6 No fix listed
redhat enterprise linux server eus = 7.4 No fix listed
redhat enterprise linux server eus = 7.5 No fix listed
Show 28 more
ProductAffected versionsFixed in
redhat enterprise linux server eus = 7.6 No fix listed
redhat enterprise linux server tus = 7.4 No fix listed
redhat enterprise linux server tus = 7.6 No fix listed
redhat enterprise linux workstation = 7.0 No fix listed
alpine/ruby(Alpine:v3.10) < 2.4.2-r0 2.4.2-r0
alpine/ruby(Alpine:v3.11) < 2.4.2-r0 2.4.2-r0
alpine/ruby(Alpine:v3.12) < 2.4.2-r0 2.4.2-r0
alpine/ruby(Alpine:v3.13) < 2.4.2-r0 2.4.2-r0
alpine/ruby(Alpine:v3.14) < 2.4.2-r0 2.4.2-r0
alpine/ruby(Alpine:v3.15) < 2.4.2-r0 2.4.2-r0
alpine/ruby(Alpine:v3.16) < 2.4.2-r0 2.4.2-r0
alpine/ruby(Alpine:v3.17) < 2.4.2-r0 2.4.2-r0
alpine/ruby(Alpine:v3.18) < 2.4.2-r0 2.4.2-r0
alpine/ruby(Alpine:v3.19) < 2.4.2-r0 2.4.2-r0
alpine/ruby(Alpine:v3.20) < 2.4.2-r0 2.4.2-r0
alpine/ruby(Alpine:v3.21) < 2.4.2-r0 2.4.2-r0
alpine/ruby(Alpine:v3.22) < 2.4.2-r0 2.4.2-r0
alpine/ruby(Alpine:v3.23) < 2.4.2-r0 2.4.2-r0
alpine/ruby(Alpine:v3.24) < 2.4.2-r0 2.4.2-r0
alpine/ruby(Alpine:v3.3) < 2.2.8-r0 2.2.8-r0
alpine/ruby(Alpine:v3.4) < 2.3.5-r0 2.3.5-r0
alpine/ruby(Alpine:v3.5) < 2.3.5-r0 2.3.5-r0
alpine/ruby(Alpine:v3.6) < 2.4.2-r0 2.4.2-r0
alpine/ruby(Alpine:v3.7) < 2.4.2-r0 2.4.2-r0
alpine/ruby(Alpine:v3.8) < 2.4.2-r0 2.4.2-r0
alpine/ruby(Alpine:v3.9) < 2.4.2-r0 2.4.2-r0
alpine/ruby2.2(Alpine:v3.5) < 2.2.8-r0 2.2.8-r0
alpine/ruby2.2(Alpine:v3.6) < 2.2.8-r0 2.2.8-r0

References