취약점  ·  2026-10-15

Ludwig (LLM 프레임워크) 데이터셋 아카이브 추출: 심볼릭 링크/하드 링크 tar-slip → 데이터셋 로드 시 임의 파일 쓰기

취약점Medium 영향도GlobalCVE-2026-104103
NVD REST API를 통해 검증됨(2026-10-14 게시, CVSS 8.1, CWE-22/59, GHSA-qvrm-3x4c-rcxf). 수정 버전(0.17.8)은 데이터셋 아카이브 추출 경로에서 이스케이프 링크 멤버를 거부합니다.
ML 훈련 파이프라인은 일상적으로 원격/호스팅 소스에서 데이터셋 아카이브를 가져옵니다. 손상된 아카이브는 프레임워크가 오케스트레이터 권한으로 실행되는 동안 파일(예: 구성, 캐시 또는 모델 디렉토리)을 심을 수 있습니다. 이는 ML 빌드에 대한 실질적인 오염/덮어쓰기 경로입니다. 트레이너는 고정되고 검증된 소스에서만 추출하고 샌드박스/최소 권한 컨텍스트에서 추출을 실행해야 합니다.
extract_archive()는 TarFile.extractall() 전에 tar 멤버 이름을 검증하지만 심볼릭 링크/하드 링크 멤버는 검증하지 않습니다. 조작된 아카이브는 추출 디렉토리를 이스케이프하는 링크를 생성한 다음 후속 멤버를 통해 임의 파일 시스템 경로에 씁니다(CWE-22/59). commonprefix 포함 검사는 대상의 문자 접두사를 공유하는 형제 경로도 허용합니다. Python 3.14는 면역입니다(기본 tar 데이터 필터).
ludwig-ai/ludwig < 0.17.8 (Python 3.12/3.13)
ludwig >= 0.17.8로 업그레이드하세요. 추출 전에 아카이브 출처를 검증하세요. 제한된 파일 시스템 액세스로 컨테이너에서 데이터셋 수집을 실행하는 것이 좋습니다.
NVD CVE-2026-104103GitHub advisory GHSA-qvrm-3x4c-rcxf
라이브 피드에서 보기 AI 보안 및 거버넌스 관련 소식을 더 살펴보세요 — 매일 아침 업데이트.
피드 열기 →