🇰🇷 한글 설명
Grav 2.0.4 미만 버전의 regex_replace 필터 및 함수에서 정규 표현식 서비스 거부(ReDoS) 취약점이 발견되었습니다. Twig 콘텐츠 샌드박스가 활성화된 경우, 인증된 페이지 편집자가 악의적인 PCRE 패턴을 입력하여 PHP의 preg_replace() 함수에서 무한 백트래킹을 유발하고 CPU 자원을 고갈시킬 수 있습니다.
💡 쉬운 설명
웹사이트 편집 권한을 가진 사용자가 특수한 코드를 입력하면 서버의 계산 능력을 과도하게 사용하여 웹사이트를 멈추게 만들 수 있는 문제입니다. 이는 서버의 CPU를 100% 점유하여 정상적인 서비스 이용을 방해합니다.
🇺🇸 원문 (English)
Grav before 2.0.4 contains a regular expression denial of service (ReDoS) vulnerability in the regex_replace filter and function, which are allowlisted in the Twig content sandbox. When Twig processing in page content is enabled (security.twig_content.process_enabled: true, disabled by default), an authenticated page editor can supply a catastrophically backtracking PCRE pattern that is passed directly to PHP's preg_replace(), causing unbounded CPU consumption and denial of service to the web server process.
📍 영향받는 시스템
Grav version < 2.0.4 (security.twig_content.process_enabled: true 설정 시)
⚔️ 공격 벡터
인증된 페이지 편집자가 Twig 템플릿 내 regex_replace 함수에 악의적인 정규 표현식 패턴을 삽입하여 공격
🛡️ 대응 방법
Grav를 2.0.4 이상의 최신 버전으로 업데이트하거나, Twig 콘텐츠 프로세싱 설정을 비활성화(false)합니다.
🔧 검증 코드
composer.json 파일 내의 Grav 버전이 2.0.4 미만인지 확인하여 취약 여부를 판단합니다.
grep -r "version:" composer.json | grep -E '2\[0-3\.\d+'