Improper Authentication Affecting github.com/goauthentik/authentik package, versions <2022.10.4>=2022.11.0 <2022.11.4


Severity

Recommended
0.0
high
0
10

CVSS assessment made by Snyk's Security Team. Learn more

Threat Intelligence

Exploit Maturity
Proof of concept
EPSS
0.27% (68th percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications

Snyk Learn

Learn about Improper Authentication vulnerabilities in an interactive lesson.

Start learning
  • Snyk IDSNYK-GOLANG-GITHUBCOMGOAUTHENTIKAUTHENTIK-3184403
  • published28 Dec 2022
  • disclosed28 Dec 2022
  • creditfuomag9

Introduced: 28 Dec 2022

CVE-2022-23555  (opens in a new tab)
CWE-287  (opens in a new tab)

How to fix?

Upgrade github.com/goauthentik/authentik to version 2022.10.4, 2022.11.4 or higher.

Overview

Affected versions of this package are vulnerable to Improper Authentication such that token reuse in invitation URLs leads to access control bypass via the usage of a different enrollment flow than the one provided. The vulnerability allows an attacker that knows different invitation flows names (e.g. enrollment-invitation-test and enrollment-invitation-admin) via either different invite links or via brute forcing to signup via a single invitation URL for any valid invite link received (it can even be a URL for a third flow as long as it's a valid invite). The token used in the Invitations section of the Admin interface does NOT change when a different enrollment flow is selected via the interface and it is NOT bound to the selected flow, so it will be valid for any flow when used.

Note:

Only configurations that use invitations and have multiple enrollments flows with invitation stages that grant different permissions are affected. The default configuration is not vulnerable, and neither are configurations with a single enrollment flow.

Workaround

Fixed data can be added to invitations which can be checked in the flow to deny requests. Alternatively, an identifier with high entropy (like a UUID) can be used as a flow slug, mitigating the attack vector by exponentially decreasing the possibility of discovering other flows.

CVSS Scores

version 3.1