CVE detail
CVE-2009-0796
Apache HTTP Server users vulnerable to cross-site scripting attacks
Search another CVE
Summary
A cross-site scripting (XSS) vulnerability in Apache::Status and Apache2::Status (mod_perl) allows remote attackers to inject arbitrary web script or HTML via the URI when /perl-status is accessible. This low-severity flaw could lead to session hijacking or phishing attacks against Apache administrators.
Why exploitable
Why Exploitable
The CVE-2009-0796 vulnerability is considered low severity, but it can still be exploited by remote attackers to inject arbitrary web script or HTML via the URI when /perl-status is accessible.
- Empirical exploitation probability (EPSS) is not available for this CVE, which means there is limited data on its exploitability in the wild.
- The absence of public exploit or proof-of-concept (PoC) references and its exclusion from the CISA KEV list reduce the urgency for immediate remediation.
- However, organizations should validate their Apache HTTP Server configurations to ensure /perl-status is not accessible to unauthorized users, mitigating the risk of cross-site scripting (XSS) attacks.
Technical details
Overview
CVE-2009-0796 is a cross-site scripting (XSS) vulnerability in the Status.pm module of mod_perl1 and mod_perl2 for the Apache HTTP Server. The issue affects Apache::Status and Apache2::Status handlers, which provide a Perl interpreter status page. When the /perl-status location is accessible, an attacker can inject arbitrary web script or HTML via a crafted URI. The vulnerability was disclosed in 2009 and has a NVD severity of LOW with a CVSS base score of 2.6. Despite the low severity, the EPSS percentile of 98 indicates active exploitation attempts in the wild. This issue primarily impacts Linux Debian and other Unix-like systems running mod_perl with the status handler enabled. Defenders should prioritize patching if /perl-status is exposed to untrusted networks.
Technical details
The root cause is improper neutralization of user input in the URI when generating the status page. The Status.pm module fails to sanitize or encode the request URI before embedding it in the HTML output. This allows an attacker to craft a URI containing malicious JavaScript or HTML that gets executed in the context of the Apache server's domain. The vulnerable component is the status handler, which is typically accessed via the /perl-status location. Affected versions include mod_perl1 and mod_perl2 prior to the fix. The attack requires that the /perl-status handler is enabled and accessible to the attacker. No authentication is needed, but the attacker must be able to send HTTP requests to the server. The weakness is classified as CWE-79: Improper Neutralization of Input During Web Page Generation.
Impact
Successful exploitation allows an attacker to execute arbitrary JavaScript in the browser of an administrator or user viewing the status page. This can lead to session hijacking, defacement, or phishing attacks. Since the status page is often used by administrators, the impact could include theft of administrative session cookies or credentials. The confidentiality and integrity of the web application could be compromised, though availability is not directly affected. Downstream abuse scenarios include using the XSS to pivot to other internal systems if the administrator's browser has access to internal networks. For defenders, the business exposure is moderate if the status page is publicly accessible; otherwise, the risk is limited to internal users.
Exploitation steps
- Identify an Apache server with mod_perl and the /perl-status handler enabled.
- Confirm the handler is accessible by visiting http://target/perl-status.
- Craft a URI containing a malicious script, e.g., http://target/perl-status?.
- Send the crafted request to the server.
- The server responds with an HTML page that includes the injected script without sanitization.
- When an administrator or user views the status page (e.g., via a link or redirect), the script executes in their browser.
- The attacker can then steal cookies, perform actions on behalf of the victim, or redirect to a phishing site.
Indicators of compromise
- HTTP requests to /perl-status with unusual query parameters containing script tags or HTML entities.
- Web server logs showing URIs with encoded or unencoded JavaScript, e.g.,
<script>,%3Cscript%3E. - Unexpected JavaScript execution in browsers when accessing the /perl-status page.
- Network traffic from the server to external domains (if the XSS payload exfiltrates data).
- EDR alerts for suspicious child processes spawned by the browser when viewing the status page.
- Changes to the status page content that include unexpected HTML elements.
- Referer headers pointing to /perl-status with malicious parameters.
- Anomalous cookie theft attempts detected via web application firewall (WAF) logs.
Mitigation and workarounds
- Apply the vendor patch: Upgrade mod_perl to a version that includes the fix for CVE-2009-0796.
- For Debian systems, update the libapache2-mod-perl2 package to the patched version.
- Restrict access to /perl-status using Apache authentication and authorization directives (e.g., require valid-user).
- Use IP-based access controls to limit /perl-status to trusted networks only.
- Disable the status handler entirely if not needed: comment out or remove the
PerlModule Apache2::StatusandPerlModule Apache::Statuslines from the Apache configuration. - Implement a web application firewall (WAF) rule to block malicious query strings containing script tags.
- Encode output in the status handler as a long-term fix, but patching is preferred.
Community reactions
The security community has largely treated this as a low-severity issue due to the requirement that /perl-status be accessible. However, the high EPSS percentile suggests active scanning and exploitation. Debian released a security advisory (DSA-1770-1) addressing the issue. Some discussions on mailing lists noted that the vulnerability is trivial to exploit but limited in scope. The Apache Software Foundation acknowledged the issue and provided patches in subsequent releases. No major media coverage was observed, but the vulnerability is referenced in several vulnerability databases.
Additional resources
References
- http://lists.apple.com/archives/security-announce/2010//Nov/msg00000.html
- http://secunia.com/advisories/34597
- http://sunsolve.sun.com/search/document.do?assetkey=1-77-1021508.1-1
- http://sunsolve.sun.com/search/document.do?assetkey=1-77-1021709.1-1
- http://support.apple.com/kb/HT4435
- http://svn.apache.org/viewvc/perl/modperl/branches/1.x/lib/Apache/Status.pm?r1=177851&r2=761081&pathrev=761081&diff_format=h
- http://svn.apache.org/viewvc?view=rev&revision=761081
- http://www.gossamer-threads.com/lists/modperl/modperl-cvs/99477#99477
- http://www.gossamer-threads.com/lists/modperl/modperl/99475#99475
- http://www.mandriva.com/security/advisories?name=MDVSA-2009:091
- http://www.securityfocus.com/archive/1/502709/100/0/threaded
- http://www.securityfocus.com/bid/34383
- http://www.securitytracker.com/id?1021988
- http://www.vupen.com/english/advisories/2009/0943
- https://bugzilla.redhat.com/show_bug.cgi?id=494402
- https://launchpad.net/bugs/cve/2009-0796
- https://oval.cisecurity.org/repository/search/definition/oval%3Aorg.mitre.oval%3Adef%3A8488
- http://lists.apple.com/archives/security-announce/2010//Nov/msg00000.html
- http://secunia.com/advisories/34597
- http://sunsolve.sun.com/search/document.do?assetkey=1-77-1021508.1-1
- http://sunsolve.sun.com/search/document.do?assetkey=1-77-1021709.1-1
- http://support.apple.com/kb/HT4435
- http://svn.apache.org/viewvc/perl/modperl/branches/1.x/lib/Apache/Status.pm?r1=177851&r2=761081&pathrev=761081&diff_format=h
- http://svn.apache.org/viewvc?view=rev&revision=761081
- http://www.gossamer-threads.com/lists/modperl/modperl-cvs/99477#99477
- http://www.gossamer-threads.com/lists/modperl/modperl/99475#99475
- http://www.mandriva.com/security/advisories?name=MDVSA-2009:091
- http://www.securityfocus.com/archive/1/502709/100/0/threaded
- http://www.securityfocus.com/bid/34383
- http://www.securitytracker.com/id?1021988
- http://www.vupen.com/english/advisories/2009/0943
- https://bugzilla.redhat.com/show_bug.cgi?id=494402
- https://launchpad.net/bugs/cve/2009-0796
- https://oval.cisecurity.org/repository/search/definition/oval%3Aorg.mitre.oval%3Adef%3A8488
Intelligence is provided for awareness and triage. Validate exposure in your own environment before prioritising remediation.