Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft /login link with malicious redirectUri
-
DeliverySend link to user with active SSO session
-
ExploitVictim click leaks OAuth2 authorization code
-
ExecutionRedeem code at /oauth2/access_token with valid client credentials
-
ImpactObtain victim's access token
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V3 - Web Frontend Security Redirect URL validation
MITRE ATT&CK
1 technique across 1 tactic: Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires: (1) a target smart-sso server at or below version 2.1.1 whose /login handler accepts an unvalidated redirectUri parameter; (2) a victim who already holds an ACTIVE authenticated SSO session; (3) that victim being induced to open an attacker-crafted /login link (passive user interaction); and (4) the attacker possessing ANY set of valid OAuth2 client credentials to redeem the leaked authorization code at /oauth2/access_token. These are the concrete limiting factors reflected by AC:H, AT:P, and UI:P - the attack fails against users with no active session, if the victim never clicks the link, or if the attacker lacks valid client credentials; no attacker authentication to the SSO server itself is needed (PR:N). |
| Impact | This is a genuine but conditional risk rather than a drop-everything emergency. The CVSS 4.0 base score of 7.6 (HIGH) is driven by network attack vector (AV:N), no privileges required (PR:N), and high confidentiality and integrity impact (VC:H/VI:H) reflecting theft of victims' OAuth2 access tokens. However, the same vector embeds significant friction: AC:H (high attack complexity), AT:P (a specific attack requirement), and UI:P (passive user interaction) - meaning successful exploitation depends on a victim who already holds an active SSO session being lured into clicking a crafted /login link, plus the attacker possessing valid client credentials to redeem the stolen code. There is NO CISA KEV listing and NO EPSS score provided in the input, so there is no evidence of active or widespread exploitation; a detailed technical write-up (hackmd) and annotated source references exist, documenting the technique, but no packaged weaponized exploit is confirmed. Signals are internally consistent: the HIGH CVSS is tempered by its own complexity/interaction metrics, and the absence of KEV/EPSS data supports treating this as a real, patch-worthy flaw in affected smart-sso deployments rather than a mass-exploited threat. Key missing data: no EPSS probability and no explicit POC flag were supplied, so exploitation likelihood cannot be quantified from the input alone. |
| Exploit ScenarioDerived | An attacker crafts a /login URL for a vulnerable smart-sso server containing an attacker-controlled redirectUri and sends it (via phishing/email/chat) to a user who already has an active SSO session. When the victim opens the link, the server issues and redirects the OAuth2 authorization code to the attacker's endpoint; the attacker then redeems that code at /oauth2/access_token using any valid client credentials to obtain the victim's access token. A detailed public technical write-up describes the full flow, but no confirmed packaged exploit code was indicated in the input. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 16, 2026
Unauthenticated remote attackers can steal OAuth2 authorization codes from smart-sso deployments running version 2.1.1 or earlier by abusing an unvalidated redirectUri parameter in the /login handler (CWE-601). A victim who already holds an active SSO session must be induced into opening a crafted /login link, after which the attacker - who must additionally hold any valid OAuth2 client credentials - redeems the leaked code at /oauth2/access_token to obtain the victim's access token, giving both high confidentiality and integrity impact (CVSS 7.6 v4.0: AV:N/AC:H/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N; independent assessment CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N). Exploitation is conditional rather than trivial: it fails if the victim has no active session, does not click the link, or if the attacker lacks valid client credentials, though no authentication to the SSO server itself is required (PR:N). No public exploit identified at time of analysis, although a public technical writeup describing the authorization-code leak path has been published; this is a genuine but conditional risk rather than a drop-everything emergency.
RemediationAI
No vendor-released patch identified at time of analysis, so remediation must be driven by compensating controls, ideally combined with an upstream code fix or upgrade once one is published. The most effective and standards-aligned mitigation is to enforce exact-match redirect URI allowlisting in the /login handler: before issuing an authorization code, compare the supplied redirectUri against the redirect URI(s) registered for the requesting client_id and reject any mismatch, wildcard, subdomain-tolerance, or path-traversal variant - this closes the CWE-601 gap directly but requires every OAuth2 client to have correctly registered absolute redirect URIs (clients using dynamic or open-ended redirect values will break). Pair this with strict verification at code redemption so /oauth2/access_token only accepts a code when the same client_id and identical redirect_uri used at authorization are presented; this blocks the post-leak redemption path but requires coordinated client reconfiguration. Additional containment: enable and require PKCE (S256) for all public and confidential clients so a stolen code alone is insufficient without the code_verifier (legacy clients that cannot send code_challenge may fail authorization), shorten authorization-code lifetimes to well under a minute, and bind codes to the issuing client and user session. Because redemption requires the attacker to hold valid OAuth2 client credentials, reduce that exposure by auditing and rotating client secrets, removing unused or overly permissive client registrations, restricting client credentials to specific source networks, and alerting on token-endpoint calls that use an unexpected client_id, a redirect_uri differing from the authorization request, or an IP/ASN inconsistent with the legitimate client. Finally, add monitoring and rate limiting on /login and /oauth2/access_token for anomalous redirectUri values or bursty code redemptions, and review the published technical writeup (https://hackmd.io/@hieuPenguinnn/smart-sso-oauth2-code-leak-open-redirect) alongside the referenced controller source to confirm whether your fork carries the same lines before relying on any single control.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
smart-sso is a Java/Spring Boot single sign-on server (the analyzed code lives under smart-sso-server) that implements an OAuth2/OIDC-style authorization-code flow with a /login entry point and a /oauth2/access_token token endpoint. The flaw is CWE-601 (URL Redirection to Untrusted Site, 'Open Redirect'): in the /login handler the redirectUri parameter is passed through without validation against the set of redirect URIs registered for the requesting client. In a correct OAuth2 implementation, RFC 6749 §3.1.2.3 and §4.1.3 require the authorization server to compare the redirect_uri presented at /login against the client's pre-registered value and to require the same value at token exchange; without that check, the authorization code is delivered to an attacker-controlled destination. The referenced source makes the root cause concrete: LoginController.java at lines 53-63 in the 2.1.1 tree (package com.smart.sso.server.controller) and lines 50-59 in the 1.6.0 tree (legacy package openjoe.smart.sso.server.controller), together with Oauth2Controller.java lines 55-84 in 1.6.0, which handles code redemption at /oauth2/access_token. Because the token endpoint accepts the stolen code when presented by any party holding valid client credentials, the redirect weakness becomes a full authorization-code interception primitive. The supplied CPE (cpe:2.3:a:a466350665:smart-sso:*:*:*:*:*:*:*:*) uses a wildcard version with no upper bound, so version scoping should be taken from the advisory and source evidence - affected through 2.1.1 - rather than from the CPE alone.
Know when Open Redirect gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Network-reachable with no attacker privileges (PR:N), but needs an active victim session and a user click (AC:H/UI:R); token theft yields high C/I and no availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
smart-sso through 2.1.1 contains an open redirect vulnerability in the /login handler that allows unauthenticated attackers to steal OAuth2 authorization codes by supplying an unvalidated redirectUri parameter. Attackers can send crafted /login links to users with active SSO sessions, then redeem stolen codes at /oauth2/access_token with any valid client credentials to obtain victims' access tokens.
Executive ViewAI
Smart-sso deployments running version 2.1.1 or earlier are exposed to OAuth2 authorization-code theft that can allow an attacker to obtain a victim user's access token and act with that user's privileges across integrated applications. No public exploit identified at time of analysis, but the flaw can compromise both confidentiality and integrity, and no vendor-released patch is currently available. Because exploitation requires an active victim SSO session, user interaction, and valid OAuth2 client credentials, leadership should prioritize affected deployments while treating the risk as conditional rather than immediate.
No vendor-released patch identified at time of analysis. Interim mitigations include enforcing exact-match redirectUri allowlisting for registered OAuth2 clients, restricting or monitoring the /login and /oauth2/access_token endpoints, revoking unused OAuth2 client credentials and rotating secrets, shortening SSO session lifetimes and invalidating active sessions during investigation, requiring user confirmation for external redirects, and alerting on anomalous authorization-code redemption.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
More in Open Redirect
View allA malicious third-party can give a crafted "ssh://..." URL to an unsuspecting victim, and an attempt to visit the URL ca
GFI Kerio Control versions 9.2.5 through 9.4.5 contain an HTTP response splitting vulnerability in the dest parameter of
PHP through 7.0.8 does not attempt to address RFC 3875 section 4.1.18 namespace conflicts and therefore does not protect
Multiple open redirect vulnerabilities in Apache Struts 2.0.0 through 2.3.15 allow remote attackers to redirect users to
When the default servlet in Apache Tomcat versions 9.0.0.M1 to 9.0.11, 8.5.0 to 8.5.33 and 7.0.23 to 7.0.90 returned a r
Open redirect vulnerability in age-verification.php in the Age Verification plugin 0.4 and earlier for WordPress allows
Open redirect vulnerability in Kaseya Virtual System Administrator (VSA) 7.x before 7.0.0.29, 8.x before 8.0.0.18, 9.0 b
Vulnerability in the Oracle Applications Framework component of Oracle E-Business Suite (subcomponent: Popup windows (li
Unspecified vulnerability in the Oracle Application Server Single Sign-On component in Oracle Fusion Middleware 10.1.4.3
Flarum is open source discussion platform software. Rated medium severity (CVSS 6.5), this vulnerability is remotely exp
Open redirect vulnerability in Novius OS 5.0.1 (Elche) allows remote attackers to redirect users to arbitrary web sites
Open redirect vulnerability in the Redirect function in stageshow_redirect.php in the StageShow plugin before 5.0.9 for
EUVD-2026-103044
GHSA-7rfc-8j8f-xgwj
NVD
CVE.org
Vulnrichment
Exploit-DB