CVE detail

CVE-2009-0796

Apache HTTP Server users vulnerable to cross-site scripting attacks

LowModified
CVSS2.6
EPSS
Exploitability4
Exploit refs0

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.

Published

Apr 8, 2009

Last modified

Jun 17, 2026

CWE

CWE-79 · Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Affected product

cpe:2.3:a:apache:mod_perl:1:*:*:*:*:*:*:* cpe:2.3:a:apache:mod_perl:2:*:*:*:*:*:*:*

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

  1. Identify an Apache server with mod_perl and the /perl-status handler enabled.
  2. Confirm the handler is accessible by visiting http://target/perl-status.
  3. Craft a URI containing a malicious script, e.g., http://target/perl-status?.
  4. Send the crafted request to the server.
  5. The server responds with an HTML page that includes the injected script without sanitization.
  6. When an administrator or user views the status page (e.g., via a link or redirect), the script executes in their browser.
  7. 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::Status and PerlModule Apache::Status lines 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

Intelligence is provided for awareness and triage. Validate exposure in your own environment before prioritising remediation.

CVE-2009-0796 · Apache HTTP Server users vulnerable to cross-site scripting attacks | CVE Intelligence | Trusteed