The PPWP – Password Protect WordPress | #1 Most-Reviewed Password Plugin plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the plugin's 'ppwp' shortcode in all versions up to, and including, 1.9.21 due to insufficient input sanitization and output escaping on user supplied attributes. This makes it possible for authenticated attackers, with contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.
Security readout for executives and security teams
Plain-English summary
A logged-in WordPress user with Contributor privileges or higher may place persistent script content into a PPWP shortcode. That script can run when someone visits the affected page, potentially exposing browser-accessible information or altering page behavior. The reported severity is medium (CVSS 6.4).
Executive priority
Prioritize remediation on public sites where multiple people can create content, accounts may be shared, or privileged accounts are weakly protected. Treat as a scheduled security update with accelerated handling if suspicious content or account activity exists. Emergency response is not supported by the supplied exploitation evidence alone.
Technical view
CVE-2025-9878 is stored cross-site scripting caused by insufficient sanitization and output escaping of user-controlled attributes in the PPWP shortcode. The description reports PPWP versions through 1.9.21 as vulnerable. Exploitation requires an authenticated Contributor-level or higher account, but the injected script subsequently executes when the affected page is accessed.
Likely exposure
Exposure is likely limited to WordPress sites running the PPWP plugin through version 1.9.21 that grant untrusted or compromised accounts Contributor-level content permissions. Sites without the plugin, outside the reported version range, or without such accounts are less exposed. The bundle’s structured affected-version entry is inconsistent with its description, so inventory findings require vendor confirmation.
Exploitation context
The source bundle does not report active exploitation, and the CVE is not identified as being in KEV. The attack requires authenticated Contributor-level access or higher, reducing initial reach. Stored execution against later page visitors makes compromised publishing accounts and broadly viewed injected pages the main risk factors.
Researcher notes
The CVSS 3.1 vector is 6.4: network reachable, low complexity, low privileges, no victim interaction requirement, changed scope, and low confidentiality and integrity impact. The description names versions through 1.9.21, while the structured affected record lists version “0” with default unaffected status. Confirm exact version boundaries and remediation from current vendor guidance.
Mitigation direction
Check current WordPress and plugin vendor guidance for the confirmed fixed version or mitigation.
Upgrade PPWP to a vendor-confirmed non-vulnerable release when available.
Temporarily restrict Contributor permissions and shortcode use for accounts that are not fully trusted.
Review and remove suspicious PPWP shortcode attributes from existing content.
Disable the plugin if exposure cannot be safely mitigated and business operations permit.
Validation and detection
Inventory WordPress sites using PPWP and record each installed version.
Identify accounts with Contributor, Author, Editor, or Administrator permissions.
Review content revisions and audit logs for unexpected PPWP shortcode changes.
After remediation, verify shortcode attributes are sanitized and safely encoded in controlled staging tests.
Confirm the deployed version against current vendor or WordPress plugin guidance.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · medium confidence lookup
CWE-79: User-session and phishing behavior lookup
Client-side and session-facing weaknesses should be reviewed alongside initial-access and user-execution behaviors. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
The CVE wording references authentication or credential exposure, so valid-account and credential-access review may help. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.