🔍 CVE-2026-34166

3.7
CVSS Score
LOW
2026-04-08
2026-07-24 22:10
✅ 완료

🇰🇷 한글 설명

LiquidJS의 replace 필터가 memoryLimit 옵션 활성화 시 메모리 사용량을 잘못 계산하는 취약점입니다. 공격자가 템플릿 내용을 제어할 수 있을 경우, 메모리 제한 보호 기능을 우회하여 약 2,500배의 증폭 효과로 메모리 부족(OOM) 상태를 유발할 수 있습니다.

💡 쉬운 설명

메모리 사용량을 실제보다 훨씬 적게 계산하는 오류를 이용해 서버의 메모리를 강제로 가득 채우는 공격입니다. 이로 인해 서버가 과부하되어 서비스가 중단될 수 있습니다.

🇺🇸 원문 (English)

LiquidJS is a Shopify / GitHub Pages compatible template engine in pure JavaScript. Prior to 10.25.3, the replace filter in LiquidJS incorrectly accounts for memory usage when the memoryLimit option is enabled. It charges str.length + pattern.length + replacement.length bytes to the memory limiter, but the actual output from str.split(pattern).join(replacement) can be quadratically larger when the pattern occurs many times in the input string. This allows an attacker who controls template content to bypass the memoryLimit DoS protection with approximately 2,500x amplification, potentially causing out-of-memory conditions. This vulnerability is fixed in 10.25.3.

📍 영향받는 시스템

LiquidJS 10.25.3 미만 버전

⚔️ 공격 벡터

템플릿 내 replace 필터에 특수하게 조작된 입력값을 넣어 메모리 사용량을 폭증시킴

🛡️ 대응 방법

LiquidJS를 10.25.3 버전 이상으로 업데이트

🔧 검증 코드

출력된 버전 번호가 10.25.3보다 낮은 경우 업데이트가 필요합니다.

Shell / Script
npm list liquidjs | grep -E 'liquidjs@([0-9.]+)'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L

💻 영향받는 소프트웨어

Git