CVE:CVE-2006-2866
CNNVD:CNNVD-200606-132
dotClear是一个的基于PHP和MySQL的Blog系统。
dotClear的实现上存在输入验证漏洞，远程攻击者可能利用此漏洞在服务器上以Web进程权限执行任意命令。
在dotClear的layout/prepend.php文件78-104行：
...
# Variable de conf
$theme_path = $blog_dc_path.'/themes/';
$theme_uri = dc_app_url.'/themes/';
$img_path = dc_img_url;
# D?finition du th?me et de la langue
$__theme = dc_theme;
$__lang = dc_default_lang;
# Ajout des functions.php des plugins
$objPlugins = new plugins(dirname(__FILE__).'/../'.DC_ECRIRE.'/tools/');
foreach ($objPlugins->getFunctions() as $pfunc) {
        require_once $pfunc;
}
# D?finition du template
if (!is_dir($theme_path.$__theme)) {
        header('Content-type: text/plain');
        echo 'Le th?me '.$__theme.' n\'existe pas';
        exit;
}
if (file_exists($theme_path.$__theme.'/template.php')) {
        $dc_template_file = $theme_path.$__theme.'/template.php';
} else {
        $dc_template_file = $theme_path.'default/template.php';
}
echo $dc_template_file;
# Prepend du template s'il existe
if (file_exists(dirname($dc_template_file).'/prepend.php')) {
        require dirname($dc_template_file).'/prepend.php';
}
...
没有正确的过滤$blog_dc_path变量。在PHP5中，由于is_dir()和file_exists()函数支持ftp wrapper，因此攻击者可以从远程资源在themes/default/文件夹中包含任意prepend.php文件并执行PHP代码。
solution:Upgrade dotclear dotclear to a higher version than 1.2.1,1.2.2,1.2.3,1.2.4,and avoid the version 1.2.1,1.2.2,1.2.3,1.2.4