40 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# CVE-2024-21637
 | 
						|
 | 
						|
_Reported by [@lauritzh](https://github.com/lauritzh)_
 | 
						|
 | 
						|
## XSS in Authentik via JavaScript-URI as Redirect URI and form_post Response Mode
 | 
						|
 | 
						|
### Summary
 | 
						|
 | 
						|
Given an OAuth2 provider configured with allowed redirect URIs set to `*` or `.*`, an attacker can send an OAuth Authorization request using `response_mode=form_post` and setting `redirect_uri` to a malicious URI, to capture authentik's session token.
 | 
						|
 | 
						|
### Patches
 | 
						|
 | 
						|
authentik 2023.8.6 and 2023.10.6 fix this issue.
 | 
						|
 | 
						|
### Impact
 | 
						|
 | 
						|
The impact depends on the attack scenario. In the following I will describe the two scenario that were identified for Authentik.
 | 
						|
 | 
						|
#### Redirect URI Misconfiguration
 | 
						|
 | 
						|
While advising that this may cause security issues, Authentik generally allows wildcards as Redirect URI. Therefore, using a wildcard-only effectively allowing arbitrary URLS is possible misconfiguration that may be present in real-world instances.
 | 
						|
 | 
						|
In such cases, unauthenticated and unprivileged attackers can perform the above described actions.
 | 
						|
 | 
						|
### User with (only) App Administration Permissions
 | 
						|
 | 
						|
A more likely scenario is an administrative user (e.g. a normal developer) having only permissions to manage applications.
 | 
						|
 | 
						|
This relatively user could use the described attacks to perform a privilege escalation.
 | 
						|
 | 
						|
### Workaround
 | 
						|
 | 
						|
It is recommended to upgrade to the patched version of authentik. If not possible, ensure that OAuth2 providers do not use a wildcard (`*` or `.*`) value as allowed redirect URI setting. (This is _not_ exploitable if part of the redirect URI has a wildcard, for example `https://foo-.*\.bar\.com`)
 | 
						|
 | 
						|
### For more information
 | 
						|
 | 
						|
If you have any questions or comments about this advisory:
 | 
						|
 | 
						|
-   Email us at [security@goauthentik.io](mailto:security@goauthentik.io)
 |