##########################################################
# GulfTech Security Research September 20, 2008
##########################################################
# Vendor : Electron Inc.
# URL : http://www.anelectron.com/
# Version : AEF Forum <= 1.0.6
# Risk : Remote Code Execution
##########################################################
Description:
Advanced Electron Forum also known as AEF Forum is a full featured
online forum system written in php that allows webmasters and site
owners to host their own discussion forums within their website.
The Advanced Electron Forum software comes bundled with the popular
MKPortal package, but is also available as a free stand alone forum.
Unfortunately there are multiple remote code execution issues within
AEF that allow for an attacker to execute arbitrary php code with
privileges of the affected webserver. This is due to the improper
handling of evaluated bbcode within AEF Forum. Users should upgrade
their forums as soon as possible.
Remote Code Execution:
There is a serious security issue within AEF Forums that allows for
forum users to easily execute arbitrary php code on the affected
webserver. This issue is due to AEF Forums sending wildcard matches
to the replacement parameter of preg_replace function, within double
quotes, while the eval switch is present. Below is one of the many
examples of the security issues within the bbcode handling of AEF.
//Email Links
if($globals['bbc_email']){
$text = preg_replace(
array("/\[email=(.*?)\](.*?)\[\/email\]/ies",
"/\[email\](.*?)\[\/email\]/ies"),
array('check_email("$1", "$2")',
'check_email("$1", "$1")'), $text);
}
As we can see from the above code, a wildcard match is used to gather
the matches sent to replacement parameter for evaluation. This is bad
because an attacker can use complex variable syntax within an [email]
tag (other tags are also vulnerable) and have it executed as php code.
[email]{${phpinfo()}}[/email]
If the above bb code was posted to a vulnerable AEF Forum then the php
within the tags would be executed. In this case the php code is simply
a phpinfo() call, but of course, other attacks are possible.
Solution:
Thanks to Jim Haslip for his help with communicating this issue to
developers. Users should upgrade as soon as possible.
Credits:
James Bercegay of the GulfTech Security Research Team
Related Info:
The original advisory can be found at the following location
http://www.gulftech.org/?node=research&article_id=00131-09202008