CVE-2026-33940 in Handlebars정보

요약

\~에 의해 VulDB • 2026. 05. 25.

Handlebars는 사용자가 시맨틱한 템플릿을 구축할 수 있는 데 필요한 기능을 제공합니다. 버전 4.0.0부터 4.7.8까지의 버전에서, 템플릿 컨텍스트에 배치된 조작된 객체는 `resolvePartial()` 내의 모든 조건부 방어 기제를 우회하여 `invokePartial()`이 `undefined`를 반환하도록 할 수 있습니다. 그 결과 Handlebars 런타임은 해결되지 않은 부분 템플릿을 컴파일해야 하는 소스로 처리하며, 조작된 객체를 `env.compile()`에 전달합니다. 이 객체는 주입된 코드를 포함하는 유효한 Handlebars AST이므로, 생성된 JavaScript는 서버에서 임의의 명령을 실행합니다. 이 공격은 공격자가 동적 부분 템플릿 조회(dynamic partial lookup)를 통해 반환될 수 있는 값을 제어할 수 있어야 합니다. 버전 4.7.9에서 이 문제가 수정되었습니다. 일부 우회 방법이 존재합니다. 첫째, 런타임 전용 빌드(`require('handlebars/runtime')`)를 사용하십시오. `compile()`이 없으면 `invokePartial` 내의 폴백 컴파일 경로에 도달할 수 없습니다. 둘째, 렌더링 전에 컨텍스트 데이터를 검사하십시오: 컨텍스트 내의 값이 동적 부분 템플릿에 전달될 수 있는 비원시(non-primitive) 객체가 아닌지 확인하십시오. 셋째, 컨텍스트 데이터가 사용자 제어 하에 있을 경우 동적 부분 템플릿 조회(`{{> (lookup ...)}}`)를 피하십시오.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

책임이 있는

GitHub M

예약하다

2026. 03. 24.

모더레이션

수락

항목

VDB-354009

EPSS

0.00703

출처

Want to stay up to date on a daily basis?

Enable the mail alert feature now!