SQL-Ledger Directory Traversal Bug Lets Remote Users View or Write Files and Execute Arbitrary Code
SecurityTracker Alert ID: 1017715|
SecurityTracker URL: http://securitytracker.com/id/1017715
(Links to External Site)
Updated: May 18 2008|
Original Entry Date: Mar 2 2007
Disclosure of system information, Disclosure of user information, Execution of arbitrary code via network, Modification of user information, User access via network|
Exploit Included: Yes |
Version(s): potentially affects 2.6.24 and prior versions|
A vulnerability was reported in SQL-Ledger. A remote user can view or modify files on the target system. A remote user can execute arbitrary code on the target system.|
The software does not properly validate user-supplied input. A remote user can supply a specially crafted path to exploit a flaw in the blacklisting function and view files on target system, overwrite files on the target system, or execute arbitrary Perl code on the target system.
The vendor has been notified.
Chris Travers reported this vulnerability.
A remote user can view or modify files on the target system.|
A remote user can execute arbitrary code on the target system with the privileges of the target web service.
No solution was available at the time of this entry.|
Vendor URL: www.sql-ledger.org/ (Links to External Site)
Input validation error|
|Underlying OS: Linux (Any), UNIX (Any), Windows (Any)|
Source Message Contents
Subject: Full disclosure: Directory Transversal and Arbitrary Code Execution|
This is a multi-part message in MIME format.
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Another security issue has been found in LedgerSMB < 1.1.5 and all
versions of SQL-Ledger which allows an attacker to engage in directory
transversal, retrieval of sensitive information, user account
fabrication, or even arbitrary code execution. This was fixed in
LedgerSMB 1.1.5 and despite ample warning, the maintainer of SQL-Ledger
has not corrected the problem.
The problem occurs because the blacklisting functions for the text
editor strip out potentially dangerous targets rather than denying
access when a problem is detected. The stripping of such "dangerous"
elements involves first stripping the $userpath (usually users) and then
the $memberfile (by default users/members) and then opening the file
So, to go up two levels and open foo.txt, you could pass a url
containing the argument of file=.users./users/members./foo.txt to the
url for editing the template. After these are stripped out, you are
left with ../../foo.txt. You can also retrieve the memberfile by using
the path of file=useuserusers/memberssrs/members. Then by crafting a
similar URL or by altering the web page to post custom variables, you
can cause the application to overwrite this file, possibly deleting or
changing passwords, or adding user accounts.
This can also be used to cause arbitrary code to be executed as well.
SQL-Ledger and LedgerSMB < 1.2 rely on server-writable and executable
Perl scripts to store user preferences. These scripts are run at every
page load, are created on login, and destroyed at logout. Using the
same method, you can add arbitrary Perl code to the end of these files
causing that to be loaded the next time the target user loads a page.
Content-Type: text/x-vcard; charset=utf-8;