
WebKitGTK 파일 DnD 복원에 대한 비공개 연구 및 검증(CVE-2025-13947 후속 조치)
CVE-2025-13947 이후 WebKitGTK 및 WPE에서 신뢰할 수 있는 파일 드래그 앤 드롭을 복원하기 위한 연구 및 CI 노트북.
CVE-2025-13947(WSA-2025-0009, GHSA-j77f-3hf7-7rvg)은 WebKitGTK에서 드래그 앤 드롭을 통해 웹 콘텐츠가 로컬 파일 내용을 읽을 수 있게 했습니다. 업스트림 수정(bugs.webkit.org 303434)은 광범위한 비활성화였습니다. allowsFileAccess()가 모든 비 Cocoa 포트에서 false를 반환하므로, 사용자가 파일 관리자에서 업로드 대상으로 자신의 파일을 끌어다 놓는 경우를 포함한 모든 드롭에서 dataTransfer.files가 비어 있게 되었습니다. Epiphany 스타일 브라우저와 임베디드 WebKitGTK 업로드 UI는 이 기능을 잃었습니다. Bug 320301은 동일한 회귀에 대한 최종 사용자 보고입니다.
기능을 비활성화하는 대신 플랫폼 경계에서 신뢰를 분할합니다. 엔진 포크 sirredbeard/WebKit의 gtk-dnd-file-access-reenable 브랜치에 하나의 커밋:
SelectionData::setURIList()는 더 이상 uri-list 줄을 파일 이름으로 승격하지 않습니다. 파일 권한은 두 UIProcess 드롭 대상과 IPC 디코드에서 사용되는 명시적 세터에서만 제공됩니다.allowsFileAccess()는 GTK 및 WPE에서 실제 파일 드래그에 대해서만 를 반환합니다.trueGdkFileList가 병렬 uri-list보다 우선하며, 동일한 파일 URI 호스트 검사가 두 경로 모두에 적용됩니다.file:// 줄을 제거하고 GdkFileList를 절대 내보내지 않습니다.file://host/path는 호스트가 비어 있거나 localhost가 아닌 경우 거부됩니다.filenames는 자체 필드로 IPC를 통과하며 웹 프로세스 복사본은 드래그 시작 시 지워집니다.웹 작성 드래그 소스는 파일 내용을 얻지 못합니다. 외부 파일의 사용자 드롭은 dataTransfer.files를 부여합니다. 클립보드 감사가 있을 때까지 붙여넣기는 비활성화된 상태로 유지됩니다.
2026-09-03에 업스트림으로 제출됨.
2fd5c6cb7ea7, 트리 bc272e2a5ebe, 현재 업스트림 main 기준d364838bce86에 기록됨. 현재 트리에 대한 재실행이 필요함findings/findings/upstream-strategy.mdfindings/testing-plan.mdbug_report.md.github/copilot-instructions.mdmain에 단일 스쿼시 커밋, 다른 브랜치 없음. 엔진 전용 접근 방식보다 앞선 패키징 및 GUI 검증 메커니즘은 제거되었습니다. findings/는 결론을 산문으로 유지합니다.