Miggo Logo

CVE-2024-45042: Ory Kratos's setting required_aal `highest_available` does not properly respect code + mfa credentials

4.4

CVSS Score
3.1

Basic Information

EPSS Score
0.29492%
Published
9/26/2024
Updated
9/26/2024
KEV Status
No
Technology
TechnologyGo

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:N/A:N
Package NameEcosystemVulnerable VersionsFirst Patched Version
github.com/ory/kratosgo<= 1.2.01.3.0

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from two key issues: (1) incorrect calculation of available_aal when code (passwordless) + MFA credentials exist, and (2) session validation relying on this incorrect value. The first function is likely responsible for credential-based AAL computation, failing to treat 'code' as a valid first factor. The second function enforces AAL requirements but uses the flawed stored value rather than real-time credential evaluation. Both are necessary to create the vulnerability where the system misjudges the user's true AAL capabilities.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

## Pr**on*itions - T** `*o**` lo*in m*t*o* is *n**l** wit* t** `p*sswor*l*ss_*n**l**` *l** s*t to `tru*` . - * *** m*t*o* su** *s `totp` is *n**l**. - `r*quir**_**l` o* t** w*om*i ****k or t** s*ttin*s *low is s*t to `*i***st_*v*il**l*`. **L st*n*s

Reasoning

T** vuln*r**ility st*ms *rom two k*y issu*s: (*) in*orr**t **l*ul*tion o* `*v*il**l*_**l` w**n *o** (p*sswor*l*ss) + M** *r***nti*ls *xist, *n* (*) s*ssion `v*li**tion` r*lyin* on t*is in*orr**t v*lu*. T** *irst `*un*tion` is lik*ly r*sponsi*l* *or *