[ 
https://issues.apache.org/jira/browse/FLINK-40709?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated FLINK-40709:
-----------------------------------
    Labels: pull-request-available  (was: )

> Kubernetes Operator: allowlist to exempt trusted hosts from jarURI 
> restricted-host check
> ----------------------------------------------------------------------------------------
>
>                 Key: FLINK-40709
>                 URL: https://issues.apache.org/jira/browse/FLINK-40709
>             Project: Flink
>          Issue Type: Improvement
>          Components: Kubernetes Operator
>            Reporter: Purushottam Sinha
>            Priority: Major
>              Labels: pull-request-available
>
> h3. Problem
> kubernetes.operator.user.artifacts.disallow-restricted-hosts (default true) 
> rejects any FlinkSessionJob jarURI resolving to a private/loopback/link-local 
> address, which also blocks legitimate internal artifact stores (an in-cluster 
> Service, an on-prem Artifactory on a private address). The only workaround 
> today is disabling the check entirely, reopening SSRF exposure to everything 
> -- including cloud metadata endpoints -- just to allow one trusted host.
> h3. Evidence
> * {{JarUriValidationUtils#validateJarURI}} enforces the restricted-host check 
> unconditionally when enabled, with no exemption mechanism.
> * Related to FLINK-40402 / FLIP-613, which introduced the scheme allowlist 
> and restricted-host check this proposes to extend.
> h3. Proposed fix
> * Add {{kubernetes.operator.user.artifacts.allowed-uri-prefixes}} 
> (comma-separated jarURI prefixes, default empty) in 
> {{KubernetesOperatorConfigOptions.java}}.
> * In {{JarUriValidationUtils#validateJarURI}}, skip only the restricted-host 
> check when the jarURI starts with a configured prefix; the scheme allowlist 
> is still enforced regardless.
> * Wire the new option through {{FlinkOperatorConfiguration}}, 
> {{HttpArtifactFetcher}} (re-checked on every redirect hop), and 
> {{DefaultValidator}} (admission-time validation for FlinkSessionJob).
> h3. Acceptance
> * A FlinkSessionJob jarURI resolving to a restricted address is denied by the 
> webhook by default, then accepted once its prefix is added to 
> {{allowed-uri-prefixes}}.
> * Unit test coverage for both the exemption and the still-enforced scheme 
> allowlist.



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

Reply via email to