MuhammedHussein17/libheif-cve-2026-50142
GitHub: MuhammedHussein17/libheif-cve-2026-50142
针对 libheif HEIF 序列解析器中无限制堆分配漏洞(CVE-2026-50142)的概念验证代码与根因分析。
Stars: 0 | Forks: 0
# CVE-2026-50142 — libheif
**HEIF 序列解析器中无限制的堆分配(stsz 固定大小模式)**
- **严重性:** 高危 (CVSS 7.5)
- **安全通告:** [GHSA-jvmp-j3cw-84mh](https://github.com/strukturag/libheif/security/advisories/GHSA-jvmp-j3cw-84mh)
- **修复:** 由 @farindk 提交的 commit [a6caa38](https://github.com/strukturag/libheif/commit/a6caa38)
- **修复耗时:** < 1 小时
## 概述
一个精心构造的 1,477 字节的 HEIF 文件,会在 `Box_stsz::parse()` 的固定大小模式中,
由于缺少 `max_sequence_frames` 检查,导致在 `Chunk::Chunk()` 中触发约 7 GB 的未检查堆分配。
## 根本原因
`seq_boxes.cc:1067` — 当 `m_fixed_sample_size != 0` 时,
`m_sample_count` 被原样存储(没有进行边界检查)。
## 修复方案
将 `max_sequence_frames` 检查移至 `if (m_fixed_sample_size == 0)` 分支之外。
标签:C++, CISA项目, crafted file, CVE-2026-50142, CVSS 7.5, CWE-789, DoS, GHSA-jvmp-j3cw-84mh, HEIF序列解析器, libheif, stsz固定大小模式, 内存安全, 图像解析, 堆分配漏洞, 堆耗尽, 多媒体安全, 开源组件漏洞, 拒绝服务, 数据擦除, 整数溢出, 边界检查缺失, 配置错误, 高危漏洞