phpBB Flaw in 'viewtopic.php' Highlighting Code May Let Remote Users Execute Arbitrary Commands
SecurityTracker Alert ID: 1014320|
SecurityTracker URL: http://securitytracker.com/id/1014320
(Links to External Site)
Date: Jun 28 2005
Execution of arbitrary code via network, User access via network|
A vulnerability was reported in phpBB in the highlighting code in 'viewtopic.php'. A remote user may be able to execute arbitrary commands on the target system.|
The script does not properly use the preg_replace() function on a user-supplied string, which may cause the string to be interepreted as PHP code.
The underlying flaw is based on an older vulnerability in versions prior to 2.0.11 that was not properly corrected.
The vendor was notified on June 23, 2005.
Ron van Daal reported this vulnerability.
A remote user may be able to execute arbitrary commands on the target system with the privileges of the target web service.|
The vendor has released a fixed version (2.0.16), available at:|
Vendor URL: www.phpbb.com/ (Links to External Site)
Input validation error|
|Underlying OS: Linux (Any), UNIX (Any), Windows (Any)|
Source Message Contents
Subject: Security Advisory - phpBB 2.0.15 PHP-code injection bug|
Security Advisory -//- phpBB 2.0.15 PHP-code injection bug
Program: phpBB 2.0.15 and older versions
Risk: Very High
Date: June 28 2005
Title: PHP-code injection bug
Type: partial disclosure
Author: Ron van Daal :.
Vendor notified: June 23 2005
phpBB is a high powered, fully scalable, and highly customizable
Open Source bulletin board package. Based on the PHP server language
and supporting a variety of backend database servers.
Due to a bug in the phpBB highlighting code it's possible to inject
PHP-code into the running script. E.g. It's possible to run system
commands if the PHP interpreter allows system() and simular functions.
This is actually based on an old bug which was improperly fixed in
The highlighting code uses the preg_replace() function on line 1110
in viewtopic.php. It uses the special modifier "e" which causes PHP
to evaluate the replacement string as PHP code. Below is a PHP code
example of what actually happens:
This causes PHP to execute the phpinfo() function. Usage of the
preg_replace special modifier "e" should be avoided if possible.
Proof of concept:
Sorry, partial disclosure advisory.
Upgrade to phpBB version 2.0.16 or edit viewtopic.php on line #1110:
Change this: str_replace('\\', '\\\\', $highlight_match)
Into this: str_replace('\\', '\\\\', addslashes($highlight_match))
Synto(nix) && Doqnach @Umbranet #unixtalk
Theo de Raadt: "BSD guys are a lot like Linux guys, except they have kissed girls"
Methinks: "FreeBSD guys are a lot like OpenBSD guys, except they have fscked girls"