🇰🇷 한글 설명
Supsystic의 Contact Form 플러그인이 샌드박싱되지 않은 Twig 템플릿 엔진을 사용하면서 GET 파라미터를 통해 인증되지 않은 사용자가 임의의 Twig 표현식을 주입할 수 있는 SSTI 취약점입니다. 공격자는 Twig의 registerUndefinedFilterCallback() 메서드를 악용하여 서버에서 임의의 PHP 함수 및 OS 명령을 실행할 수 있습니다.
💡 쉬운 설명
WordPress 플러그인이 링크 파라미터를 통해 악의적인 명령을 실행하도록 속을 수 있는 심각한 결함입니다. 누구나 특별한 권한 없이 서버를 장악할 수 있습니다.
🇺🇸 원문 (English)
The Contact Form by Supsystic plugin for WordPress is vulnerable to Server-Side Template Injection (SSTI) leading to Remote Code Execution (RCE) in all versions up to, and including, 1.7.36. This is due to the plugin using the Twig `Twig_Loader_String` template engine without sandboxing, combined with the `cfsPreFill` prefill functionality that allows unauthenticated users to inject arbitrary Twig expressions into form field values via GET parameters. This makes it possible for unauthenticated attackers to execute arbitrary PHP functions and OS commands on the server by leveraging Twig's `registerUndefinedFilterCallback()` method to register arbitrary PHP callbacks.
📍 영향받는 시스템
WordPress Contact Form by Supsystic 플러그인 1.7.36 이하 모든 버전
⚔️ 공격 벡터
비인증 사용자가 GET 파라미터 cfsPreFill에 Twig 템플릿 페이로드를 주입하여 RCE 실행
🛡️ 대응 방법
플러그인을 1.7.37 이상으로 즉시 업데이트하거나, 긴급 시 플러그인 비활성화/제거
🔧 검증 코드
설치된 플러그인 경로가 표시되면 해당 플러그인 폴더의 plugin.php에서 버전을 확인하여 1.7.36 이하인지 검증
find /var/www/html/wp-content/plugins -name '*supsystic*' -o -name '*contact-form*' 2>/dev/null | head -5