🇰🇷 한글 설명
Perfmatters 워드프레스 플러그인의 PMCS::action_handler() 메서드에서 nonce 검증 및 권한 확인이 부족하여 경로 순회를 통한 임의 파일 덮어쓰기가 가능합니다. 구독자 이상의 인증된 사용자가 $_GET['snippets'][] 파라미터를 조작하여 서버의 중요 파일을 손상시킬 수 있습니다.
💡 쉬운 설명
워드프레스 플러그인의 권한 확인 부족으로 로그인한 일반 사용자가 서버의 중요 파일들을 덮어써서 웹사이트를 마비시킬 수 있는 취약점입니다. 공격자가 .htaccess나 index.php 같은 파일을 손상시켜 서비스 거부를 야기할 수 있습니다.
🇺🇸 원문 (English)
The Perfmatters plugin for WordPress is vulnerable to arbitrary file overwrite via path traversal in all versions up to, and including, 2.5.9. This is due to the `PMCS::action_handler()` method processing the bulk action `activate`/`deactivate` handlers without any authorization check or nonce verification. The `$_GET['snippets'][]` values are passed unsanitized to `Snippet::activate()`/`Snippet::deactivate()` which call `Snippet::update()` then `file_put_contents()` with the traversed path. This makes it possible for authenticated attackers, with Subscriber-level access and above, to overwrite arbitrary files on the server with a fixed PHP docblock content, potentially causing denial of service by corrupting critical files like `.htaccess` or `index.php`.
📍 영향받는 시스템
Perfmatters WordPress plugin v2.5.9 이하 모든 버전
⚔️ 공격 벡터
구독자 이상 권한의 인증된 계정으로 bulk action activate/deactivate를 통해 경로 순회(../) 포함 파일 경로를 전송하여 임의 파일 덮어쓰기
🛡️ 대응 방법
Perfmatters 플러그인을 2.5.10 이상으로 업데이트하고, 필요하지 않은 사용자에 대해 파일 편집 권한을 제거하여 권한 최소화
🔧 검증 코드
설치된 Perfmatters 버전이 2.5.10 이상인지 확인하고, 2.5.9 이하면 즉시 업데이트 필요
wp plugin list --field=name,version 2>/dev/null | grep -i perfmatters