CVE-2026-100671
Grav 2.0.25 이전 버전에서 Twig 샌드박스를 통한 세션 쿠키 탈취
- 게시됨
- 2026. 9. 26.
- 업데이트됨
- 2026. 9. 26.
- CNA 할당 중
- VulnCheck
- 증거 관찰됨
- 2026. 10. 3.
기본 CVSS
nvd · CVSS 4.0
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X요약
Grav는 플랫 파일 CMS입니다. 2.0.19부터 2.0.24 버전까지 — 그리고 2.0.0부터 2.0.18 및 1.7.x에서는 콘텐츠 Twig가 명시적으로 활성화된 경우에만 — 페이지 쓰기 권한만 가진 사용자가 작성한 페이지 콘텐츠가 Twig 샌드박스를 통해 렌더링되며, 이 샌드박스는 get_cookie()를 허용 목록에 포함합니다. 이 함수는 현재 요청과 함께 전송된 모든 쿠키를 반환하며, 여기에는 방문자의 세션 쿠키도 포함됩니다. 읽기가 filter_input(INPUT_COOKIE, ...)를 통해 서버 측에서 이루어지기 때문에 HttpOnly, Secure 및 SameSite 속성은 아무런 보호를 제공하지 않습니다. 그런 다음 Grav는 완성된 Twig 처리 후 출력을 페이지 콘텐츠 캐시에 저장하는데, 이 캐시는 페이지 식별자와 구성 체크섬만을 키로 사용하며 세션, 사용자 또는 요청 차원이 없고 인증된 방문자에 대한 우회도 없습니다. 따라서 페이지 쓰기 사용자가 게시한 페이지는 해당 페이지를 열람하는 다음 관리자의 세션 식별자를 탈취할 수 있으며, 이후 캐시된 출력이 인증되지 않은 방문자에게 그 식별자를 제공하고, 이들은 해당 쿠키를 재전송하여 그 관리자로 인증할 수 있습니다. 2.0.19 이후로 security.twig_content.process_enabled는 기본값이 true이며 Security::applyTwigContentDefault()는 해당 게이트로부터 각 페이지의 process.twig 플래그를 도출하므로, 콘텐츠 Twig는 프런트매터나 운영자 조치 없이 모든 페이지에서 실행됩니다. 2.0.25에서 수정되었으며, 1.7.x는 백포트 범위 밖입니다.
소스
CVE-2026-100671에 대한 로컬 전용 개념 증명 검증기로, 루프백 대상에 대해 Grav Twig 페이지 캐시 세션 쿠키 노출 및 재생을 재현합니다.
책임 있는 사용
귀하가 소유하고 있거나 테스트할 권한이 있는 시스템에 대해서만 취약점 정보를 사용하십시오. Kitploit은 공개 연구 메타데이터에 연결되며 익스플로잇 코드나 악성 페이로드를 저장하지 않습니다.