# CVE-2026-96765: WPO365 | LOGIN stored cross-site scripting in id_token

Source: https://junglewise.ai/threats/cve-2026-96765-the-wpo365-seamless-wordpress-microsoft-integration-wpo365-login  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-10-10. Updated: 2026-10-16  
License: CC BY 4.0 with a link back

CVE-2026-96765 · Severity: high · CVSS 7.2 · Published 2026-10-10

WPO365 | LOGIN is a WordPress plugin that integrates Microsoft authentication. An attacker can inject malicious scripts into the plugin's error storage by forging a specially crafted token, which then execute when WordPress administrators visit the WPO365 setup page, potentially leading to account compromise or unauthorized actions.

Technologies: [WPO365 | Login](https://junglewise.ai/threats/technologies/wpo365-login). Vendors: [WPO365](https://junglewise.ai/threats/vendors/wpo365).

## Quick answers

**Is CVE-2026-96765 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-96765 being exploited in the wild.

**How severe is CVE-2026-96765?** High severity, with a CVSS score of 7.2, published 10 October 2026.

**Which products and versions are affected?** WPO365 | Login up to and including 44.1.

**Is there a fix for CVE-2026-96765?** No fixed version is recorded yet. Check the vendor's advisory in the references below. If you run it, Junglewise drafts a mitigation that fits your setup and applies it once you approve, with senior security engineers behind it.

**How is CVE-2026-96765 attacked?** It is attacked over the network, in a web application.

**Am I affected by CVE-2026-96765?** Check whether you run WPO365 | Login at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## Technical details

Stored XSS vulnerability in the id_token parameter allows unauthenticated attackers to inject arbitrary HTML/JavaScript via the unique_name or iss claims of a forged JWT token. The unsanitized payload is stored in the wpo365_errors transient for up to three days and executed when an administrator accesses the WPO365 wizard page, requiring no prior authentication but relying on victim interaction.

## Affected products

- WPO365 LOGIN up to and including 44.1

## Timeline

- 2026-10-10: disclosed

## References

- [https://plugins.trac.wordpress.org/browser/wpo365-login/tags/44.1/Core/Script_Helpers.php](https://plugins.trac.wordpress.org/browser/wpo365-login/tags/44.1/Core/Script_Helpers.php)
- [https://plugins.trac.wordpress.org/browser/wpo365-login/tags/44.1/Services/Id_Token_Service.php](https://plugins.trac.wordpress.org/browser/wpo365-login/tags/44.1/Services/Id_Token_Service.php)

## Related threats

- [WPO365 Login authentication bypass via OIDC nonce replay](https://junglewise.ai/threats/cve-2026-104759-the-wpo365-seamless-wordpress-microsoft-integration-wpo365-login)
- [WPO365 Login CSRF in update_settings handler](https://junglewise.ai/threats/cve-2026-15212-wpo365-login-csrf-in-update-settings-handler)
