开源工具
dev.to ·
@StarkMan
Click2Shell 暴露面:790 万 WordPress 资产能说明与不能说明什么
2026 年 9 月 21 日披露的 Click2Shell 是 WordPress Core 中的未认证 RCE 链:构造链接使已登录管理员浏览器自动安装目录主题,再由主题未受保护的 AJAX 处理器拉取并执行攻击者 PHP。WordPress 已在 7.1.1 通过 changeset 63664 修复,暂无 CVE,研究者称未见在野利用。披露后一天 ZoomEye 查询 app="WordPress" 返回 7,945,496 个资产,但该数字不等于全部被攻陷,攻击链每一阶段都需已登录管理员这一门槛。
AI推荐理由 对 Click2Shell 漏洞披露的解读较克制:说明未认证 RCE 链需已登录管理员这一前置条件,WordPress 已在 7.1.1 修复(changeset 63664),尚无 CVE、无在野利用报告,并指出 7,945,496 个匹配资产不等于全部被入侵。属于安全事件分析,与 AI 主题关联弱,但事实边界清晰、有助避免误读。
66
正文
Click2Shell Exposure: What 7.9 Million WordPress Assets Do and Do Not Tell You
The Click2Shell disclosure on September 21, 2026 described an unauthenticated RCE chain in WordPress Core: a crafted link makes a logged-in administrator's browser install a catalog theme automatically, then the theme's unprotected AJAX handler pulls attacker PHP from a remote package and executes it. WordPress shipped the fix in 7.1.1 via changeset 63664. No CVE exists yet, and researchers reported no in-the-wild exploitation.
Within a day of the disclosure, a ZoomEye query for app="WordPress" returned 7,945,496 matching assets globally (executed 2026-09-22, UTC). Headline numbers like this invite two opposite mistakes: dismissing the event as noise, or treating every matched host as compromised. Both are wrong, and the difference lies in reading the exposure surface correctly.
The chain has an authentication-shaped gate
Every stage of Click2Shell requires one thing before any code runs: a logged-in administrator must visit an attacker-chosen URL. There is no need for attacker WordPress credentials, but there is also no code execution without that visit. This shapes the real exposure surface. A WordPress instance is materially at risk only where some administrator might plausibly click such a link, which is nearly everywhere in practice, but the attack is a social-engineering-assisted chain, not an open unauthenticated door into PHP execution.
The count of 7.9 million describes indexed product assets. It is not a count of vulnerable patch levels, and it is certainly not a count of successful attacks.
Version and component boundaries
The exposure surface has two distinct layers:
Core layer: the theme-slug parser discrepancy affects all WordPress versions before 7.1.1. Patching to 7.1.1 or later closes the forced-installation stage.
Theme layer: the second stage abuses unprotected AJAX endpoints in catalog themes, identified specifically in Mobile Repair Zone 2.5.4 and over 40 other themes. A patched core with a vulnerable inactive theme still carries the second-stage code if an attacker can get that theme loaded during a Customizer preview.
This is why a single product fingerprint cannot represent the whole surface. ZoomEye's app="WordPress" query answers "where is WordPress", which is the outer boundary of the problem. It cannot answer "which of these runs a vulnerable theme", because themes are not part of the product fingerprint.
Reading the number responsibly
For teams using ZoomEye during this event, the query's verified use is scoping and prioritization: locating WordPress assets in a network range, comparing counts before and after cleanup, or flagging assets that reappear after being decommissioned. The observation should be recorded with its query, timestamp and total, and any report should repeat the caveat: indexed assets are not confirmed vulnerable hosts, and exposure count is not a breach count.
References
SecurityOnline.info, "WordPress Click2Shell Vulnerability Triggers Core RCE, PoC Published", September 21, 2026.
pwn.ai technical report on the Click2Shell chain, as cited by the source article.
ZoomEye query record: app="WordPress", 2026-09-22, 7,945,496 results.