
Apple ImageIO WebP 파싱에서의 정수 오버플로우 (macOS/iOS)
Apple의 ImageIO 프레임워크에서 WebP 이미지를 파싱할 때 발생하는 정수 오버플로우 취약점으로, 경계를 벗어난 메모리 접근으로 이어집니다.
전체 분석 보고서 - 디스어셈블리 워크스루를 포함한 상세한 근본 원인 분석
비정상적인 WebP 이미지를 처리할 때 행 바이트 계산 중 정수 오버플로우가 발생합니다. 오버플로우로 인해 버퍼가 너무 작게 할당되며, 이후 이미지 디코딩 중에 덮어쓰여집니다.
악의적으로 조작된 WebP 이미지를 처리하면 ImageIO를 사용하는 모든 애플리케이션(Safari, Preview, Mail, Messages, Quick Look 등)의 컨텍스트에서 임의 코드 실행이 발생할 수 있습니다.
| 영향 받는 버전 | 수정된 버전 | |
|---|---|---|
| macOS | Monterey < 12.4 | 12.4 (2022년 5월) |
| iOS / iPadOS | < 15.5 | 15.5 |
| tvOS | < 15.5 | 15.5 |
| watchOS | < 8.6 | 8.6 |
macOS Monterey 12.0.1 및 iOS 15.1에서 테스트됨
테스트 도구를 빌드하고 실행합니다:
./build_harness_standalone.sh
./harness_standalone intoverflow.webp
또는 trigger.html을 제공하여 브라우저를 통해 트리거하거나 파일을 직접 열기:
open intoverflow.webp
Process: harness_standalone [12345]
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x...
Thread 0 Crashed:
0 libsystem_platform.dylib _platform_memset_pattern16 + ...
1 CoreGraphics CGSColorDataMakeCompositor + ...
2 CoreGraphics ripc_RenderImage + ...
3 CoreGraphics ripc_DrawImage + ...
4 ImageIO ...