|
COMMAND BSCW SYSTEMS AFFECTED BSCW 3.x PROBLEM 'neovatar' found following. Malicious user can read every file on system that BSCW UID can read. BSCW is a groupware system that runs on a webserver. While playing around with symlinks and how the BSCW system handles them, he noticed that it follows symlinks. Since it offers users the ability to extract .tar files into their "data-bag" (private space), symlink following can be exploited by a malicious user. To to this he/she needs to create a .tar file that contains a symlink, pointing to a file he/she wants to read. After this .tar file has been uploaded to the BSCW server and extracted by clicking on the "extract" menu option, the "data-bag" of the user contains the symlink as a BSCW data object. Clicking on it will make the BSCW system follow the symlink and retrieve the target file, so the user is able to download/view it. Example: my_host:/tmp/>ln -s /etc/passwd testlink my_host:/tmp/>tar cvf testlink.tar testlink After uploading it to the BSCW server and extracting it, you can click on the "testlink" item in your "data-bag" and retrieve the /etc/passwd file of the server. Basically the attacker can view any file on a system, as long as the UID, under which the BSCW system is running, could access it. In most cases this will be the same UID as the webserver UID (nobody, wwwrun). This can give the malicious user access to BSCW data items, he could normally not read, or worse, it could be used to retrieve the BSCW password file for cracking other user passwords or information gathering for further system penetration. The early "op_extract" fixes that but leaves a few other exploitable issues. Another vulnerability consists in the standard installation which includes a call of "zip" tool when converting .tar files to .zip files. After the "op_extract" patch you could not access the symlink, since the new extract function checks for symlinks after tar is called. By converting the attackers .tar file to a .zip file, zip will follow the symlink and pack the file, which was targeted by the link. If you have customized calls to external programs (e.g. packer conversion utilities) in your BSCW system configuration, you should check if symlink following can be exploited). SOLUTION The latest patch "untar.py" introduces a wrapper, which looks for symlinks and seem to fix all symlink vulnerabilities. You can download the patches and view the installation instructions at http://bscw.gmd.de/pycXX where XX is the version of your installed python package (e.g. http://bscw.gmd.de/pyc20 for python 2.0).