
# CVE-2026-23745 개념 증명 익스플로잇 node-tar의 경로 탐색 취약점으로, 악성 tar 아카이브를 통해 임의 파일 덮어쓰기를 허용합니다.
CVE-2026-23745에 대한 PoC로, node-tar(<7.5.2)의 높은 심각도 경로 탐색 취약점입니다.
이 라이브러리는 하드링크 및 심볼릭 링크의 linkpath 필드에 있는 절대 경로를 검증하지 못합니다. 이로 인해 악성 tar 아카이브가 추출 루트를 우회하고, preservePaths: false가 설정된 경우에도 호스트 시스템의 임의 파일을 덮어쓸 수 있습니다.
src/unpack.ts에 위치합니다. 이 라이브러리는 검증되지 않은 사용자 입력에 path.resolve()를 사용합니다:
// 버그: 두 번째 인수가 절대 경로인 경우 path.resolve는 'cwd'를 무시합니다
const target = path.resolve(this.cwd, String(entry.linkpath))
공격자가 tar 헤더에 절대 경로(예: /etc/passwd)를 제공하면, node-tar는 이를 추출 디렉터리 대신 시스템 루트로 해석합니다.
포함된 poc.js는 악성 아카이브를 생성하고 로컬 secret.txt 파일을 덮어쓰려고 시도합니다.
취약한 버전 설치:
npm install [email protected]
익스플로잇 생성기 실행:
node poc.js
출력:
[+] VULN CONFIRMED: Hardlink overwrite successful
Target file content changed to: OVERWRITTEN
v7.5.3에서 패치되었습니다. 이 업데이트는 해석 전에 링크 대상을 검증하기 위해 stripAbsolutePath()를 추가합니다.
참고 자료: