CVE-2026-33647WWBN AVideo是一款广泛使用的开源视频平台。在其26.0及更早的版本中,ImageGallery组件存在严重的文件上传逻辑缺陷。该漏洞源于saveFile()方法虽然利用finfo对文件内容的MIME类型进行了校验,但在生成服务器端存储文件名时,直接沿用了用户原始上传的文件后缀,缺失了关键的白名单过滤机制。攻击者利用此缺陷,可上传伪装成图片但内嵌恶意PHP代码的多态文件,绕过检测并在服务器端解析执行,从而获取系统最高权限。
漏洞核心在于AVideo的文件上传处理逻辑存在“双重验证”的不一致性。系统首先通过`finfo_file()`函数分析文件内容的二进制魔数以确定MIME类型(如image/jpeg),这一步看似安全,但随后在生成最终文件名时,错误地信任了HTTP请求中`filename`字段的扩展名。攻击者可以制作一个“多态文件”,文件头部包含合法的JPEG图片十六进制数据(如FF D8 FF),尾部附加恶意的PHP脚本代码(如`<?php system($_GET['cmd']); ?>`)。当攻击者将该文件重命名为`shell.php`并上传时,`finfo`识别为图片而放行,但服务器将其保存为`.php`文件。由于文件存储在Web可访问目录下,攻击者通过浏览器直接访问该文件URL,Web服务器会将文件作为PHP脚本解析并执行其中的恶意代码。这种利用方式无需用户交互,且仅需低权限账户即可触发,导致服务器被完全控制。