
CVE-2026-18937(Broken Link Checker WordPressプラグイン2.4.12未満における未認証RCE)のPoCエクスプロイトおよびラボ再現パック。
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-18937
Broken Link Checker 2.4.11 — 不明
Broken Link Checker WordPress プラグインの 2.4.12 より前のバージョンは、プレーンなパーマリンクを使用しているサイトにおいて、ユーザー入力から受け入れるクエリ変数を制限していません。これにより、認証されていないユーザーが任意の PHP グローバル変数を上書きし、クラシック(非ブロック)テーマが有効な場合にサーバー上で任意のコードを実行することが可能になります。
| CVE | CVE-2026-18937 · CVE.org |
| CWE | CWE-94 |
| CVSS | Critical: 9.0 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H |
| Product | Broken Link Checker |
| Affected | 2.4.11 までのすべてのバージョン(含む) |
| Patched | 2.4.12 以降 |
| Auth | なし(ソースマップを参照) |
| License | GNU Affero GPL v3.0 |
| Lab | 127.0.0.1 のみ · ベンダー/クライアント開示パックであり、スキャナーではありません |
クエリ変数のインジェクションは、ajax アクションではなく、Webhook::parse_request が $_GET をマージすることによるものです。HTTP は GET / に追加のクエリキーを付けたものです。
GET/?page_id=4&shortcode_tags[blcpoc]=poc_witness_18937GET /?page_id=<front page id>&shortcode_tags[blcpoc]=poc_witness_18937Webhook::parse_request (plain permalinks) → $wp->query_vars += $_GETWP::register_globals → $GLOBALS['shortcode_tags']['blcpoc']=poc_witness_18937the_content('[blcpoc]') → poc_witness_18937() → POCWitness18937HTTP ボディに POCWitness18937 が含まれます。その文字列を含まない一般的なホーム HTML は該当しません。
まずこれを実行: Broken Link Checker を 2.4.12 以降に更新してください。
アップグレード後の確認
CVE-2026-18937-Abraxas-Labs.py を再実行します。マップされた witness が出現しないことを確認してください。すぐに更新できない場合
http://127.0.0.1:8088(またはバインドしたループバック)のみを対象にしてください。このスクリプトをインターネットに向けないでください。
python3 CVE-2026-18937-Abraxas-Labs.py
成功とは、レスポンスボディ内の上記の witness です。一般的な 200 HTML は該当しません。
再現に使用したループバックスタック。このフォルダ内の Dockerfile がソースからビルドする場合を除き、公式イメージです。
cd lab
docker compose up --force-recreate
YAML がローカルディレクトリをマウントする場合(バージョンテーブルからのプラグイン zip / ソースタグ)、脆弱な製品ツリーを Compose の隣にバインドしてください。127.0.0.1 以外は公開しないでください。
# CVE-2026-18937 (structured records)
- input: `https://nvd.nist.gov/vuln/detail/CVE-2026-18937`
- CWE: CWE-94
- published: 2026-08-19T06:17:38.847
## NVD description
The Broken Link Checker WordPress plugin before 2.4.12 does not limit which query variables it accepts from user input on sites using plain permalinks, allowing unauthenticated users to overwrite arbitrary PHP global variables, and to execute arbitrary code on the server when a classic (non-block) is active.
## MITRE description
The Broken Link Checker WordPress plugin before 2.4.12 does not limit which query variables it accepts from user input on sites using plain permalinks, allowing unauthenticated users to overwrite arbitrary PHP global variables, and to execute arbitrary code on the server when a classic (non-block) is active.
## Affected
- Unknown Broken Link Checker 0 affected
## References (JSON sources only)
- https://wpscan.com/vulnerability/a23b76eb-107d-4e02-8eae-c3c5fa5b003d/
- https://github.com/advisories/GHSA-c2xc-88v3-37g2
- https://nvd.nist.gov/vuln/detail/CVE-2026-18937
- https://wpscan.com/vulnerability/a23b76eb-107d-4e02-8eae-c3c5fa5b003d
## GitHub advisory
The Broken Link Checker WordPress plugin before 2.4.12 does not limit which query variables it...
The Broken Link Checker WordPress plugin before 2.4.12 does not limit which query variables it accepts from user input on sites using plain permalinks, allowing unauthenticated users to overwrite arbitrary PHP global variables, and to execute arbitrary code on the server when a classic (non-block) is active.
この開示パックは GNU Affero General Public License v3.0 の下でライセンスされています。LICENSE を参照してください。
このパックはベンダー、サイト所有者、およびライセンスを受けたラボ向けです。スクリプトは 127.0.0.1 と通信します。所有していないシステムに対して使用することは、Abraxas Labs によって許可されていません。保証はありません。