Skip to main content

MISP EUVDEUVD-2026-38228

| CVE-2026-56425 CRITICAL
Session Fixation (CWE-384)
2026-06-22 CIRCL GHSA-ch28-mjgc-m4wr
9.3
CVSS 4.0 · Vendor: CIRCL
Share

Severity by source

Vendor (CIRCL) PRIMARY
9.3 CRITICAL
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:A/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
6.8 MEDIUM

Network-reachable login flow but session fixation needs a same-site cookie-priming foothold plus victim interaction (AC:H, UI:R); no auth needed to initiate the attack itself, leading to full account takeover (C:H/I:H, A:N).

3.1 AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N
4.0 AV:N/AC:H/AT:N/PR:N/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (CIRCL).

CVSS VectorVendor: CIRCL

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
A
Scope
X

Lifecycle Timeline

3
Source Code Evidence Fetched
Jun 22, 2026 - 14:00 vuln.today
Analysis Generated
Jun 22, 2026 - 14:00 vuln.today
CVE Published
Jun 22, 2026 - 12:25 cve.org
CRITICAL 9.3

DescriptionCVE.org

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 (session_id()) 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 hash_equals().

* 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)

AnalysisAI

Multiple OAuth 2.0 flow weaknesses in the MISP AAD (Azure Active Directory) authentication plugin allow session hijacking, session fixation, CSRF/replay against the OAuth callback, plaintext credential exposure over non-HTTPS redirect URIs, and log injection. The plugin reused the PHP session_id() as the OAuth state parameter, never rotated the session ID after login, did not enforce HTTPS on the redirect URI, and logged attacker-controlled GET parameters verbatim. No public exploit identified at time of analysis, but an upstream fix is available in MISP commit 146bc40.

Technical ContextAI

The vulnerable component is the AadAuth CakePHP plugin shipped with MISP (cpe:2.3:a:misp:misp), which implements OAuth 2.0 / OpenID Connect against Azure AD. Root cause is CWE-384 (Session Fixation), compounded by misuse of the OAuth state parameter as a security primitive: PHP session IDs are long-lived bearer credentials, and embedding them in redirect URLs causes them to be persisted in browser history, sent in HTTP Referer headers, and recorded by proxies, CDNs, and access logs in the redirect chain to and from login.microsoftonline.com. The implementation also performed non-constant-time state comparison via strcmp, never invalidated state values after use (no nonce semantics), skipped session_regenerate_id() after login (per a code comment, this had previously broken the AAD flow because the state check itself relied on the session ID), and trusted the operator-configured redirect_uri scheme.

RemediationAI

Upstream fix available (commit 146bc40ad6e10a44f01e8ed62d5f7bc9c06cc4fa on github.com/MISP/MISP); released patched version not independently confirmed from the input data - upgrade to a MISP release that includes this commit, or cherry-pick it onto your current branch. As compensating controls until you can deploy the patch: (1) ensure the configured AAD redirect_uri uses https:// (the patch now refuses to proceed without it, but pre-patch you must enforce this yourself) to prevent authorization codes and access tokens crossing the network in plaintext; (2) avoid using ad_tenant=common with check_ad_groups=false, since per the updated README this configuration lets any Microsoft account sharing an email with a MISP user log in as that user; (3) restrict who can read MISP and reverse-proxy access logs and rotate any session IDs that may have been written to them; (4) consider temporarily disabling the AadAuth plugin and falling back to local or another SSO backend if patching is delayed. Trade-off: enforcing HTTPS will break setups that terminate TLS at a proxy and configure redirect_uri as http://; reconfigure the proxy to preserve the https scheme via X-Forwarded-Proto / the public URL.

More in PHP

View all
CVE-2019-11043 CRITICAL POC
9.8 Oct 28

In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it

CVE-2012-1823 CRITICAL POC
9.8 May 11

sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not

CVE-2016-1555 CRITICAL POC
9.8 Apr 21

(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear

CVE-2018-11138 CRITICAL POC
9.8 May 31

The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by

CVE-2024-11680 CRITICAL POC
9.8 Nov 26

ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C

CVE-2025-49113 CRITICAL POC
9.9 Jun 02

Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au

CVE-2017-9841 CRITICAL POC
9.8 Jun 27

Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c

CVE-2025-0108 HIGH POC
8.8 Feb 12

Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers

CVE-2021-25298 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2021-25296 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2013-4983 CRITICAL POC
10.0 Sep 10

The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

Share

EUVD-2026-38228 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy