[ 
https://issues.apache.org/jira/browse/KNOX-3416?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18105241#comment-18105241
 ] 

ASF subversion and git services commented on KNOX-3416:
-------------------------------------------------------

Commit d1c9e0135412dab5e005ceb91d3d88fd0acd561d in knox's branch 
refs/heads/v2.1.x from hanicz
[ https://gitbox.apache.org/repos/asf?p=knox.git;h=d1c9e0135 ]

Knox security picks into v2.1.x (#1352)

* KNOX-3188 - Token renewal and revocation should be authorized based on the 
group membership of the authenticated subject. (#1083)

(cherry picked from commit 72be9fbd53a9b19483f683025155b665011d7243)

* KNOX-3410: KnoxToken enable/disable endpoints perform no caller autho… (#1343)

* KNOX-3410: KnoxToken enable/disable endpoints perform no caller authorization

* KNOX-3410: Address review comments

(cherry picked from commit f2126008ab764003e9831e48d30302886be93496)

* KNOX-3411: KnoxToken getUserTokens returns every user's token metadat… (#1344)

* KNOX-3411: KnoxToken getUserTokens returns every user's token metadata 
without a caller authorization check

* KNOX-3411: Add test clean-up

(cherry picked from commit 049dc0cb894f907efa920a1a2c10fb6ed56fb109)

* KNOX-3416: KnoxSSO redirects to untrusted site (#1346)

* KNOX-3416: KnoxSSO redirects to untrusted site

* KNOX-3416: Clarify error message for userInfo

(cherry picked from commit c3dee56346cfb2670a114d478db0ba2b51aa01f7)

* KNOX-3417: KnoxLdapRealm builds the LDAP search filter from the client 
username without RFC-4515 escaping (#1348)

(cherry picked from commit 3cb8ef745c44b39377d855d835198de183a4cef3)

* KNOX-3413: KnoxToken passcode verification accepts a valid passcode for a 
different token (#1345)

(cherry picked from commit 5342483a2c7ff229d8819d7df479980753640fc1)

* KNOX-3413: Fix unit test

* KNOX-3418: Path traversal → arbitrary file write/overwrite in the Apache Knox 
Admin API (#1349)

(cherry picked from commit de71a60cdf34c842abb8a49f770a0e33fe33c7e9)

* KNOX-3418: Fix jdk17 -> jdk11 compilation fails

---------

Co-authored-by: Sandor Molnar <[email protected]>

> KnoxSSO redirects to untrusted site
> -----------------------------------
>
>                 Key: KNOX-3416
>                 URL: https://issues.apache.org/jira/browse/KNOX-3416
>             Project: Apache Knox
>          Issue Type: Bug
>          Components: Server
>    Affects Versions: 2.1.0, 3.0.0, 3.1.0
>            Reporter: Tamás Hanicz
>            Assignee: Tamás Hanicz
>            Priority: Blocker
>             Fix For: 3.0.0, 3.1.0
>
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> Reported by n0mi1k Security
>  
> The KnoxSSO WebSSO endpoint reads the originalUrl request parameter (already 
> decoded once by the servlet container) into a value it validates against the 
> redirect whitelist and then emits to the Location header, but the whitelist 
> check decodes the value a SECOND time and derives the host to match from that 
> double-decoded string, while the value actually sent to the browser is the 
> once-decoded original — so a crafted originalUrl passes the whitelist as a 
> trusted host yet redirects the browser to a different, attacker-chosen host. 
> Concretely, RegExUtils.checkBaseUrlAgainstWhitelist calls URLDecoder.decode a 
> second time and checks new URL(decodedURL).getHost(), so 
> originalUrl=[https://<trusted-knox-host>:443%[email protected]|https://%3Ctrusted-knox-host%3E:443%[email protected]/]/
>  decodes once (container) to 
> [https://<trusted-knox-host>:443%[email protected]|https://%3Ctrusted-knox-host%3E:443%[email protected]/]/,
>  the whitelist decodes it again to 
> [https://<trusted-knox-host>:443/@evil.example|https://%3Ctrusted-knox-host%3E/@evil.example]/
>  whose host is the trusted Knox host (whitelist PASS), but the emitted 
> Location keeps the %2f so the browser parses the host as evil.example. There 
> is no userinfo guard on this path (Urls.containsUserInfo exists in the 
> codebase and is applied on another redirect path, but not here), and the 
> redirect whitelist is auto-derived by default when 
> knoxsso.redirect.whitelist.regex is unset, so this is a default-configuration 
> bypass of the SSO redirect control; a victim who follows a crafted KnoxSSO 
> link is authenticated and then redirected to the attacker's origin (a related 
> KnoxSSO URL-parsing redirect issue is the same class as CVE-2021-42357).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to