AOH :: HP Unsorted C :: B06-1026.HTM

Horde v3.09 and prior unauthenticated arbitrary file read
CodeScan Advisory: Unauthenticated Arbitrary File Read in Horde v3.09 and prior
CodeScan Advisory: Unauthenticated Arbitrary File Read in Horde v3.09 and prior

This is a multi-part message in MIME format...

Content-Class: urn:content-classes:message
Content-Type: text/plain;
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

======================================================================== CodeScan Advisory,  
= Unauthenticated Arbitrary File Read in Horde v3.09 and prior
= Vendor Website: 
= Affected Version:
=    Versions prior to and including v3.09
= Researched By
= Paul Craig  
= Public disclosure on March 15th, 2006
== Overview =
CodeScan Labs (, has recently released a new source 
code scanning tool, CodeScan. CodeScan is an advanced auditing tool 
designed to check web application source code for security vulnerabilities.
CodeScan utilises an intelligent source code parsing engine, traversing 
execution paths and tracking the flow of user supplied input.

During the beta testing of CodeScan PHP, Horde v3.09 was selected as 
one of the test applications.

This advisory is the result of research into the security of Horde, based
on the report generated by the CodeScan tool.

CodeScan Labs has also worked with the vendor of horde to ensure future
versions of the product are secure.

== Affected Versions =
Although all versions of horde v3.09 and prior are vulnerable to this
attack, many distrubitions of PHP are not vulnerable by default.
This vulnerability was tested and exploited on a default Fedora Core 4
install, although several horde developers were unable to reproduce this 
vulnerability on Debian based servers.

== Vulnerability Details =
In the file /services/go.php, an insecure call is made to the readfile()

This can be seen in the code below.
$_GET['url'] = trim($_GET['url']);

if (get_magic_quotes_gpc()) {
    $url = @parse_url(trim(stripslashes($_GET['url'])));
} else {
    $url = @parse_url(trim($_GET['url']));

if (empty($url) || empty($url['host'])) {

if ((!empty($_SERVER['SERVER_NAME']) &&
     $_SERVER['SERVER_NAME'] == $url['host']) ||
    (!empty($_SERVER['HTTP_HOST']) &&
     $_SERVER['HTTP_HOST'] == $url['host'])) {


// Pass through image content if requested.
if (!empty($_GET['untrusted'])) {
Calls to parse_url attempt to sanitise the input through
the requirement of an http:// type string.

Embedding a NULL character within the URL variable enables 
an attacker to control the variable passed to readfile()
leading to the reading of any file on the file system with
the privileges of the web server.

== Solutions =
CodeScan Labs has been in contact with Horde and a new version of 
the software has been released to address the discovered

Users are advised to upgrade to version 3.1 
== Credit =
Discovered and advised to Horde 4th March, 2006 by Paul Craig of

== About CodeScan Labs Ltd =
CodeScan Labs is specialist security research and development
organisation, that has developed the cornerstone application, CodeScan.
CodeScan Labs helps organisations secure their web services through the
automated scanning of the web application source code for security
vulnerabilities.  The CodeScan product is currently available for ASP
and PHP(Beta)

== About = is Australasia's only pure play security
company, specialising in security audit, assurance and advice services.
Assisting large and medium size Enterprises who require true independent
measurement of their security compliance at all levels.

e-mail protected and scanned by Bizo Email Filter - powered by Advascan


The entire AOH site is optimized to look best in Firefox® 3 on a widescreen monitor (1440x900 or better).
Site design & layout copyright © 1986-2015 AOH
We do not send spam. If you have received spam bearing an email address, please forward it with full headers to