Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-21045_and_CVE-2026-21048 — 삼성의 libimagecodec.quram.so에서 범위를 벗어난 쓰기를 트리거하도록 제작된 TIFF/DNG 파일을 생성하며, 바이너리 분석 및 재현 단계를 포함합니다. | Kitploit
도구/GitHubGitHub/pealeap/cve-2026-21045_and_cve-2026-21048
Android SecurityVulnerability AnalysisExploitationReverse EngineeringMobile SecurityBinary AnalysisLearning & EducationBinary Exploitation

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHub
pealeap/cve-2026-21045_and_cve-2026-21048

CVE-2026-21045_and_CVE-2026-21048

삼성의 libimagecodec.quram.so에서 범위를 벗어난 쓰기를 트리거하도록 제작된 TIFF/DNG 파일을 생성하며, 바이너리 분석 및 재현 단계를 포함합니다.

저장소 보기
11개월 전아직 검토되지 않음

CVE-2026-21045 & CVE-2026-21048 — Samsung libimagecodec.quram.so OOB 쓰기 PoC

개요

이 저장소는 Samsung Android 기기에 사용되는 Quramsoft 이미지 코덱 라이브러리(libimagecodec.quram.so)의 범위를 벗어난 쓰기(out-of-bounds, OOB) 취약점을 입증하는 개념 증명(Proof-of-Concept, PoC) 파일을 포함합니다.

CVE형식유형심각도CVSS 4.0패치 적용
CVE-2026-21045TIFF범위를 벗어난 쓰기 (CWE-787)치명적8.4SMR Jul-2026 Release 1
CVE-2026-21048DNG범위를 벗어난 쓰기 (CWE-787)높음—SMR Jul-2026 Release 1

영향을 받는 기기

  • Android 14, 15, 16을 실행하는 Samsung Galaxy 기기
  • 구체적으로: Galaxy Z Fold 7, Flip 7, S-시리즈, A-시리즈(예: A17)
  • 보안 패치가 SMR Jul-2026 Release 1 이전인 기기
  • 라이브러리: /system/lib64/libimagecodec.quram.so

취약점 메커니즘

근본 원인

취약점은 IFD(Image File Directory) 태그 파싱 함수 WINKJ_ReadExifField(64비트 바이너리에서 오프셋 0x13a0a8)에 존재합니다. 이 함수는 각각 12바이트 구조체인 개별 TIFF/EXIF IFD 항목을 처리합니다:

root@kitploit:~
Offset  Size  Field
------  ----  -----
0       2     Tag ID
2       2     Data Type (1=BYTE, 2=ASCII, 3=SHORT, 4=LONG, 5=RATIONAL, etc.)
4       4     Count (number of values)
8       4     Value / Offset to data

count * element_size > 4일 때 4바이트 Value 필드는 파일 오프셋(실제 데이터가 있는 위치를 가리키는)으로 처리됩니다. 그런 다음 코드는 주소 0x13a258에서 경계 검사를 수행합니다:

root@kitploit:~
add w8, w6, w7    ; w8 = value_offset + (count * element_size)  [32-bit]
cmp w8, w5        ; compare against remaining buffer size
b.ls ok           ; if w8 <= buffer_size, proceed

정수 오버플로우 우회

이 취약점은 덧셈 과정에서 발생하는 32비트 부호 없는 정수 오버플로우입니다. 공격자가 value_offset과 count * element_size를 합산 결과가 작은 값으로 순환(wrap around)하도록 조작하면, 실제 메모리 접근(base + value_offset)이 경계를 벗어나더라도 검사를 통과합니다.

예시(UNDEFINED 유형, element_size = 1):

32비트 덧셈 0x17FFF + 0xFFFF0001 = 0x10008000은 0x8000으로 잘리며, 이는 buffer_size와 같습니다. 검사는 통과하지만 실제 데이터 포인터(base + 0x17FFF)는 할당된 버퍼의 끝에서 0x7FFF바이트 뒤에 위치합니다.

취약한 코드 경로

root@kitploit:~
TIFFReadDirectory / WINKJ_ReadTiffInfo
  └─> WINKJ_ReadTiffIFDInfo   (allocates IFD buffer)
       └─> for each IFD entry:
            └─> WINKJ_ReadExifField   (parses entry, reads value data)
                 └─> Switch on Data Type (jump table at 0x13a15c)
                      ├─ Type 0 (BYTE/ASCII/UNDEFINED):  handler at 0x13a15c
                      ├─ Type 3/8 (SHORT/SSHORT):       handler at 0x13a1d0
                      ├─ Type 4/9/11 (LONG/SLONG/FLOAT): handler at 0x13a17c
                      └─ Type 5/10/12 (RATIONAL/SRATIONAL/DOUBLE): handler at 0x13a1ac
                      Each handler -> reads data at offset -> bounds check at 0x13a258

PoC 파일

파일설명
cve-2026-21045_tiff_oob_poc.pypoc_crash.tif 생성 — 조작된 count/offset으로 ASCII 태그를 통해 OOB 쓰기를 유발하는 비정상 TIFF
cve-2026-21048_dng_oob_poc.pypoc_crash.dng 생성 — 조작된 count/offset으로 UNDEFINED 태그를 통해 OOB 쓰기를 유발하는 비정상 DNG

사용법

root@kitploit:~
# Generate TIFF PoC
python3 cve-2026-21045_tiff_oob_poc.py -o payload.tif

# Generate DNG PoC
python3 cve-2026-21048_dng_oob_poc.py -o payload.dng

# Transfer to device and trigger (e.g., via Gallery/MMS)
adb push payload.tif /sdcard/Download/
adb shell am start -a android.intent.action.VIEW -d file:///sdcard/Download/payload.tif -t image/tiff

예상 동작

패치되지 않은 기기(보안 패치 < 2026년 7월)에서 Samsung Gallery(또는 Quram 디코더를 사용하는 모든 앱)로 조작된 TIFF/DNG 파일을 열면 힙 메모리 손상이 발생할 수 있으며, 잠재적으로 다음으로 이어질 수 있습니다:

  • 앱 충돌(SIGSEGV/SIGABRT)
  • 힙 범위를 벗어난 쓰기
  • 특정 힙 레이아웃에서: 잠재적인 임의 코드 실행

패치된 기기(SMR Jul-2026+)에서는 이미지가 잘못된 것으로 거부되거나 안전하게 처리되어야 합니다. 완전히 패치된 기기에서 충돌이 발생한다면 별도의 패치되지 않은 문제를 나타낼 수 있습니다.

바이너리 분석 세부 정보

라이브러리 정보

root@kitploit:~
File:   libimagecodec.quram.so (64-bit)
SHA256: (verify against your copy)
NDK:    r23c (Android 21)
Built:  2021-12-31 (placeholder date)
Soname: libimagecodec.quram.so

주요 함수

디스패치 테이블 (태그 유형 → 핸들러)

WINKJ_ReadExifField에서 추출:

element_size = 1인 모든 유형(BYTE, ASCII, UNDEFINED)은 동일한 핸들러를 공유하며 정수 오버플로우 우회에 동일하게 취약합니다.

관련 CVE

면책 조항

이 개념 증명 자료는 교육 및 보안 연구 목적으로만 제공됩니다. 이는 사용자와 개발자가 위험을 이해하도록 돕기 위해 취약점 메커니즘을 시연합니다. 소유하지 않았거나 명시적인 테스트 허가를 받지 않은 시스템에는 사용하지 마십시오.

참조 자료

  • https://nvd.nist.gov/vuln/detail/CVE-2026-21045
  • https://nvd.nist.gov/vuln/detail/CVE-2026-21048
  • https://security.samsungmobile.com/securityUpdate.smsb
  • https://gitlab.com/libtiff/libtiff/-/releases/v4.6.0
도구 다운로드
필드값(16진수)10진수
count0xFFFF00014,294,901,761
element_size11
count * element_size0xFFFF0001 ≡ -65535 (mod 2³²)4,294,901,761
value_offset0x00017FFF98,303
value_offset + count*size0x00008000 (오버플로우!)32,768
buffer_size0x0000800032,768
검사 결과: 0x8000 <= 0x8000✅ 통과—
실제 메모리 접근: base + 0x17FFF버퍼를 0x7FFF바이트 초과❌ OOB
함수주소(64비트)크기용도
WINKJ_ReadExifField0x13a0a8912개별 IFD 항목 파싱(취약)
WINKJ_ReadTiffIFDInfo0x139d28896모든 IFD 항목 읽기
WINKJ_ReadTiffInfo0x139ad4596상위 수준 TIFF 정보 파서
WINKJ_GetTiffInfo0x1393fc1752주요 TIFF 파싱 진입점
decodeTIFF0x1a2adc580libtiff를 통해 TIFF 이미지 디코딩
getTIFFImageInfo0x1a2d20508TIFF 이미지 메타데이터 가져오기
copySubImageBuffer0x0b2824324하위 이미지 영역 복사
TIFFReadDirectory0x1aac785896libtiff 4.6.0 디렉터리 리더
_TIFFMultiply320x1a2f1c56안전한 32비트 곱셈 검사
_TIFFMultiply640x1a2f5848안전한 64비트 곱셈 검사
유형이름요소 크기핸들러 주소
1BYTE10x13a15c
2ASCII10x13a15c
3SHORT20x13a1d0
4LONG40x13a17c
5RATIONAL80x13a1ac
6SBYTE10x13a15c
7UNDEFINED10x13a15c
8SSHORT20x13a1d0
9SLONG40x13a17c
10SRATIONAL80x13a1ac
11FLOAT40x13a17c
12DOUBLE80x13a1ac
CVE설명상태
CVE-2025-58477libimagecodec.quram.so의 IFD 태그 파싱에서 OOB 쓰기 (SMR Dec-2025)✅ 패치됨
CVE-2026-20973libimagecodec.quram.so에서 OOB 읽기 (SMR Jan-2026)✅ 패치됨
CVE-2026-21045libimagecodec.media.quram.so의 TIFF 파싱에서 OOB 쓰기 (SMR Jul-2026)⚠️ 나에게는 패치되지 않음
CVE-2026-21048libimagecodec.media.quram.so의 DNG 파싱에서 OOB 쓰기 (SMR Jul-2026)⚠️ 나에게는 패치되지 않음
CVE-2026-4775libtiff 4.6.0 putcontig8bitYCbCr44tile에서 부호 있는 정수 오버플로우⚠️ 나에게는 패치되지 않음
CVE-2024-7006libtiff tif_dirinfo.c에서 NULL 역참조✅ 4.6.1에서 수정됨