WWW2Exec - sips ICC Profile Out-of-Bounds Write (CVE-2024-44236)

Reading time: 3 minutes

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기

개요

Apple macOS Scriptable Image Processing System (sips) ICC 프로파일 파서에서 발생하는 경계 초과 쓰기 취약점 (macOS 15.0.1, sips-307)으로, lutAToBType (mAB ) 및 lutBToAType (mBA ) 태그의 offsetToCLUT 필드에 대한 부적절한 검증으로 인해 발생합니다. 조작된 ICC 파일은 힙 버퍼를 넘어 최대 16바이트까지 제로 쓰기를 유발하여 힙 메타데이터 또는 함수 포인터를 손상시키고 임의 코드 실행을 가능하게 합니다 (CVE-2024-44236).

취약한 코드

취약한 함수는 할당된 버퍼 내에 있는지 확인하지 않고 공격자가 제어하는 오프셋에서 시작하여 16바이트를 읽고 제로화합니다:

c
// Pseudocode from sub_1000194D0 in sips-307 (macOS 15.0.1)
for (i = offsetToCLUT; i < offsetToCLUT + 16; i++) {
if (i > numberOfInputChannels && buffer[i] != 0)
buffer[i] = 0;
}

오직 offsetToCLUT <= totalDataLength 체크만 수행됩니다. offsetToCLUT == tagDataSize로 설정하면, 루프가 buffer의 끝에서 16바이트를 초과하여 인덱싱되어 인접한 힙 메타데이터가 손상됩니다.

Exploitation Steps

  1. 악성 .icc 프로파일 작성:
  • 서명 acsp와 단일 lutAToBType 또는 lutBToAType 태그 항목으로 ICC 헤더(128바이트)를 빌드합니다.
  • 태그 테이블에서 offsetToCLUT를 태그의 size(tagDataSize)와 같게 설정합니다.
  • 힙 메타데이터를 덮어쓰도록 태그 데이터 블록 바로 뒤에 공격자가 제어하는 데이터를 배치합니다.
  1. 파싱 트리거:
bash
sips --verifyColor malicious.icc
  1. 힙 메타데이터 손상: OOB 제로 쓰기가 할당자 메타데이터 또는 인접 포인터를 덮어써서 공격자가 제어 흐름을 탈취하고 sips 프로세스의 컨텍스트에서 임의 코드 실행을 달성할 수 있게 합니다.

Impact

성공적인 악용은 취약한 sips 유틸리티가 실행되는 macOS 시스템에서 사용자 권한으로 원격 임의 코드 실행을 초래합니다.

Detection

  • 일반 프로토콜(FTP, HTTP/S, IMAP, SMB, NFS, SMTP)에서 파일 전송을 모니터링합니다.
  • 서명 acsp가 있는 전송된 파일을 검사합니다.
  • mAB 또는 mBA 태그에 대해 Offset to CLUT 필드가 Tag data size와 같은지 확인합니다.
  • 이 조건이 충족되면 의심스러운 것으로 표시합니다.

References

  • ZDI 블로그: CVE-2024-44236: Apple macOS sips 유틸리티의 원격 코드 실행 취약점 https://www.thezdi.com/blog/2025/5/7/cve-2024-44236-remote-code-execution-vulnerability-in-apple-macos
  • Apple 2024년 10월 보안 업데이트 (CVE-2024-44236 패치 포함) https://support.apple.com/en-us/121564

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기