关联漏洞
标题:
Apple多款产品 安全漏洞
(CVE-2025-43300)
描述:Apple iOS等都是美国苹果(Apple)公司的产品。Apple iOS是一套为移动设备所开发的操作系统。Apple macOS是一套专为Mac计算机所开发的专用操作系统。Apple iPadOS是一套用于iPad平板电脑的操作系统。 Apple多款产品存在安全漏洞,该漏洞源于处理恶意图像文件可能导致内存损坏。以下产品及版本受到影响:macOS Sonoma 14.7.8版本、macOS Ventura 13.7.8版本、iPadOS 17.7.10版本、macOS Sequoia 15.6.1版本、
介绍
## 📚 CVE-2025-43300 - Análise Detalhada da Vulnerabilidade
### 🎯 **Resumo**
A CVE-2025-43300 é uma vulnerabilidade de **buffer overflow** no processamento de arquivos DNG (Digital Negative) que ocorre devido a uma **inconsistência entre metadados TIFF e dados JPEG**, permitindo execução remota de código (RCE).
---
## 🔍 **1. ANATOMIA DO ARQUIVO DNG**
### Estrutura em Camadas:
```
DNG File
├── TIFF Container (metadados)
│ ├── Header
│ ├── IFD (Image File Directory)
│ │ ├── Tag 277: SamplesPerPixel (declara quantos componentes)
│ │ ├── Tag 513: JpegOffset (onde começa o JPEG)
│ │ └── Tag 514: JpegLength (tamanho do JPEG)
│ └── Outros metadados
└── JPEG Data (dados reais da imagem)
├── SOI (Start of Image)
├── SOF0 (Frame Header)
│ └── Components: número real de componentes
└── Compressed Data
```
---
## ⚠️ **2. A RAIZ DO PROBLEMA**
### **Inconsistência de Validação:**
```javascript
// PROBLEMA FUNDAMENTAL:
TIFF declara: "Esta imagem tem 2 componentes" (SamplesPerPixel = 2)
JPEG contém: "Na verdade tenho 3 componentes" (SOF0 Components = 3)
```
### **Por que isso é perigoso?**
1. **Alocação de Memória Baseada em TIFF:**
```c
// Código vulnerável (simplificado)
int samples = read_tiff_tag(277); // Lê 2
buffer = malloc(samples * sizeof(component)); // Aloca para 2
```
2. **Processamento Baseado em JPEG:**
```c
// Mas processa baseado no JPEG
int components = read_jpeg_sof0(); // Lê 3
for (int i = 0; i < components; i++) { // Loop 3 vezes!
buffer[i] = process_component(i); // OVERFLOW no i=2!
}
```
---
## 🔄 **3. FLUXO COMPLETO DA VULNERABILIDADE**
### **Passo a Passo Detalhado:**
```
[1] ABERTURA DO ARQUIVO
↓
[2] PARSER TIFF
├─→ Lê Header TIFF
├─→ Localiza IFD
├─→ Lê Tag 277 (SamplesPerPixel = 2)
└─→ Aloca buffer para 2 componentes
[3] LOCALIZAÇÃO DO JPEG
├─→ Lê Tag 513 (offset do JPEG)
└─→ Navega até posição no arquivo
[4] PARSER JPEG
├─→ Lê marcador SOF0 (0xFFC0)
├─→ Extrai número de componentes (3)
└─→ NÃO VALIDA contra TIFF!
[5] PROCESSAMENTO
├─→ Loop para processar 3 componentes
├─→ Buffer só tem espaço para 2
└─→ 3º componente escreve FORA do buffer
[6] BUFFER OVERFLOW
├─→ Sobrescreve dados adjacentes
├─→ Pode sobrescrever endereço de retorno
└─→ Possibilita controle de execução
[7] EXECUÇÃO DE CÓDIGO
└─→ Atacante controla fluxo do programa
```
---
## 💣 **4. MECÂNICA DO EXPLOIT**
### **Memória Antes do Overflow:**
```
Stack Layout:
+----------------+ ← Topo
| Buffer (2 comp)| [Componente 0]
| | [Componente 1]
+----------------+
| Dados locais |
+----------------+
| Frame Pointer |
+----------------+
| Return Address | ← Endereço para retornar
+----------------+
```
### **Memória Durante o Overflow:**
```
Stack Layout:
+----------------+
| Buffer (2 comp)| [Componente 0]
| | [Componente 1]
+----------------+
| Dados locais | [Componente 2] ← OVERFLOW!
+----------------+
| Frame Pointer | [Sobrescrito]
+----------------+
| Return Address | [Controlado pelo atacante]
+----------------+
```
---
文件快照
[4.0K] /data/pocs/2ee3f69b69acac343ca1504bbae96779b59792ea
├── [3.0K] create-dng_poc_exec.js
└── [3.3K] README.md
0 directories, 2 files
备注
1. 建议优先通过来源进行访问。
2. 如果因为来源失效或无法访问,请发送邮箱到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
3. 神龙已为您对POC代码进行快照,为了长期维护,请考虑为本地POC付费,感谢您的支持。