CVE-2026-76845 in adm-zip
요약
\~에 의해 VulDB • 2026. 08. 24.
adm-zip 0.5.9부터 0.6.0까지 버전은 추출 대상에서 심볼릭 링크를 따릅니다. util/utils.js의 Utils.sanitize는 아카이브 엔트리 이름의 문자열 형태를 해결된 추출 루트와 비교함으로써 격리(containment)를 강제하지만, Utils.writeFileTo는 fs.openSync(path, "w", 0o666)로 계산된 대상 파일을 열며, 이는 심볼릭 링크를 해석하고 O_NOFOLLOW 플래그나 쓰기 전 fs.lstatSync 검사를 포함하지 않습니다. 추출 루트 외부를 가리키는 심볼릭 링크가 이미 대상의 경로 구성 요소로 존재할 경우, extractAllTo, extractAllToAsync 및 extractEntryTo는 해당 링크를 통해 엔트리 내용을 작성한 후 그 타겟 파일에 chmod을 수행하여, 아카이브 내에 어떤 트래버설 시퀀스(traversal sequence)도 나타나지 않은 상태로 공격자가 제어하는 콘텐츠를 루트 외부의 파일에 배치합니다. 선행 fs.existsSync 체크 역시 링크를 해석하며 그렇지 않을 경우 작성을 거부하므로, 쓰기가 이루어지기 위해서는 overwrite 옵션이 활성화되어 있어야 합니다. 공유되거나 재사용되는 예측 가능한 추출 디렉토리(예: 임시 디렉토리 또는 지속적 통합 워크스페이스) 내부에서 심볼릭 링크를 생성할 수 있는 공격자는 추출 프로세스가 쓰기 권한을 가진 모든 파일을 덮어쓸 수 있습니다.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.