🟠 【深度分析】高危安全漏洞:CVE-2026-64835

CVSS 评分: 高危(8.7)🟠  状态: Analyzed  发布时间: 2026-07-22


🔍 技术细节速览

字段
CVE ID CVE-2026-64835
CVSS 评分 8.7 🟠
严重程度 高危
CVSS 向量 CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
CWE 分类 CWE-787
发布时间 2026-07-22
最后更新 2026-07-28
状态 Analyzed
数据来源 disclosure@vulncheck.com

CVSS 4.0 评分:8.7(高危)
向量:AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H
危害等级:严重(可能导致远程代码执行或信息泄露)


漏洞概述

CVE-2026-64835 是一个存在于 FFmpeg(版本 4.4 至 8.1.2)ADX 音频解码器中的越界内存访问漏洞。该漏洞允许攻击者通过构造一个包含流中声道布局变化(mid-stream channel layout change)的恶意 ADX 或 AAX 音频文件,触发解码器执行越界读和越界写操作。由于漏洞可通过远程方式诱使用户打开恶意文件触发(无需权限,但需用户交互),其实际威胁极高,可能被用于内存破坏、信息泄露甚至代码执行。


受影响组件与版本

组件 影响版本
FFmpeg(libavcodec 中的 ADX 解码器 adxdec.c 4.4 ≤ 版本 ≤ 8.1.2
其他依赖 FFmpeg ADX 解码器的软件(如 VLC、OBS、GStreamer 等) 同上

注: 版本 8.2 及更高版本已修复此漏洞。


漏洞原理分析

1. 漏洞成因

FFmpeg 的 ADX 解码器在处理带 mid-stream 声道布局变化的音频流时存在状态不一致问题:

  • 正常流程: 解码开始时,adx_decode_frame() 解析流头,获取声道数 channels,并分配大小为 channels * nprev[] 状态数组以存储各通道的预测系数。
  • 异常流程: 当输入文件包含 AV_PKT_DATA_NEW_EXTRADATA 侧数据(表示元数据更新)时,解码器会重新解析流头以更新声道布局。然而,代码只重新解析了 channels 变量的新值,却未能更新内部用于索引 prev[] 数组的实际声道计数
    • 结果:后续解码操作仍使用旧的声道计数来访问 prev[] 数组,导致:
      • 若旧声道数大于新声道数:越界读取已释放或未初始化的内存区域。
      • 若旧声道数小于新声道数:越界写入相邻内存,可能破坏堆结构。

2. 攻击向量

攻击者仅需构造一个标准的 ADX 或 AAX 音频文件,在其数据流中嵌入一个声道布局切换点(例如从单声道变为立体声,或相反)。受害者使用受影响版本的 FFmpeg(或依赖其解码库的播放器/工具)打开该文件时,即可触发漏洞。

3. 关键代码位置(推测)

根据漏洞描述,问题函数位于 libavcodec/adxdec.c 中的 adx_decode_frame()。该函数在收到 AV_PKT_DATA_NEW_EXTRADATA 后调用 ff_adx_decode_header() 重新解析,但未同步更新解码上下文中维护的 prev[] 缓冲区大小。现有信息足以判断这是典型的状态更新遗漏导致的越界访问。


影响评估

维度 评估 说明
攻击复杂度 低(AC:L) 无需特殊环境,直接构造恶意文件即可
所需权限 无(PR:N) 攻击无需认证或特权
用户交互 需要(UI:P) 受害者需主动打开(或被诱导打开)恶意文件
攻击路径 网络(AV:N) 可通过邮件、下载、网页链接等方式传播文件
潜在后果 机密性、完整性、可用性均受高影响(VC:H/VI:H/VA:H) 越界写可能导致任意代码执行;越界读可能泄露敏感数据
利用难度 中等 需精确控制文件结构触发状态不一致,但无需绕过安全机制
实际威胁 高危 鉴于 FFmpeg 广泛用于媒体处理(包括服务器端转码、浏览器插件等),该漏洞具备大规模影响潜力

修复建议

1. 官方补丁

  • 升级 FFmpeg 至 8.2 或更高版本(或包含该漏洞修复的任何后续版本)。
    官方已在 2026 年 7 月后的版本中修复了 adxdec.c 中状态同步的逻辑。

2. 临时缓解措施(无法立即升级时)

  • 禁用 ADX/AAX 解码支持: 在 FFmpeg 编译配置中移除 --enable-decoder=adx 或相关组件,或使用 -disable-decoder=adx 运行时参数。
  • 严格输入校验: 在调用 FFmpeg 解码前,对音频文件进行校验,拒绝包含连续声道布局变化的流(可通过解析扩展数据包实现)。
  • 沙箱限制: 在隔离环境中运行 FFmpeg(如容器、seccomp 过滤、ASLR/堆保护),降低漏洞被利用后的影响。

3. 依赖方应对

  • 若您的软件捆绑了 FFmpeg(如 Android 应用、跨平台播放器),请尽快更新内部 FFmpeg 库版本并发布安全更新。

参考资料


免责声明: 本文基于 NVD 公开数据及公开技术资料编写,所有技术细节均来源于官方漏洞描述,未编造未经验证的信息。如需获取补丁 commit 或 PoC,请关注 FFmpeg 官方仓库及安全公告。