Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2025 — This is POC for IOS 0click CVE-2025-43300 | Kitploit
工具/GitHubGitHub/dark-life944/cve-2025
Memory ForensicsVulnerability AnalysisExploitationFuzzingLearning & EducationBinary Exploitation
GitHubdark-life944/cve-2025

CVE-2025

This is POC for IOS 0click CVE-2025-43300

查看仓库
10年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2025-43300:iOS/macOS DNG 图像处理内存损坏

概述

CVE-2025-43300 是 Apple 图像处理框架中的一个严重内存损坏漏洞,影响 iOS 18.6.1 及 macOS 系统。该漏洞存在于 RawCamera.bundle 内的 JPEG 无损解压缩代码中,由 DNG 文件中 TIFF 元数据与 JPEG 流参数不一致触发。

漏洞详情

根本原因

漏洞源于 DNG(Digital Negative)文件中的元数据/流不一致:

  1. SamplesPerPixel 元数据(TIFF 头中)指示预期的颜色分量数
  2. SOF3 分量数(JPEG 无损流中)指定实际的数据分量数
  3. 当这两个值不同时,分配与处理出现错位

内存损坏流程

root@kitploit:~
1. 解析器从 TIFF 元数据读取 SamplesPerPixel(例如 2 个分量)
2. 系统分配缓冲区:宽度 × 高度 × 2 个分量
3. JPEG 解码器读取 SOF3 分量数(例如 1 个分量)
4. 解码器基于不一致的假设写入数据
5. 写入的数据多于分配的空间,发生缓冲区溢出

攻击向量

  • 零点击漏洞:无需用户交互
  • 自动处理:通过查看、导入或接收 DNG 文件触发
  • 跨平台影响:影响 iOS 和 macOS 系统
  • 内存损坏:可导致应用程序崩溃或潜在代码执行

工具概述

本仓库包含两个 Python 工具,用于分析和复现 CVE-2025-43300:

1. DNG 漏洞分析器(dng_vulnerability_analyzer.py)

目的:分析 DNG 文件结构以识别漏洞条件

主要特性:

  • 解析 TIFF/DNG 文件结构,包括 IFD 和 SubIFD
  • 定位 SamplesPerPixel 元数据标签
  • 识别 JPEG 无损 SOF3 标记及分量数
  • 检测元数据/流不一致
  • 报告用于修改的精确字节偏移

用法:

root@kitploit:~
python3 dng_vulnerability_analyzer.py <dng_file>

输出:

  • 文件结构分析
  • 元数据标签位置及值
  • JPEG 流分量信息
  • 漏洞评估
  • 用于构造 PoC 的具体偏移量

2. 安全十六进制修改器(hex_modifier.py)

目的:通过安全地修改特定字节来创建概念验证文件

主要特性:

  • 在修改前验证期望的字节值
  • 创建 SHA256 哈希以追踪文件
  • 生成二进制差异报告
  • 实现安全检查以防意外损坏
  • 支持手动和自动 PoC 创建

用法:

root@kitploit:~
# 使用已知的脆弱偏移创建 PoC
python3 hex_modifier.py create-poc <input.dng>

# 手动修改字节
python3 hex_modifier.py modify <input.dng> <offset> <old_byte> <new_byte> <output.dng>

# 生成差异报告
python3 hex_modifier.py diff <original.dng> <modified.dng>

PoC 创建过程

步骤 1:分析目标文件

root@kitploit:~
python3 dng_vulnerability_analyzer.py IMGP0847.DNG

这将识别:

  • SamplesPerPixel 元数据位置
  • JPEG SOF3 分量数位置
  • 当前值及建议修改

步骤 2:创建脆弱样本

PoC 需要两个特定的字节修改:

  1. 增加 SamplesPerPixel 元数据(通常从 1 改为 2)
  2. 减少 SOF3 分量数(通常从 2 改为 1)
root@kitploit:~
python3 hex_modifier.py create-poc IMGP0847.DNG

步骤 3:验证 PoC

root@kitploit:~
python3 dng_vulnerability_analyzer.py vuln_poc_IMGP0847.dng

确认不一致存在且漏洞被触发。

PoC 为何有效

技术机制

  1. 分配阶段:

    • 图像解析器读取 SamplesPerPixel = 2
    • 为 2 个分量像素数据分配缓冲区
    • 缓冲区大小 = image_width × image_height × 2
  2. 处理阶段:

    • JPEG 无损解码器遇到 SOF3 且只有 1 个分量
    • 解析逻辑对实际与预期数据大小产生混淆
    • 尝试基于不一致的假设写入数据
  3. 内存损坏:

    • 向缓冲区写入的数据多于最初分配的量
    • 缓冲区溢出破坏相邻内存区域
    • 导致应用程序崩溃或潜在代码执行

文件格式细节

DNG 文件采用 TIFF 容器格式,内嵌 JPEG 无损流:

  • TIFF 元数据描述图像属性及颜色信息
  • JPEG 流包含压缩的像素数据
  • 信任关系存在于元数据与流内容之间
  • 验证缺口允许不一致的值进入处理代码

影响评估

严重性:严重

  • CVSS 评分:高(零点击、内存损坏、影响广泛)
  • 受影响系统:iOS 18.6.1、具有类似图像处理功能的 macOS 系统
  • 攻击向量:网络/本地文件传输
  • 用户交互:无需
  • 范围:所有处理 DNG 文件的设备

真实场景

  • 带 DNG 文件的电子邮件附件
  • AirDrop 传输
  • 云端照片同步
  • 网络下载摄影师样本
  • 即时通讯应用媒体分享

缓解措施与补丁

厂商响应

  • 已在 iOS 18.6.2 中修复:Apple 实施了正确的元数据验证
  • macOS 更新:对 macOS 图像处理应用了类似修复
  • 根本原因:增加了元数据与流参数之间的一致性检查

建议的缓解措施

  1. 更新系统:安装 iOS 18.6.2 或更高版本
  2. 输入验证:在自定义解析器中验证元数据一致性
  3. 边界检查:实施严格的缓冲区大小验证
  4. 模糊测试:定期测试文件格式解析器

文件结构与技术细节

TIFF/DNG 结构

root@kitploit:~
TIFF 头 → IFD 链 → SubIFD → 图像数据
├── 元数据标签(SamplesPerPixel、Compression 等)
├── JPEG 无损流(SOF3 标记)
└── 像素数据(压缩)

关键漏洞位置

  • SamplesPerPixel 标签:IFD 结构中的 TIFF 标签 0x0115
  • SOF3 标记:JPEG 无损帧起始标记(0xFFC3)
  • 分量数:SOF3 标记偏移 +9 字节
  • 关键不匹配:标签值 ≠ 分量数

测试指南

安全测试环境

  1. 使用隔离系统:虚拟机或专用测试设备
  2. 创建快照:在测试 PoC 文件之前
  3. 监控崩溃:检查系统日志和崩溃报告
  4. 网络隔离:防止意外的文件共享

预期行为

  • 脆弱系统:应用程序崩溃、内存损坏错误
  • 已修补系统:优雅的错误处理或正确处理
  • 日志指示:内存访问违规、段错误

技术参考

文件格式文档

  • TIFF 6.0 规范:标签结构和 IFD 格式
  • DNG 规范:Adobe Digital Negative 格式
  • JPEG 标准:无损压缩(ITU-T T.87)

安全研究

  • 内存损坏技术:缓冲区溢出基础
  • 文件格式模糊测试:自动化漏洞发现
  • 解析器安全:输入验证最佳实践

免责声明:本研究仅用于教育和防御性安全目的。用户应遵守适用法律和道德准则。

注意

崩溃触发需要大约 1-3 分钟。玩得开心。 对于 PoC,你可以运行 open vuln_file.dng 来运行该文件,或者仅预览它即可执行。

下载工具