-----BEGIN PGP SIGNED MESSAGE-----
-= Security Advisory =-
Advisory: PunBB arbitrary PHP code inclusion vulnerability
Release Date: 2005/08/05
Last Modified: 2005/08/05
Author: Stefan Esser [email@example.com]
Application: PunBB <= 1.2.5
Severity: A wrongly implemented feature of PunBB's template
system, can lead to execution of arbitrary
Vendor Status: Vendor has released an updated version
Quote from http://www.punbb.org
"In short, PunBB is a fast and lightweight PHP powered discussion
board. It is released under the GNU Public License. Its primary goal
is to be a faster, smaller and less graphic alternative to otherwise
excellent discussion boards such as phpBB, Invision Power Board or
vBulletin. PunBB has fewer features than many other discussion
boards, but is generally faster and outputs smaller pages."
An audit of PunBB has revealed that the <pun_include ""> feature of
its template system, can also be used by external attackers to execute
arbitrary PHP code on the webserver.
The PunBB template systems knows the command <pun_include "filename">,
which allows inclusion of PHP code from within templates.
During an audit we realised an implementation flaw of this feature.
pun_include commands are evaluated after the whole page is already
generated and therefore any kind of XSS vulnerability in PunBB
could be used to include arbitrary PHP scripts on the webserver.
Remote includes are not possible, because the filename is prepended
with the PunBB root dir. However PunBB supports uploadable avatar
pictures and therefore a potential attacker could register with the
forum and upload a picture with evil PHP code appended to it.
After having prepared the server in this way, he can inject a
<pun_include> command f.e. through the redirect_url parameter of
the login formular and so include the file.
If the attacker doesn't prepare the server he can still retrieve
any file reachable by the webserver with this method. In case
register_globals is turned on, he doesn't need an account on the
forum at all to perform the attack. (But of course without an
account he won't be able to upload a malicious avatar picture)
Proof of Concept:
The Hardened-PHP Project is not going to release an exploit
for this vulnerability to the public.
27. June 2005 - Contacted firstname.lastname@example.org via email
28. July 2005 - Discussed solution possibilities with vendor
07. July 2005 - Vendor releases bugfixed version
08. July 2005 - Public disclosure
We strongly recommend to upgrade to the vendor supplied
pub 1024D/0A864AA1 2004-04-17 Hardened-PHP Signature Key
Key fingerprint = 066F A6D0 E57E 9936 9082 7E52 4439 14CC 0A86 4AA1
Copyright 2005 Stefan Esser. All rights reserved.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org
-----END PGP SIGNATURE-----