What changed
WordPress 7.1.1, released September 17, includes a security fix for specially crafted URLs that can automatically install and preview an inactive theme from WordPress.org. On September 18, pwn.ai published the technical disclosure and named the chain Click2Shell. The Core flaw is a selector/parsing mismatch in the theme-preview flow: attacker-controlled URL syntax can survive into browser-side selector construction and trigger the Install control. pwn.ai then demonstrated that WordPress can load PHP from the newly installed but inactive theme during a Customizer preview, allowing the forced-install primitive to be chained with a separate vulnerable catalog theme into attacker-supplied PHP execution.
Why it matters
The important boundary is that 'inactive' WordPress theme code is not necessarily inert. A logged-in administrator does not need to approve the theme installation or activate it for the demonstrated chain to reach PHP code. That makes the Core flaw more consequential than a UI-only forced action and gives WordPress operators a concrete reason to treat 7.1.1 as an urgent security update even when they tightly control who can install themes manually.
A crafted preview URL could trigger Install without an explicit install action
pwn.ai found that the WordPress.org Themes API and browser-side JavaScript interpreted a theme-preview value differently. The API reduced it to an ordinary theme slug while the browser retained punctuation that was inserted into a jQuery selector. The crafted selector could then walk into the theme card's Install control and trigger it automatically when a logged-in administrator visited the link.
Inactive theme code made the forced install useful to an attacker
Forced installation alone only pulls a theme from the official WordPress.org catalog. The researchers demonstrated a second step using Mobile Repair Zone 2.5.4: WordPress loaded the inactive theme's PHP during Customizer preview, exposing an inadequately protected plugin-installation handler. That handler could fetch and load attacker-supplied PHP. The full chain therefore depends on both the Core flaw and vulnerable theme code, rather than making every forced theme install immediate arbitrary code execution.
WordPress 7.1.1 escapes the URL-derived selector input
The Core patch constrains the browser-side selector to a theme card and escapes the slug before it enters selector syntax. WordPress lists the issue among 11 security fixes in 7.1.1 and recommends immediate updating. The release also shipped corresponding security updates for older branches.
Patch first, then consider unexpected theme inventory
Sites below the patched release should update promptly. Operators responsible for sensitive installations should also know that an unexpected inactive theme can matter: the demonstrated chain never required the attacker's chosen theme to become the site's active presentation theme. Theme inventory and filesystem changes therefore remain useful evidence when investigating suspicious administrator browsing or compromise.