CVE-2026-43877WWBN AVideo是一个开源视频平台。在29.0及更低版本中,存在一个跨站请求伪造(CSRF)漏洞。该漏洞位于旧的个人资料照片端点`objects/userSavePhoto.php`中。由于该文件未包含在全局自动CSRF保护范围内(仅以`.json.php`结尾的文件受保护),且缺乏CSRF令牌验证和来源检查,加上默认Cookie策略为`SameSite=None`,攻击者可以诱导已登录用户访问恶意页面。这将导致攻击者能够利用用户的身份覆写个人资料照片为任意字节,并在每次伪造请求时触发站点范围的`clearCache(true)`操作,可能造成数据篡改或服务拒绝。
该漏洞的核心原因在于`objects/userSavePhoto.php`端点缺乏有效的CSRF防御机制。具体来说,该文件接受一个名为`base64`的POST参数,将其解码并写入到`videos/userPhoto/photo<users_id>.png`路径。虽然该端点检查了`User::isLogged()`以确保请求来自已认证会话,但它被排除在项目的全局`autoCSRFGuard`机制之外,因为该机制仅应用于后缀为`.json.php`的文件。此外,代码中缺少CSRF令牌验证,也未验证HTTP头中的Origin或Referer字段。由于AVideo在HTTPS环境下的默认Cookie策略设置为`SameSite=None; Secure`,浏览器不会阻止跨站点请求携带这些敏感Cookie。因此,攻击者可以构造恶意的HTML页面,当受害者访问该页面时,浏览器会自动发送带有有效会话Cookie的POST请求到AVideo服务器。服务器误认为这是用户本人的合法操作,从而执行写入任意文件的操作。这不仅允许攻击者更改用户头像(可能利用图像解析漏洞进行XSS攻击),还强制执行了`clearCache(true)`,可能影响系统性能或可用性。