文件恶意上传漏洞公告

2023-10-30 15:40:19   

漏洞说明

泄漏了 APP_KEY 的网站才会触发此漏洞。

由于网站在安装初始化时会自动随机生成 APP_KEY,因此如果网站 .env 文件中的 APP_KEY 未泄漏,不会触发此漏洞。

解决办法

① 使用了更多信息生成文件Hash,避免单一APP_KEY泄漏造成的问题。

② 恶意文件后缀判断。

漏洞修复

升级系统到最新版,保证 MSCore 版本在 ≥3.8.0。

或者参照以下手动升级:

修改 vendor/modstart/modstart/src/Core/Util/FileUtil.php 的 savePathToLocalTemp 方法为如下

public static function savePathToLocalTemp($path, $ext = null, $downloadStream = false)
{
    // ...  其他代码 ...  
    if (empty($ext)) {
        $ext = self::extension($path);
    }
    $ext = ltrim(strtolower($ext), '.');
    BizException::throwsIf('Unsupported Path Extension', in_array($ext, [
        'php', 'php3', 'php4', 'php5', 'phps', 'phtml',
    ]));
    $securityKey = md5(json_encode(config('env')));
    $tempPath = public_path('temp/' . md5($securityKey . ':' . $path) . '.' . $ext);
    if (file_exists($tempPath)) {
        return $tempPath;
    }
    // ...  其他代码 ...
}


或可参照提交中 FileUtil 相关修改自行完成修改。

https://gitee.com/modstart-lib/modstart/commit/63f37bec417617dd215c04dd94762668848d73af

https://github.com/modstart-lib/modstart/commit/63f37bec417617dd215c04dd94762668848d73af

QQ
微信