🇰🇷 한글 설명
LiquidJS는 JavaScript 기반의 템플릿 엔진입니다. 10.25.3 이전 버전에서 renderFile() 및 parseFile() 함수가 루트 디렉토리 경계를 제대로 강제하지 않는 취약점이 발견되었습니다. 특히 루트 디렉토리가 빈 임시 디렉토리로 설정된 경우, 공격자가 서버의 임의 파일을 읽을 수 있습니다.
💡 쉬운 설명
웹사이트 화면을 만드는 도구의 보안 설정에 구멍이 생겨 발생한 문제입니다. 이 틈을 통해 공격자가 서버에 저장된 민감한 비밀 파일들을 몰래 훔쳐볼 수 있습니다.
🇺🇸 원문 (English)
LiquidJS is a Shopify / GitHub Pages compatible template engine in pure JavaScript. Prior to 10.25.3, liquidjs 10.25.0 documents root as constraining filenames passed to renderFile() and parseFile(), but top-level file loads do not enforce that boundary. A Liquid instance configured with an empty temporary directory as root can return the contents of arbitrary files. This vulnerability is fixed in 10.25.3.
📍 영향받는 시스템
liquidjs 10.25.0 이상 10.25.3 미만 버전
⚔️ 공격 벡터
부적절한 경로 검증을 이용한 임의 파일 읽기 (Arbitrary File Read)
🛡️ 대응 방법
liquidjs 패키지를 10.25.3 버전 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 번호가 10.25.3보다 낮을 경우 취약한 상태입니다.
npm list liquidjs | grep -E 'liquidjs@([0-9.]+)'