BLOG2026-08-15
blog
[🥇 Gold 3] 화이트리스트에서 빠진 옵션 하나 — DreamHack ejs@3.1.8 풀이
라우트라고는 res.render에 req.query를 그대로 넘기는 한 줄이 전부다. EJS 3.1.8은 express 경로에서 settings의 view options를 키 제한 없이 옵션으로 복사하는데, CVE-2022-29078 패치가 검사를 붙인 건 세 개뿐이었다. 검사에서 빠진 escape로 컴파일 소스에 코드를 이어붙여 언인증 RCE까지 간다.
#dreamhack#ctf#web+6