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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Palimpsest — CVE-2026-74945 · 조작된 웹 폰트를 통한 초기화되지 않은 힙 정보 노출 (sec-high) | Kitploit
도구/GitHubGitHub/defineid/palimpsest
Payload GenerationVulnerability AnalysisExploitationWeb Security
GitHubdefineid/palimpsest

Palimpsest

CVE-2026-74945 · 조작된 웹 폰트를 통한 초기화되지 않은 힙 정보 노출 (sec-high)

저장소 보기
3일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Palimpsest

CVE-2026-74945 · 조작된 웹 폰트를 통한 초기화되지 않은 힙 공개

보안 심각도: 높음. CWE 908 및 CWE 200. Firefox 154에서 수정됨. Bugzilla 2057808. 일반 웹 페이지에서 @font-face를 통해 도달 가능.

요약

Firefox는 사용 전에 OTS를 통해 웹 폰트를 정화합니다. 세 가지 결함이 결합되어 조작된 폰트가 초기화되지 않은 프로세스 힙을 페이지에 넘겨줍니다. 단 한 번의 measureText 호출로 64KB 윈도우에 대해 대략 두 바이트씩 읽어냅니다.

근본 원인

OTS 출력 스트림은 메모리를 0으로 초기화하지 않는 moz_xrealloc로 증가합니다. 그 Seek는 할당 크기까지의 모든 위치를 허용하며 그 사이의 공백을 0으로 채우지 않습니다. forget는 버퍼를 도달한 가장 높은 오프셋으로 크기를 조정합니다. 따라서 마지막 쓰기와 앞으로의 Seek 사이의 공백은 이전 힙 데이터를 담은 채 호출자에게 전달됩니다.

큰 nonDefaultUVSOffset를 가진 cmap format 14 서브테이블은 직렬화기가 앞으로 Seek하게 하여 생성된 폰트 내부에 공백을 남깁니다. 마지막 세그먼트에 이상한 id_range_offset를 가진 동반 format 4 서브테이블은 그대로 내보내집니다. 글리프 조회 경계 검사는 서브테이블이 아닌 전체 cmap의 나머지를 사용합니다. 인접한 서브테이블 영역으로의 점프가 통과합니다.

MapCharToGlyphFormat4는 조작된 세그먼트에 도달하여 공백에서 읽은 글리프 ID를 반환합니다. 그 hmtx 전진(advance)은 캔버스에서 직접 측정할 수 있습니다.

흐름

measureText를 통한 초기화되지 않은 공백 누출

재현

root@kitploit:~
pip install fonttools brotli
python3 make_poc_font.py        # builds poc.woff
# serve this folder and open poc.html

poc.html은 각 읽기에서 U+FFFF의 전진 너비(advance width)를 출력합니다. 각 값은 공백에서 읽은 글리프 ID를 추적합니다. 0이 아닌 초기화되지 않은 바이트를 보려면 MSan 또는 정크(junk)로 채우는 mozjemalloc 빌드를 사용하십시오. Windows에서는 DWrite를 통해, macOS에서는 CoreText를 통해 영향을 받습니다. OTS는 프로세스 내에서 실행되며 샌드박스 처리되지 않습니다.

영향

웹에서 제어 가능하고 반복 가능한 초기화되지 않은 프로세스 힙 정보 노출입니다. 포인터나 비밀 정보를 드러낼 수 있습니다.

수정

두 가지 변경 사항. 둘 중 하나만으로도 공격 체인이 끊깁니다. OTS 출력 스트림에서 새로 할당된 범위를 0으로 채웁니다. format 4 서브테이블 길이를 확인하여 조회가 나머지 cmap에 대해 경계를 벗어나지 못하게 합니다. Firefox는 두 가지를 모두 적용했습니다.

크레딧

Abdulaziz Alasaiqah · https://azoz.my/writeups.html

도구 다운로드