CVE-2026-56425: MISP AAD authentication plugin - Improper OAuth State Handling, Missing Session Rotation, Insecure Redirect URI Validation, and Log Injection

Published Jun 22, 2026
·
Updated

The Azure Active Directory (AAD) authentication implementation contained multiple weaknesses in its OAuth 2.0 authorization flow that could allow attackers to bypass important security guarantees provided by the protocol.

The application used the PHP session identifier (sessionid()) as the OAuth state parameter. Because session identifiers are long-lived authentication credentials, exposing them in OAuth redirect URLs could leak valid session tokens through browser history, HTTP Referer headers, reverse proxies, access logs, or third-party infrastructure involved in the authentication flow. If obtained by an attacker, the leaked session identifier could potentially be used for session hijacking.

Additionally, the implementation did not regenerate the session identifier after successful authentication, leaving authenticated sessions susceptible to session fixation attacks where an attacker forces a victim to use a known session identifier before login and later reuses that identifier after authentication.

The OAuth state value was also not implemented as a dedicated, single-use nonce. This weakened CSRF protections and increased the risk of replay attacks against the OAuth callback process.

The authentication flow further failed to enforce HTTPS for the configured OAuth redirect URI. If a non-HTTPS redirect URI was used, OAuth authorization codes and access tokens could traverse the network in plaintext, exposing sensitive credentials to network attackers.

Finally, OAuth error responses containing attacker-controlled GET parameters were logged verbatim. An attacker could inject control characters or crafted log content, leading to log forging, log injection, or corruption of audit records.

The fix introduces:

A dedicated cryptographically random OAuth state value.

Single-use state validation and invalidation.

Constant-time state comparison using hashequals().

Session identifier rotation after successful authentication.

Enforcement of HTTPS-only redirect URIs.

Sanitized and length-limited logging of OAuth error parameters.

AAD Authentication Plugin (OAuth 2.0 / Azure Active Directory integration)

Affected Software

2 affected components
Misp Project MISP AAD Authentication Plugin
Misp-project Misp<2.5.42

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Configuration

    Modify the plugin to generate a dedicated cryptographically random OAuth state value and treat it as single-use (invalidate after successful/attempted validation) rather than using the PHP session identifier (session_id()) as the OAuth state parameter.

    MISP AAD Authentication Plugin (OAuth 2.0 / Azure Active Directory integration) OAuth state generation = Use a dedicated cryptographically random OAuth state value (single-use nonce) instead of PHP session_id()
  2. Configuration

    Change OAuth state validation to use constant-time state comparison via hash_equals() to prevent timing-based state comparison weaknesses.

    MISP AAD Authentication Plugin (OAuth 2.0 / Azure Active Directory integration) OAuth state comparison = Constant-time comparison using hash_equals()
  3. Configuration

    Enforce HTTPS-only redirect URIs in the configured OAuth redirect URI validation, rejecting non-HTTPS redirect URIs.

    MISP AAD Authentication Plugin (OAuth 2.0 / Azure Active Directory integration) OAuth redirect URI validation = Enforce HTTPS-only redirect URIs
  4. Configuration

    After successful authentication in the OAuth callback flow, rotate/regenerate the session identifier to prevent session fixation (do not reuse the pre-login PHP session identifier after authentication).

    MISP AAD Authentication Plugin (OAuth 2.0 / Azure Active Directory integration) Session rotation after OAuth success = Regenerate/rotate session identifier after successful authentication
  5. Configuration

    Implement single-use state validation and invalidate the state value after the OAuth callback is processed, so a state can’t be replayed.

    MISP AAD Authentication Plugin (OAuth 2.0 / Azure Active Directory integration) Single-use state validation and invalidation = Validate and invalidate state after use
  6. Configuration

    Sanitize and length-limit OAuth error parameter logging (avoid logging attacker-controlled GET parameters verbatim) to prevent log forging/log injection/audit record corruption.

    MISP AAD Authentication Plugin (OAuth 2.0 / Azure Active Directory integration) Logging of OAuth error parameters = Sanitized and length-limited logging (do not log verbatim attacker-controlled GET parameters)

Event History

Jun 22, 2026
CVE Published
via MITRE·12:25 PM
Data Sourced
via MITRE·12:25 PM
DescriptionWeakness
Data Sourced
via NVD·02:17 PM
RemedyDescriptionSeverityWeaknessAffected Software
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2026-56425?

CVE-2026-56425 has a critical severity rating of 9.3.

2

How do I fix CVE-2026-56425?

To fix CVE-2026-56425, ensure proper session rotation, validate redirect URIs securely, and address the log injection vulnerability.

3

What vulnerabilities are associated with CVE-2026-56425?

CVE-2026-56425 includes improper OAuth state handling, missing session rotation, insecure redirect URI validation, and log injection.

4

What type of software is affected by CVE-2026-56425?

CVE-2026-56425 affects the MISP AAD Authentication Plugin of the MISP Project.

5

What are the consequences of exploiting CVE-2026-56425?

Exploitation of CVE-2026-56425 could allow attackers to bypass important security guarantees of the OAuth 2.0 protocol.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203