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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cve-2026-13934 — Structured vulnerability research repo for a Chrome Dawn WebGPU CWE-20 flaw: root cause, patch diff, static verification, severity review, and security lessons. | Kitploit
도구/GitHubGitHub/artwiderobo/cve-2026-13934
Vulnerability AnalysisCode AnalysisExploitationWeb SecurityPapers & ResearchLearning & Education
GitHubartwiderobo/cve-2026-13934

cve-2026-13934

Structured vulnerability research repo for a Chrome Dawn WebGPU CWE-20 flaw: root cause, patch diff, static verification, severity review, and security lessons.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-13934

작업 프로젝트 저장소입니다. 조사·분석·작업·보고서를 한 레포에서 다룹니다 (D088/D091).

이 파일은 레포·보드 진입 문서입니다. 폴더·산출물 규약 전문은 docs/conventions.md를 보세요. 본문(현황·결론·링크)은 보고서(report) 항목이 승격할 때 갱신합니다. 조사·분석·작업 에이전트는 루트 README를 수정하지 않습니다.

한 줄 요약: Google Chrome의 WebGPU 구현체 Dawn이 YCbCr 샘플러 생성 시 Vulkan 규격이 요구하는 파라미터 제약을 검사하지 않아, 이미 렌더러 프로세스를 장악한 공격자가 규격 위반 값을 GPU 프로세스까지 흘려보낼 수 있었던 문제입니다(CWE-20). 수정은 검증 추가와 백엔드 강제를 두 겹으로 넣었고, Chrome 150.0.7871.47에서 반영되었습니다.

상세 학습 문서는 docs/cve-2026-13934/에 있습니다 — 원인·수정·실증·교훈을 재현 없이 따라갈 수 있게 썼습니다.

현황

대상: CVE-2026-13934 — Google Chrome / Dawn (WebGPU 구현), 취약 유형 CWE-20 (Improper Input Validation). CVE 발행 2026-06-30, 수정 버전 150.0.7871.47. 근거: research/20260804-cve-2026-13934-6bacf7/sources.md §1·§2.

진행 단계 — 조사(공개 정보) · 조사(패치·diff) · 분석(재현·실증) · 보고(학습 정리) 네 라인으로 진행했고, 네 라인 모두 완료했습니다.

확인된 것

  • CVE 식별자·상태(공개), CNA(Chrome/Google), 영향 제품(Google Chrome), 영향 컴포넌트(Dawn).
  • 수정 버전 150.0.7871.47과 수정 커밋(Dawn 43055cbe…), 변경된 파일 3개와 변경 이유.
  • 취약 측 리비전에 규격 제약 검사·강제·회귀 테스트가 하나도 없고 수정 측에 모두 있음 — Chrome이 실제로 고정한 두 Dawn 스냅샷을 정적 대조해 확인했습니다 (cases/20260804-cve-2026-13934-4d10a8/report.md §3).

아직 확인되지 않은 것 (추정으로 메우지 않았습니다)

  • 실행 수준 관찰 없음 — 두 리비전을 빌드해 단위 테스트를 돌리지는 않았습니다. 검증 오류 메시지의 실제 출력, 생성되는 VkSampler 파라미터, Vulkan 검증 레이어의 VUID 보고는 코드 근거에 기반한 예상값입니다 (cases/…-4d10a8/report.md §4).
  • 영향 플랫폼 — CVE 설명은 "on Android"이지만 해당 CVE가 실린 벤더 공지는 데스크톱 채널 공지입니다. 데스크톱에서도 같은 경로가 성립하는지는 확인하지 않았습니다.
  • 영향 버전 경계 — Chromium 태그 150.0.7871.46·.47·.63이 모두 동일한 Dawn 리비전을 고정하는데 CVE는 "prior to .47"로 적습니다. 이 표기의 근거를 확인하지 못했습니다.
  • 수정의 완결성 — Dawn 쪽에서 해당 버그를 참조하는 커밋은 1건이었으나, Chromium src 측 동반 변경 여부는 전수 조사하지 않았습니다.
  • 벤더 내부 분석 — 원인이 담긴 Chromium 이슈 513006636은 접근 제한 상태입니다.

심각도 — 출처마다 다릅니다. 벤더(Chromium) 자체 등급은 Medium, CISA-ADP의 CVSS v3.1은 9.6 CRITICAL(CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H)이며 NVD 자체 평가는 없습니다. 어느 쪽이 옳다고 판정하지 않고 병기합니다 — 해석은 docs/cve-2026-13934/overview.md에 있습니다.

이 저장소에는 배포된 서비스(API·백엔드·데이터베이스 등)가 없습니다. 모든 산출물은 문서입니다.

주요 결론

1. 원인 — 규격이 요구하는 전제를 검사하지 않았다

Vulkan 규격은 YCbCr 변환이 붙은 샘플러에 대해 모든 축의 주소 모드가 CLAMP_TO_EDGE이고 비등방 필터링(anisotropy)이 비활성일 것을 요구합니다 (VUID-VkSamplerCreateInfo-addressModeU-01646). 패치 이전 Dawn은 이 제약을 검사하지 않았고, 그래서 규격을 위반하는 파라미터가 검증을 통과해 VkSampler 생성까지 도달할 수 있었습니다.

결정적인 것은 위협 모델입니다. 공개 설명은 공격자가 렌더러 프로세스를 이미 장악한 상태를 전제합니다("a remote attacker who had compromised the renderer process"). 그 위치에서는 정상 웹 API 경로가 아니라 프로세스 간 명령을 직접 조작할 수 있으므로, 렌더러 쪽 검증은 신뢰 경계 밖입니다. 그리고 Dawn의 Vulkan 백엔드는 렌더러보다 권한이 높은 GPU 프로세스에서 동작합니다 — 그래서 이 결함이 샌드박스 탈출 표면이 됩니다.

근거: cases/20260804-cve-2026-13934-4d10a8/root_cause.md §2 · 상세: docs/cve-2026-13934/root-cause-and-fix.md

2. 수정 — 검증 한 겹으로 끝내지 않았다

수정 커밋은 Dawn 43055cbeadddca41a9c973a809f859d641077b2f ("Add YCbCr sampler validation", 2026-05-27, Bug: 513006636)이며 세 파일을 바꿉니다.

이 구조가 이 CVE의 핵심입니다. 렌더러가 이미 침해된 것을 전제하므로 검증만으로는 부족하고, 권한이 높은 쪽에서 값을 강제하는 두 번째 겹이 실질적인 차단선입니다. "입력 검증이 빠져서 검증을 추가했다"로 요약하면 방어 설계의 요점을 놓칩니다.

변경 규모는 추가 53행, 삭제 0행 — 기존 로직을 고치지 않고 빠진 검사를 채운 패치입니다.

근거: research/20260804-cve-2026-13934-diff-92f928/report.md §3·§4 · cases/20260804-cve-2026-13934-4d10a8/patch_diff.md §4

3. 실증 — 정적 수준까지 확인했다

Chrome이 실제로 고정한 두 Dawn 스냅샷의 소스를 대조했습니다.

여기서 드러난 것: 취약 측에도 YCbCr 분기와 검사 2건이 이미 있었습니다. 결함은 경로 누락이 아니라 분기 안의 조건부 제약 검사 누락이었습니다.

빌드·실행은 하지 않았으므로 아래 두 항목은 코드 근거에 기반한 예상이며 실측이 아닙니다.

근거: cases/20260804-cve-2026-13934-4d10a8/report.md §1~§4 · 상세: docs/cve-2026-13934/evidence.md

4. 교훈

보안 설계 관점

  • 신뢰 경계를 넘는 값은 넘어온 쪽에서 다시 다뤄야 한다. 클라이언트·렌더러 측 검증은 편의와 진단을 위한 것이고, 권한 경계 안쪽에서는 값을 검증하거나 강제해야 합니다.
  • "규격이 요구하는 전제"는 코드로 강제하지 않으면 지켜지지 않는다. 조건부 제약은 그 조건이 성립하는 분기에서 다뤄야 하는데, 이 사례에서는 분기가 있었고 검사만 없었습니다.
  • 거부(reject)와 보정(clamp)은 역할이 다르다. 이 패치는 정상 경로에서는 거부하고, 신뢰 경계 밖에서 온 값에는 보정을 적용합니다.
  • 심각도 하나만 보고 판단하지 않는다. 같은 취약점에 벤더 등급 Medium과 CVSS 9.6 CRITICAL이 공존합니다. 전제(렌더러 선행 침해)를 함께 읽어야 실제 위험이 보입니다.
  • 탐지 신호의 방향을 뒤집지 않는다. 검증 오류 메시지는 패치 후에만 발생합니다. "로그에 그 오류가 없으니 안전하다"는 추론은 거꾸로입니다.

조사 방법 관점

  • CVE 참조 링크에 패치가 없어도 추적할 수 있다. 벤더 공지의 버그 번호 → 릴리스 비교 태그 → DEPS의 컴포넌트 리비전 → 컴포넌트 커밋 로그에서 버그 번호 검색으로 수정 커밋을 찾았습니다. 절차: research/20260804-cve-2026-13934-diff-92f928/sources.md §6.
  • 회귀 테스트가 최고의 관찰 명세다. 패치에 딸려 온 테스트가 "어떤 입력에 어떤 결과"를 정의하므로, 위험한 재현 없이 전후 차이를 확인할 수 있습니다.
  • 확인된 것과 추정한 것을 섞지 않는다. 이 저장소의 산출물은 미확인 항목을 빈칸으로 두지 않고 "미확인 + 이유"로 남깁니다.

상세: docs/cve-2026-13934/lessons.md

산출물

학습 문서 (docs/)

조사 — 공개 정보·영향 범위 (research/20260804-cve-2026-13934-6bacf7/)

조사 — 패치·diff 비교 (research/20260804-cve-2026-13934-diff-92f928/)

분석 — 재현·실증(학습용) (cases/20260804-cve-2026-13934-4d10a8/)

보고서 (reports/20260804-cve-2026-13934-8400bc/)

외부 1차 출처 (요지)

  • CVE Record: https://www.cve.org/CVERecord?id=CVE-2026-13934
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-13934
  • 벤더 공지: Chrome Releases "Stable Channel Update for Desktop" (2026-06-30)
  • 수정 커밋: https://dawn.googlesource.com/dawn/+/43055cbeadddca41a9c973a809f859d641077b2f

전체 목록과 발행일·식별자는 두 조사 라인의 sources.md에 있습니다.

유형루트
조사research/
분석cases/
작업work/
보고서reports/

정기 수집: research/topics/<topic>/

규칙 (요약)

  • 텍스트만 커밋. 바이너리·덤프·스크린샷 금지. 파일 1개 ≤ 1 MiB.
  • 허용 경로: research/ · cases/ · work/ · reports/ · docs/ · .laurelin/ · .github/
  • 사람이 직접 커밋하지 않고 라우렐린 작업 프로젝트에서 지시 → 아울레가 커밋.
  • 상세 규약: docs/conventions.md
도구 다운로드
라인상태확보한 것
공개 정보·영향 범위 조사 (research/…-6bacf7/)완료 (4문서)CVE·NVD·벤더 공지 메타데이터, CWE·CVSS, 영향 버전 경계, 판단 기준 판정
패치·diff 비교 (research/…-diff-92f928/)완료 (4문서)수정 커밋 특정, 비교 기준 3층위, 변경 파일·로직 델타, 우회·잔존 위험 판정
재현·실증 (cases/…-4d10a8/)완료 (6문서) — 정적 대조 수행, 실행 수준 미관찰원인 구조, 실행 가능성·제약, 두 리비전 정적 대조 관찰값
학습 보고서 (reports/…-8400bc/)완료 (4문서)목차·인용 지도, 루트 README 초안, docs/ 문서 목록
변경파일성격
YCbCr 서술자에 주소 모드·maxAnisotropy 검사 4건 추가src/dawn/native/Sampler.cpp프론트엔드 검증 — 위반 요청을 거부
YCbCr 변환이 붙는 경로에서 주소 모드·anisotropy를 규격 준수 값으로 덮어쓰기src/dawn/native/vulkan/SamplerVk.cpp백엔드 강제 — 입력이 무엇이든 위반 상태를 만들지 않음
회귀 테스트 YCbCrSamplerRequiredParams 추가src/dawn/tests/unittests/validation/YCbCrValidationTests.cpp재발 방지
관찰 대상취약 측 54b4153c…수정 측 01249a97…확인 수준
YCbCr 검증 블록의 DAWN_INVALID_IF 수2건 (기능 게이트 + 포맷 미정의)6건실측
Vulkan 백엔드의 규격 준수 값 강제없음 (pNext 연결까지)있음실측
회귀 테스트 YCbCrSamplerRequiredParams없음 (TEST_F 23개)있음 (24개)실측
위반 요청 시 device error발생하지 않음발생예상 (코드 근거)
문서내용
docs/cve-2026-13934/overview.md개요·배경·결론 요약, 심각도 해석
docs/cve-2026-13934/root-cause-and-fix.md원인 3층 구조와 패치의 두 계층
docs/cve-2026-13934/evidence.md정적 대조 관찰값, 관찰 경로와 한계
docs/cve-2026-13934/lessons.md보안 설계·조사 방법 교훈
docs/cve-2026-13934/limits-and-sources.md한계·미확인 항목과 출처 목록
docs/conventions.md폴더·산출물 규약 (전문)
문서내용
brief.md의뢰 원문, 판단 기준 C1~C6, 공식 출처 정의
sources.mdCVE·NVD·벤더 공지 메타데이터, CWE·CVSS, 출처 간 상충
report.md영향·CVSS·취약 조건 판정, C1~C6 판정, 심각도 해석
followups.json후속 제안
문서내용
brief.md목표, 판단 기준 D1~D6, 기준 패치 트리
sources.md수정 커밋·비교 기준 쌍, DEPS·Gerrit, 추적 절차
report.md변경 파일·로직 델타·우회/잔존 위험 판정, D1~D6
followups.json후속 제안
문서내용
intake.md접수 메타, 대상·버전 범위, 착수 조건, 격리 요건, 판단 기준 J1~J4
patch_diff.md변경점·변경 이유, 패치 전후 관찰 지표
root_cause.md핵심 원인 3층 구조, 전제 P1~P7, 신뢰 경계
exploitability.md실증 가능/불가 구분, 관찰 경로, 제약, 확산 방지 경계
report.md재현 검증 종합 — 정적 대조 관찰값, 전후 차이, J1~J4 판정
followups.json후속 제안
문서내용
outline.md독자·목차·출처 인용 지도(S1~S15)
README.md이 루트 README의 승격 원본 초안
docs-index.mddocs/ 문서 목록·요약, 승격 유의 사항
followups.json후속 제안