CVE-2026-33681WWBN AVideo是一个广泛使用的开源视频平台。在26.0及以下版本中,系统存在严重的安全漏洞。具体而言,`objects/pluginRunDatabaseScript.json.php`接口在处理POST请求的`name`参数时,未对其进行充分的安全过滤,直接将其传递给`Plugin::getDatabaseFileName()`函数。这一缺陷允许经过身份验证的管理员(或通过跨站请求伪造CSRF诱骗管理员的攻击者)利用路径遍历技术(如`../`)跳出受限的插件目录。攻击者可以读取并执行文件系统上任意位置的`install/install.sql`文件内容,将其作为原始SQL查询在应用数据库上运行。该漏洞可能导致数据泄露、数据篡改甚至服务器被完全控制。
该漏洞的根本原因是缺乏对用户输入路径的规范化校验。在受影响版本中,`objects/pluginRunDatabaseScript.json.php`脚本接收用户提交的`name`参数,该参数本意用于指定插件名称以运行相应的数据库脚本。然而,代码逻辑直接拼接路径并调用`Plugin::getDatabaseFileName()`,未对`../`等跳转字符进行清洗。攻击者可以构造包含路径遍历序列的Payload(例如`../../../var/www/html/uploads`),使得系统最终读取路径如`/var/www/html/uploads/install/install.sql`的文件。由于系统会无条件执行该SQL文件中的内容,如果攻击者能够控制文件系统上的文件(例如通过上传功能写入恶意SQL语句),即可在数据库上下文中执行任意SQL命令,实现SQL注入或数据写入。修复补丁(Commit 81b591c)通过引入路径验证机制,确保指定的路径必须在插件目录范围内,从而防止了目录逃逸攻击。