CVE-2026-43881WWBN AVideo 是一个广泛使用的开源视频托管平台。在其 29.0 及之前的版本中,系统存在一个严重的信息泄露漏洞。由于 `objects/users.json.php` 文件未正确实施访问控制,攻击者可以在未经身份验证的情况下,利用特定的请求参数遍历并获取系统内的所有用户账户数据。该漏洞的 CVSS 评分为 5.3,属于中危级别。虽然该漏洞不直接导致系统被入侵,但泄露的用户信息包括显示名称、频道 URL 和用户状态等,这些数据可被攻击者用于后续的精准网络钓鱼、暴力破解或社会工程学攻击,对用户隐私和平台安全构成显著威胁。
该漏洞的核心在于 `objects/users.json.php` 文件中对权限校验逻辑的绕过,主要体现在两个未授权的访问路径上。
首先,第一个利用路径涉及 `isCompany` 请求参数。当攻击者在 HTTP 请求中附带 `isCompany` 参数时,后端处理逻辑会将 `$ignoreAdmin` 变量设置为 `true`。随后,该变量被传递给 `User::getAllUsers()` 和 `User::getTotalUsers()` 等核心方法。在这些方法的内部逻辑中,原本用于检查当前用户是否具备管理员权限的守卫语句会因为 `$ignoreAdmin` 为真而被跳过。这意味着,即使是未登录的匿名访客,也能成功调用这些方法,从而获取系统中所有注册用户的详细信息列表。
其次,第二个利用路径涉及 `users_id` 参数。攻击者可以通过该参数指定一个用户 ID,后端代码会直接调用 `User::getUserFromID()` 方法来获取该用户的详细资料。关键问题在于,这个调用路径完全缺失了权限验证代码(例如检查 `User::isLogged()` 或用户角色)。因此,攻击者可以通过不断递增 `users_id` 的值(如 1, 2, 3...)来枚举数据库中所有的用户记录,这也被称为“用户预言机”。
通过上述两种方式,攻击者可以导出包括用户 ID、标识名、频道链接、照片、背景图、状态以及账户总数在内的敏感信息。这种设计缺陷严重违反了最小权限原则,将本应严格受限的管理员功能暴露给了公网。