CVE-2026-67345
Full vulnerability record from the local CVENow database.
Description
MaxKey through 4.1.12, fixed in commit ddbb72f, contains an insufficient redirect URI validation vulnerability in DefaultRedirectResolver.hostMatches() that allows remote attackers to hijack OAuth 2.0 authorization codes by supplying a crafted redirect_uri whose hostname suffix matches a registered URI without proper dot-boundary anchoring. Attackers who control a domain ending with the registered redirect URI hostname can social-engineer victims into clicking a crafted authorization URL, causing the authorization code to be issued to the attacker-controlled URI and exchanged for an access token granting access to the victim's identity.
Severity
HIGH
CVSS score
8.5
(v4.0)
Vulnerability status
Deferred
Source identifier
Published
2026-07-30 15:16:35.583000
Last modified
2026-10-23 22:10:00.160000
View original CVE JSON
{
"id": "CVE-2026-67345",
"sourceIdentifier": "[email protected]",
"published": "2026-07-30T15:16:35.583",
"lastModified": "2026-10-23T22:10:00.160",
"vulnStatus": "Deferred",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "MaxKey through 4.1.12, fixed in commit ddbb72f, contains an insufficient redirect URI validation vulnerability in DefaultRedirectResolver.hostMatches() that allows remote attackers to hijack OAuth 2.0 authorization codes by supplying a crafted redirect_uri whose hostname suffix matches a registered URI without proper dot-boundary anchoring. Attackers who control a domain ending with the registered redirect URI hostname can social-engineer victims into clicking a crafted authorization URL, causing the authorization code to be issued to the attacker-controlled URI and exchanged for an access token granting access to the victim's identity."
},
{
"lang": "es",
"value": "MaxKey hasta la versión 4.1.12, corregido en el commit ddbb72f, contiene una vulnerabilidad de validación insuficiente de URI de redirección en DefaultRedirectResolver.hostMatches() que permite a atacantes remotos secuestrar códigos de autorización de OAuth 2.0 al proporcionar una redirect_uri manipulada cuyo sufijo de nombre de host coincide con un URI registrado sin un anclaje de límite de punto adecuado. Los atacantes que controlan un dominio que termina con el nombre de host del URI de redirección registrado pueden engañar a las víctimas (mediante ingeniería social) para que hagan clic en una URL de autorización manipulada, lo que provoca que el código de autorización se emita al URI controlado por el atacante y se intercambie por un token de acceso que otorga acceso a la identidad de la víctima."
}
],
"affected": [
{
"source": "[email protected]",
"affectedData": [
{
"vendor": "dromara",
"product": "MaxKey",
"defaultStatus": "unaffected",
"repo": "https://github.com/dromara/MaxKey",
"packageURL": "pkg:github/dromara/MaxKey",
"versions": [
{
"version": "0",
"lessThanOrEqual": "4.1.12",
"versionType": "semver",
"status": "affected"
},
{
"version": "ddbb72fb24ab8e66aa422fb14b1177330bcffb45",
"versionType": "git",
"status": "unaffected"
}
]
}
]
}
],
"metrics": {
"cvssMetricV40": [
{
"source": "[email protected]",
"type": "Secondary",
"cvssData": {
"version": "4.0",
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/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",
"baseScore": 8.5,
"baseSeverity": "HIGH",
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"privilegesRequired": "NONE",
"userInteraction": "ACTIVE",
"vulnConfidentialityImpact": "HIGH",
"vulnIntegrityImpact": "HIGH",
"vulnAvailabilityImpact": "NONE",
"subConfidentialityImpact": "NONE",
"subIntegrityImpact": "NONE",
"subAvailabilityImpact": "NONE",
"exploitMaturity": "NOT_DEFINED",
"confidentialityRequirement": "NOT_DEFINED",
"integrityRequirement": "NOT_DEFINED",
"availabilityRequirement": "NOT_DEFINED",
"modifiedAttackVector": "NOT_DEFINED",
"modifiedAttackComplexity": "NOT_DEFINED",
"modifiedAttackRequirements": "NOT_DEFINED",
"modifiedPrivilegesRequired": "NOT_DEFINED",
"modifiedUserInteraction": "NOT_DEFINED",
"modifiedVulnConfidentialityImpact": "NOT_DEFINED",
"modifiedVulnIntegrityImpact": "NOT_DEFINED",
"modifiedVulnAvailabilityImpact": "NOT_DEFINED",
"modifiedSubConfidentialityImpact": "NOT_DEFINED",
"modifiedSubIntegrityImpact": "NOT_DEFINED",
"modifiedSubAvailabilityImpact": "NOT_DEFINED",
"Safety": "NOT_DEFINED",
"Automatable": "NOT_DEFINED",
"Recovery": "NOT_DEFINED",
"valueDensity": "NOT_DEFINED",
"vulnerabilityResponseEffort": "NOT_DEFINED",
"providerUrgency": "NOT_DEFINED"
}
}
],
"cvssMetricV31": [
{
"source": "[email protected]",
"type": "Secondary",
"cvssData": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N",
"baseScore": 8.1,
"baseSeverity": "HIGH",
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"privilegesRequired": "NONE",
"userInteraction": "REQUIRED",
"scope": "UNCHANGED",
"confidentialityImpact": "HIGH",
"integrityImpact": "HIGH",
"availabilityImpact": "NONE"
},
"exploitabilityScore": 2.8,
"impactScore": 5.2
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"timestamp": "2026-07-30T17:28:57.453169Z",
"id": "CVE-2026-67345",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "total"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
]
},
"weaknesses": [
{
"source": "[email protected]",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-183"
}
]
}
],
"references": [
{
"url": "https://github.com/dromara/MaxKey/commit/ddbb72fb24ab8e66aa422fb14b1177330bcffb45",
"source": "[email protected]"
},
{
"url": "https://github.com/dromara/MaxKey/issues/269",
"source": "[email protected]"
},
{
"url": "https://www.vulncheck.com/advisories/maxkey-defaultredirectresolver-oauth-authorization-code-theft",
"source": "[email protected]"
}
]
}