Summary
CVE-2026-54733 is a critical authentication bypass vulnerability (CWE-347: Improper Verification of Cryptographic Signature) in the Microsoft 365 and Microsoft Entra ID Integration plugin for Moodle (local_o365). The flaw resides in the Teams SSO endpoint (sso_login.php), where JWT signatures are extracted but never cryptographically verified, allowing any unauthenticated remote attacker to forge a token and obtain a fully authenticated Moodle session as any Microsoft 365-connected user — including site administrators. The vulnerability carries a CVSS 4.0 score of 9.3 (Critical).
Technical details
- Root cause: The Teams SSO endpoint (
sso_login.php) decoded the base64url-encoded JWT payload and authenticated users based solely on theupn(User Principal Name) claim without verifying the JWT signature against Microsoft’s JWKS endpoint. The signature component was read from the token structure but never validated. - Trigger conditions: Any Moodle instance with the
local_o365plugin installed and Teams SSO configured is vulnerable. No existing account, prior authentication, or user interaction is required to exploit the flaw. - Attack vector: An unauthenticated remote attacker crafts a JWT containing the target user’s UPN (e.g., a Moodle administrator’s Microsoft 365 email address) in the payload, submits it to the
/local/o365/sso_login.phpendpoint, and receives a valid authenticated session as that user. - Impact: Full account takeover for any Microsoft 365-integrated Moodle user. Targeting a site administrator’s UPN yields complete administrative control over the affected Moodle instance, including access to all course data, user records, and hosted content.
Affected software
local_o365(Microsoft 365 and Microsoft Entra ID Integration for Moodle) versions prior to 4.5.6local_o365versions 5.0.0 through 5.0.4local_o365versions 5.1.0
Severity
CVSS 4.0 Base Score: 9.3 (Critical)
Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Mitigation and recommended actions
- Immediate patch: Upgrade
local_o365to version 4.5.6, 5.0.5, or 5.1.1 (according to your installed branch). These releases introduce thelocal_o365_validate_teams_jwt()function, which implements proper JWT signature verification against Microsoft’s JWKS endpoint along with issuer, audience, and token timing claim validation. - If immediate patching is not feasible: Disable the Teams SSO feature within the
local_o365plugin settings. This removes the vulnerablesso_login.phpendpoint from the authentication flow until a patch can be applied.
IONIX Status
The IONIX research team is tracking ongoing exploitation attempts and recommends immediate patching. Potentially affected assets are outlined in this post.

