
CVE-2026-18937에 대한 개념 증명 익스플로잇 및 실습 재현 패키지로, Broken Link Checker WordPress 플러그인 2.4.12 이전 버전의 인증되지 않은 RCE 취약점입니다.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-18937
Broken Link Checker 2.4.11 — 알 수 없음
Broken Link Checker WordPress 플러그인 2.4.12 이전 버전은 일반 고유주소(plain permalinks)를 사용하는 사이트에서 사용자 입력으로부터 허용하는 쿼리 변수를 제한하지 않아, 인증되지 않은 사용자가 임의의 PHP 전역 변수를 덮어쓸 수 있고, 클래식(비블록) 테마가 활성화된 경우 서버에서 임의 코드를 실행할 수 있습니다.
| CVE | CVE-2026-18937 · CVE.org |
| CWE | CWE-94 |
| CVSS | 치명적: 9.0 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H |
| 제품 | Broken Link Checker |
| 영향받는 버전 | 2.4.11까지 모든 버전 (포함) |
| 패치됨 | 2.4.12 및 이후 |
| 인증 | 없음 (소스 맵 참조) |
| 라이선스 | GNU Affero GPL v3.0 |
| 랩 | 127.0.0.1 전용 · 벤더/클라이언트 공개 패키지, 스캐너 아님 |
쿼리 변수 주입은 ajax action=이 아니라 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 (일반 고유주소) → $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에 의해 승인되지 않습니다. 보증은 없습니다.