Full disclosure: Directory Transversal and Arbitrary Code Execution Vulnerability in SQL-Ledger and LedgerSMB



Hi all;

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 that remains.

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.

Best Wishes,
Chris Travers
begin:vcard
fn:Chris Travers
n:Travers;Chris
email;internet:chris@xxxxxxxxxxxxxxxx
tel;work:509-888-0220
tel;cell:509-630-7794
x-mozilla-html:FALSE
version:2.1
end:vcard



Relevant Pages

  • DoS and code execution issue in LedgerSMB < 1.1.5 and SQL-Ledger < 2.6.25
    ... A person on the LedgerSMB core team has found a serious arbitrary code execution issue in LedgerSMB prior to 1.1.5 and SQL-Ledger. ...
    (Bugtraq)
  • ACLS ineffective in SQL-Ledger and LedgerSMB
    ... LedgerSMB is also affected but the problem has been mentioned in our documentation since the fork. ... Ordinarily I would not make a big deal out of this (since we are already clear about why we suggest using db accounts for security), but I feel that DWS is misrepresenting the security of SQL-Ledger and I think people need to be aware of the risk. ... The access control lists associated with users in SQL-Ledger and LedgerSMB do nothing more than enable or disable menu items. ...
    (Bugtraq)
  • LedgerSMB 1.0.0 and SQL-Ledger 2.6.18 and earler arbitrary code execution
    ... A directory transversal issue was found in LedgerSMB 1.0.0 involving the terminal variable. ... This vulnerability was inherited from the SQL-Ledger codebase. ... Due to the fact that SQL-Ledger has a built-in text editor, this issue could result in arbitrary code execution on the server. ... The SQL-Ledger and LedgerSMB teams have both released patches to these vulnerabilities. ...
    (Bugtraq)
  • LedgerSMB 1.2.0 finally released, fixes CVE-2006-5589
    ... completing a comprehensive SQL injection audit of the code inherited from SQL-Ledger. ... Those who maintain security advisory lists should list CVE-2006-5589 as now officially closed for LedgerSMB, though it is likely to remain open for SQL-Ledger. ... Chris Travers ...
    (Bugtraq)