CVE-2026-23950
node-tar는 macOS APFS에서 유니코드 합자 충돌을 통한 경로 예약의 경쟁 조건(Race Condition) 취약점이 있습니다.
- 게시됨
- 2026. 1. 20.
- 업데이트됨
- 2026. 9. 1.
- CNA 할당 중
- GitHub_M
- 증거 관찰됨
- 2026. 8. 25.
기본 CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:H/A:L낮음 · 다음 30일
- 백분위수
- 17.7%
- 모델 날짜
- 2026. 9. 21.
EPSS는 통계적 추정치이지 확실성이나 영향의 척도가 아닙니다. 이를 CVSS, KEV 상태, 노출 및 환경과 결합하세요.
요약
# node-tar, Node.js용 Tar, 7.5.3 이하 버전에서 경쟁 조건 취약점 보유 node-tar(Node.js용 Tar)는 7.5.3 이하 버전에서 경쟁 조건(Race Condition) 취약점을 보유하고 있습니다. 이는 `path-reservations` 시스템에서 유니코드 경로 충돌 처리가 불완전하기 때문에 발생합니다. 대소문자를 구분하지 않거나 정규화를 구분하지 않는 파일 시스템(예: 테스트가 수행된 macOS APFS)에서 라이브러리는 충돌하는 경로(예: `ß`와 `ss`)를 잠그지 못하여 병렬로 처리되도록 허용합니다. 이는 라이브러리의 내부 동시성 보호 장치를 우회하며, 경쟁 조건을 통한 심볼릭 링크 중독(Symlink Poisoning) 공격을 가능하게 합니다. 라이브러리는 `PathReservations` 시스템을 사용하여 동일한 경로에 대한 메타데이터 검사와 파일 작업이 직렬화되도록 보장합니다. 이는 한 항목이 동시에 다른 항목을 덮어쓰는 경쟁 조건을 방지합니다. 이는 임의 파일 덮어쓰기(Arbitrary File Overwrite)를 가능하게 하는 경쟁 조건입니다. 이 취약점은 macOS(APFS/HFS+)에서 node-tar를 사용하는 사용자와 시스템에 영향을 미칩니다. `NFD` 유니코드 정규화(여기서 `ß`와 `ss`는 서로 다름)를 사용하기 때문에, 유니코드 정규화를 무시하는 파일 시스템(예: `ß`가 `ss`와 inode 충돌을 일으키는 APFS)에서는 충돌하는 경로의 순서가 제대로 유지되지 않습니다. 이로 인해 공격자는 악성 tar 아카이브 내의 충돌하는 파일 이름을 사용하여 내부 병렬화 잠금(`PathReservations`)을 우회할 수 있습니다. 7.5.4 버전의 패치는 `path-reservations.js`를 업데이트하여 대상 파일 시스템의 동작(예: `NFKD`)과 일치하는 정규화 형식을 사용한 후, 먼저 `toLocaleLowerCase('en')`을 적용하고 그 다음 `toLocaleUpperCase('en')`을 적용하도록 합니다. 해결 방법으로, 신속하게 업그레이드할 수 없고 프로그래밍 방식으로 `node-tar`를 사용하여 임의의 tarball 데이터를 추출하는 사용자는 (npm이 수행하는 것처럼) 모든 `SymbolicLink` 항목을 필터링하여 이 파일 시스템 항목 이름 충돌 문제를 통한 임의 파일 쓰기로부터 방어해야 합니다.
소스
1tar npm 패키지(v7.5.3)의 경쟁 조건(race condition)을 시연하는 개념 증명으로, 병렬 추출 중 파일 충돌을 유발하여 데이터 손상 또는 덮어쓰기를 초래합니다.
책임 있는 사용
귀하가 소유하고 있거나 테스트할 권한이 있는 시스템에 대해서만 취약점 정보를 사용하십시오. Kitploit은 공개 연구 메타데이터에 연결되며 익스플로잇 코드나 악성 페이로드를 저장하지 않습니다.