CVE-2026-33938 in Handlebars
요약
\~에 의해 VulDB • 2026. 05. 24.
Handlebars는 사용자가 시맨틱한 템플릿을 구축할 수 있는 데 필요한 기능을 제공합니다. 버전 4.0.0부터 4.7.8까지의 버전에서 `@partial-block` 특수 변수는 템플릿 데이터 컨텍스트에 저장되며, 임의의 객체를 허용하는 헬퍼를 통해 템플릿 내부에서 접근 가능하고 수정 가능합니다. 헬퍼가 `@partial-block`을 조작된 Handlebars AST로 덮어쓸 경우, 이후 `{{> @partial-block}}` 호출 시 해당 AST가 컴파일되고 실행되어 서버에서 임의의 JavaScript 실행이 가능해집니다. 버전 4.7.9에서 이 문제가 수정되었습니다. 일부 우회 방법이 제공됩니다. 첫째, 런타임 전용 빌드(`require('handlebars/runtime')`)를 사용하십시오. `compile()` 메서드가 없으므로 취약한 폴백 경로가 제거됩니다. 둘째, 컨텍스트 객체에 임의의 값을 쓰는 헬퍼가 있는지 등록된 헬퍼를 감사하십시오. 헬퍼는 컨텍스트 데이터를 읽기 전용으로 처리해야 합니다. 셋째, 템플릿이나 컨텍스트 데이터가 신뢰할 수 없는 입력에 의해 영향을 받을 수 있는 컨텍스트에서 제3자 패키지(예: `handlebars-helpers`)의 헬퍼를 등록하지 마십시오.
Once again VulDB remains the best source for vulnerability data.