CVE-2009-4492
WEBrick Improper Input Validation vulnerability
CVE-2009-4492 is a high vulnerability (CVSS 7.5) in Ruby-lang Webrick, published January 13, 2010. Public exploit code exists. EPSS puts the chance of exploitation in the next 30 days at 16.2%, the 96th percentile. Fixed in webrick 1.4.0.
- Severity
- 7.5 HighCVSS 2.0, NVD
- Exploit chance
- 16.2%EPSS, 96th percentile
- Exploitation
- None known1 public exploit
- Fixed in
1.4.0webrick +43 more
Description
WEBrick 1.3.1 in Ruby 1.8.6 through patchlevel 383, 1.8.7 through patchlevel 248, 1.8.8dev, 1.9.1 through patchlevel 376, and 1.9.2dev writes data to a log file without sanitizing non-printable characters, which might allow remote attackers to modify a window's title, or possibly execute arbitrary commands or overwrite files, via an HTTP request containing an escape sequence for a terminal emulator.
Exploit likelihood
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
webrickRubyGems | through 1.3.1 | 1.4.0 |
webrickRubyGems | before 1.4.0, plus listed versions 1.3.11.4.0.beta1 | 1.4.0 |
irbRed Hat:enterprise_linux:4::as From an advisory covering 4 CVEs | before 0:1.8.1-16.el4 | 0:1.8.1-16.el4 |
rubyRed Hat:enterprise_linux:4::as From an advisory covering 4 CVEs | before 0:1.8.1-16.el4 | 0:1.8.1-16.el4 |
ruby-debuginfoRed Hat:enterprise_linux:4::as From an advisory covering 4 CVEs | before 0:1.8.1-16.el4 | 0:1.8.1-16.el4 |
ruby-develRed Hat:enterprise_linux:4::as From an advisory covering 4 CVEs | before 0:1.8.1-16.el4 | 0:1.8.1-16.el4 |
ruby-docsRed Hat:enterprise_linux:4::as From an advisory covering 4 CVEs | before 0:1.8.1-16.el4 | 0:1.8.1-16.el4 |
ruby-libsRed Hat:enterprise_linux:4::as From an advisory covering 4 CVEs | before 0:1.8.1-16.el4 | 0:1.8.1-16.el4 |
ruby-modeRed Hat:enterprise_linux:4::as From an advisory covering 4 CVEs | before 0:1.8.1-16.el4 | 0:1.8.1-16.el4 |
ruby-tcltkRed Hat:enterprise_linux:4::as From an advisory covering 4 CVEs | before 0:1.8.1-16.el4 | 0:1.8.1-16.el4 |
Show 34 moreShow less
| Package | Affected | Fixed |
|---|---|---|
irbRed Hat:enterprise_linux:4::desktop From an advisory covering 4 CVEs | before 0:1.8.1-16.el4 | 0:1.8.1-16.el4 |
rubyRed Hat:enterprise_linux:4::desktop From an advisory covering 4 CVEs | before 0:1.8.1-16.el4 | 0:1.8.1-16.el4 |
ruby-debuginfoRed Hat:enterprise_linux:4::desktop From an advisory covering 4 CVEs | before 0:1.8.1-16.el4 | 0:1.8.1-16.el4 |
ruby-develRed Hat:enterprise_linux:4::desktop From an advisory covering 4 CVEs | before 0:1.8.1-16.el4 | 0:1.8.1-16.el4 |
ruby-docsRed Hat:enterprise_linux:4::desktop From an advisory covering 4 CVEs | before 0:1.8.1-16.el4 | 0:1.8.1-16.el4 |
ruby-libsRed Hat:enterprise_linux:4::desktop From an advisory covering 4 CVEs | before 0:1.8.1-16.el4 | 0:1.8.1-16.el4 |
ruby-modeRed Hat:enterprise_linux:4::desktop From an advisory covering 4 CVEs | before 0:1.8.1-16.el4 | 0:1.8.1-16.el4 |
ruby-tcltkRed Hat:enterprise_linux:4::desktop From an advisory covering 4 CVEs | before 0:1.8.1-16.el4 | 0:1.8.1-16.el4 |
irbRed Hat:enterprise_linux:4::es From an advisory covering 4 CVEs | before 0:1.8.1-16.el4 | 0:1.8.1-16.el4 |
rubyRed Hat:enterprise_linux:4::es From an advisory covering 4 CVEs | before 0:1.8.1-16.el4 | 0:1.8.1-16.el4 |
ruby-debuginfoRed Hat:enterprise_linux:4::es From an advisory covering 4 CVEs | before 0:1.8.1-16.el4 | 0:1.8.1-16.el4 |
ruby-develRed Hat:enterprise_linux:4::es From an advisory covering 4 CVEs | before 0:1.8.1-16.el4 | 0:1.8.1-16.el4 |
ruby-docsRed Hat:enterprise_linux:4::es From an advisory covering 4 CVEs | before 0:1.8.1-16.el4 | 0:1.8.1-16.el4 |
ruby-libsRed Hat:enterprise_linux:4::es From an advisory covering 4 CVEs | before 0:1.8.1-16.el4 | 0:1.8.1-16.el4 |
ruby-modeRed Hat:enterprise_linux:4::es From an advisory covering 4 CVEs | before 0:1.8.1-16.el4 | 0:1.8.1-16.el4 |
ruby-tcltkRed Hat:enterprise_linux:4::es From an advisory covering 4 CVEs | before 0:1.8.1-16.el4 | 0:1.8.1-16.el4 |
irbRed Hat:enterprise_linux:4::ws From an advisory covering 4 CVEs | before 0:1.8.1-16.el4 | 0:1.8.1-16.el4 |
rubyRed Hat:enterprise_linux:4::ws From an advisory covering 4 CVEs | before 0:1.8.1-16.el4 | 0:1.8.1-16.el4 |
ruby-debuginfoRed Hat:enterprise_linux:4::ws From an advisory covering 4 CVEs | before 0:1.8.1-16.el4 | 0:1.8.1-16.el4 |
ruby-develRed Hat:enterprise_linux:4::ws From an advisory covering 4 CVEs | before 0:1.8.1-16.el4 | 0:1.8.1-16.el4 |
ruby-docsRed Hat:enterprise_linux:4::ws From an advisory covering 4 CVEs | before 0:1.8.1-16.el4 | 0:1.8.1-16.el4 |
ruby-libsRed Hat:enterprise_linux:4::ws From an advisory covering 4 CVEs | before 0:1.8.1-16.el4 | 0:1.8.1-16.el4 |
ruby-modeRed Hat:enterprise_linux:4::ws From an advisory covering 4 CVEs | before 0:1.8.1-16.el4 | 0:1.8.1-16.el4 |
ruby-tcltkRed Hat:enterprise_linux:4::ws From an advisory covering 4 CVEs | before 0:1.8.1-16.el4 | 0:1.8.1-16.el4 |
rubyRed Hat:enterprise_linux:5::server From an advisory covering 5 CVEs | before 0:1.8.5-19.el5_6.1 | 0:1.8.5-19.el5_6.1 |
ruby-debuginfoRed Hat:enterprise_linux:5::server From an advisory covering 5 CVEs | before 0:1.8.5-19.el5_6.1 | 0:1.8.5-19.el5_6.1 |
ruby-develRed Hat:enterprise_linux:5::server From an advisory covering 5 CVEs | before 0:1.8.5-19.el5_6.1 | 0:1.8.5-19.el5_6.1 |
ruby-docsRed Hat:enterprise_linux:5::server From an advisory covering 5 CVEs | before 0:1.8.5-19.el5_6.1 | 0:1.8.5-19.el5_6.1 |
ruby-irbRed Hat:enterprise_linux:5::server From an advisory covering 5 CVEs | before 0:1.8.5-19.el5_6.1 | 0:1.8.5-19.el5_6.1 |
ruby-libsRed Hat:enterprise_linux:5::server From an advisory covering 5 CVEs | before 0:1.8.5-19.el5_6.1 | 0:1.8.5-19.el5_6.1 |
ruby-modeRed Hat:enterprise_linux:5::server From an advisory covering 5 CVEs | before 0:1.8.5-19.el5_6.1 | 0:1.8.5-19.el5_6.1 |
ruby-rdocRed Hat:enterprise_linux:5::server From an advisory covering 5 CVEs | before 0:1.8.5-19.el5_6.1 | 0:1.8.5-19.el5_6.1 |
ruby-riRed Hat:enterprise_linux:5::server From an advisory covering 5 CVEs | before 0:1.8.5-19.el5_6.1 | 0:1.8.5-19.el5_6.1 |
ruby-tcltkRed Hat:enterprise_linux:5::server From an advisory covering 5 CVEs | before 0:1.8.5-19.el5_6.1 | 0:1.8.5-19.el5_6.1 |
Public exploits
Links only. Every CVE stores no exploit code.
| Source | Link | Date |
|---|---|---|
| Exploit-DB | Ruby 1.9.1 - WEBrick 'Terminal Escape Sequence in Logs' Command Injection | 2010-01-11 |
What each source reports
NVD Score used 7.5
WEBrick 1.3.1 in Ruby 1.8.6 through patchlevel 383, 1.8.7 through patchlevel 248, 1.8.8dev, 1.9.1 through patchlevel 376, and 1.9.2dev writes data to a log file without sanitizing non-printable characters, which might allow remote attackers to modify a window's title, or possibly execute arbitrary commands or overwrite files, via an HTTP request containing an escape sequence for a terminal emulator.
- Record
CVE-2009-4492- CVSS 2.0
- 7.5 High
AV:N/AC:L/Au:N/C:P/I:P/A:P - Updated
- 2026-11-02
CVE ListNo score
WEBrick 1.3.1 in Ruby 1.8.6 through patchlevel 383, 1.8.7 through patchlevel 248, 1.8.8dev, 1.9.1 through patchlevel 376, and 1.9.2dev writes data to a log file without sanitizing non-printable characters, which might allow remote attackers to modify a window's title, or possibly execute arbitrary commands or overwrite files, via an HTTP request containing an escape sequence for a terminal emulator.
- Record
CVE-2009-4492- Updated
- 2026-11-02
EUVDEUVD-2017-0178No score
WEBrick 1.3.1 in Ruby 1.8.6 through patchlevel 383, 1.8.7 through patchlevel 248, 1.8.8dev, 1.9.1 through patchlevel 376, and 1.9.2dev writes data to a log file without sanitizing non-printable characters, which might allow remote attackers to modify a window's title, or possibly execute arbitrary commands or overwrite files, via an HTTP request containing an escape sequence for a terminal emulator.
- Record
EUVD-2017-0178- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-6mq2-37j5-w6r6No score
WEBrick Improper Input Validation vulnerability
WEBrick 1.3.1 in Ruby 1.8.6 through patchlevel 383, 1.8.7 through patchlevel 248, 1.8.8dev, 1.9.1 through patchlevel 376, and 1.9.2dev writes data to a log file without sanitizing non-printable characters, which might allow remote attackers to modify a window's title, or possibly execute arbitrary commands or overwrite files, via an HTTP request containing an escape sequence for a terminal emulator.
- Record
GHSA-6mq2-37j5-w6r6- Weakness
- CWE-20
- Updated
- 2026-11-02
OSVGHSA-6mq2-37j5-w6r6No score
WEBrick Improper Input Validation vulnerability
WEBrick 1.3.1 in Ruby 1.8.6 through patchlevel 383, 1.8.7 through patchlevel 248, 1.8.8dev, 1.9.1 through patchlevel 376, and 1.9.2dev writes data to a log file without sanitizing non-printable characters, which might allow remote attackers to modify a window's title, or possibly execute arbitrary commands or overwrite files, via an HTTP request containing an escape sequence for a terminal emulator.
- Record
GHSA-6mq2-37j5-w6r6- Weakness
- CWE-20
- Updated
- 2026-11-02
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| aliases | EUVD | |
| first indexed | CVE List, Exploit-DB, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
References
ruby-lang.org/en/news/2010/01/10/webrick-escape-sequence-injection
redhat.com/support/errata/RHSA-2011-0909.html
secunia.com/advisories/37949
vupen.com/english/advisories/2010/0089
redhat.com/support/errata/RHSA-2011-0908.html
ush.it/team/ush/hack_httpd_escape/adv.txt
Show 39 moreShow less
securityfocus.com/bid/37710
securityfocus.com/archive/1/508830/100/0/threaded
securitytracker.com/id?1023429
nvd.nist.gov/vuln/detail/CVE-2009-4492
github.com/advisories/GHSA-6mq2-37j5-w6r6
web.archive.org/web/20100113155532/http://www.vupen.com/english/advisories/2010/0089
web.archive.org/web/20100815010948/http://secunia.com/advisories/37949
web.archive.org/web/20170402100552/http://securitytracker.com/id?1023429
web.archive.org/web/20170908140655/http://www.securityfocus.com/archive/1/508830/100/0/threaded
web.archive.org/web/20200228145937/http://www.securityfocus.com/bid/37710
github.com/rubysec/ruby-advisory-db/blob/master/gems/webrick/CVE-2009-4492.yml
github.com/ruby/webrick
access.redhat.com/errata/RHSA-2011:0908
access.redhat.com/security/updates/classification
ruby-lang.org/en/news/2011/02/18/exception-methods-can-bypass-safe
ruby-lang.org/en/news/2010/08/16/xss-in-webrick-cve-2010-0541
bugzilla.redhat.com/show_bug.cgi?id=554485
bugzilla.redhat.com/show_bug.cgi?id=587731
bugzilla.redhat.com/show_bug.cgi?id=678920
bugzilla.redhat.com/show_bug.cgi?id=682332
security.access.redhat.com/data/csaf/v2/advisories/2011/rhsa-2011_0908.json
access.redhat.com/security/cve/CVE-2009-4492
cve.org/CVERecord?id=CVE-2009-4492
access.redhat.com/security/cve/CVE-2010-0541
cve.org/CVERecord?id=CVE-2010-0541
nvd.nist.gov/vuln/detail/CVE-2010-0541
access.redhat.com/security/cve/CVE-2011-0188
cve.org/CVERecord?id=CVE-2011-0188
nvd.nist.gov/vuln/detail/CVE-2011-0188
access.redhat.com/security/cve/CVE-2011-1005
cve.org/CVERecord?id=CVE-2011-1005
nvd.nist.gov/vuln/detail/CVE-2011-1005
access.redhat.com/errata/RHSA-2011:0909
ruby-lang.org/en/news/2011/02/18/fileutils-is-vulnerable-to-symlink-race-attacks
bugzilla.redhat.com/show_bug.cgi?id=678913
security.access.redhat.com/data/csaf/v2/advisories/2011/rhsa-2011_0909.json
access.redhat.com/security/cve/CVE-2011-1004
cve.org/CVERecord?id=CVE-2011-1004
nvd.nist.gov/vuln/detail/CVE-2011-1004