This is an automated email from the ASF dual-hosted git repository.
gaborgsomogyi pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/flink-web.git
The following commit(s) were added to refs/heads/asf-site by this push:
new d583f000ef Rewrite security page with precise trust model and operator
coverage
d583f000ef is described below
commit d583f000ef0a4b3a656cdde6cb8871c53fb01440
Author: Gabor Somogyi <[email protected]>
AuthorDate: Fri Jun 5 08:44:29 2026 +0200
Rewrite security page with precise trust model and operator coverage
---
docs/content/what-is-flink/security.md | 163 +++++++++++++++------------------
1 file changed, 73 insertions(+), 90 deletions(-)
diff --git a/docs/content/what-is-flink/security.md
b/docs/content/what-is-flink/security.md
index 02d5645557..15050e4db4 100644
--- a/docs/content/what-is-flink/security.md
+++ b/docs/content/what-is-flink/security.md
@@ -27,93 +27,76 @@ under the License.
# Security
-## Security Updates
-
-This section lists fixed vulnerabilities in Flink.
-
-<table class="table">
- <thead>
- <tr>
- <th style="width: 20%">CVE ID</th>
- <th style="width: 30%">Affected Flink versions</th>
- <th style="width: 50%">Notes</th>
- </tr>
- </thead>
- <tr>
- <td>
- <a
href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-1960">CVE-2020-1960</a>
- </td>
- <td>
- 1.1.0 to 1.1.5, 1.2.0 to 1.2.1, 1.3.0 to 1.3.3, 1.4.0
to 1.4.2, 1.5.0 to 1.5.6, 1.6.0 to 1.6.4, 1.7.0 to 1.7.2, 1.8.0 to 1.8.3, 1.9.0
to 1.9.2, 1.10.0
- </td>
- <td>
- Users are advised to upgrade to Flink 1.9.3 or 1.10.1
or later versions or remove the port parameter from the reporter configuration
(see advisory for details).
- </td>
- </tr>
- <tr>
- <td>
- <a
href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-17518">CVE-2020-17518</a>
- </td>
- <td>
- 1.5.1 to 1.11.2
- </td>
- <td>
- <a
href="https://github.com/apache/flink/commit/a5264a6f41524afe8ceadf1d8ddc8c80f323ebc4">Fixed
in commit a5264a6f41524afe8ceadf1d8ddc8c80f323ebc4</a> <br>
- Users are advised to upgrade to Flink 1.11.3 or 1.12.0
or later versions.
- </td>
- </tr>
- <tr>
- <td>
- <a
href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-17519">CVE-2020-17519</a>
- </td>
- <td>
- 1.11.0, 1.11.1, 1.11.2
- </td>
- <td>
- <a
href="https://github.com/apache/flink/commit/b561010b0ee741543c3953306037f00d7a9f0801">Fixed
in commit b561010b0ee741543c3953306037f00d7a9f0801</a> <br>
- Users are advised to upgrade to Flink 1.11.3 or 1.12.0
or later versions.
- </td>
- </tr>
- <tr>
- <td>
- <a
href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-41834">CVE-2023-41834</a>
- </td>
- <td>
- Flink Stateful Functions 3.1.0, 3.1.1, 3.2.0
- </td>
- <td>
- <a
href="https://github.com/apache/flink-statefun/commit/b06c0a23a5a622d48efc8395699b2e4502bd92be">Fixed
in commit b06c0a23a5a622d48efc8395699b2e4502bd92be</a> <br>
- Users are advised to upgrade to Flink Stateful
Functions 3.3.0 or later versions.
- </td>
- </tr>
- <tr>
- <td>
- <a
href="https://www.cve.org/CVERecord?id=CVE-2026-35194">CVE-2026-35194</a>
- </td>
- <td>
- 1.15.0 through 1.20.x and 2.0.0 through 2.x
- </td>
- <td>
- <a
href="https://github.com/apache/flink/commit/64007b131d689158af90ca1c1b71b018129a85c5">Fixed
in commit b06c0a23a5a622d48efc8395699b2e4502bd92be</a>, <a
href="https://github.com/apache/flink/commit/e7c0d17074dc0dc9e102a072f11bf0de09ba01a5">e7c0d17074dc0dc9e102a072f11bf0de09ba01a5</a>
and <a
href="https://github.com/apache/flink/commit/9b2a11268dc8b4e6ea5a604dca0ea27f0fee3ed8">9b2a11268dc8b4e6ea5a604dca0ea27f0fee3ed8</a>
<br>
- Users are advised to upgrade to Flink 1.20.4, 2.0.2,
2.1.2 or 2.2.1.
- </td>
- </tr>
-</table>
-
-
-## Frequently Asked Questions
-
-### During a security analysis of Flink, I noticed that Flink allows for
remote code execution, is this an issue?
-
-Apache Flink is a framework for executing user-supplied code in clusters.
Users can submit code to Flink processes, which will be executed
unconditionally, without any attempts to limit what code can run. Starting
other processes, establishing network connections or accessing and modifying
local files is possible.
-
-Historically, we've received numerous remote code execution vulnerability
reports, which we had to reject, as this is by design.
-
-**We strongly discourage users to expose Flink processes to the public
internet**. Within company networks or "cloud" accounts, we recommend
restricting access to a Flink cluster via appropriate means.
-
-
-### I found a vulnerability in Flink, how do I report it?
-
-Thanks a lot for looking into the security of Apache Flink! We appreciate
reports improving the security of Flink. We accept vulnerability reports
through the [Apache Security Team](https://www.apache.org/security/), via their
private email address [[email protected]](mailto:[email protected]).
-
-If you want to discuss a potential security issue privately with the Flink
PMC, you can reach us also via
[[email protected]](mailto:[email protected]).
+## Apache Flink
+
+Apache Flink is a distributed stream and batch processing framework that
executes user-supplied code across a cluster of machines.
+
+### Trust Boundary
+
+Flink's security model is built around one explicit trust boundary: **the
cluster operator is trusted; the cluster network interfaces are not public**.
+
+**Authenticated users who submit jobs are fully trusted.** Flink executes
submitted code unconditionally. A job can spawn processes, open network
connections, read and write local files, and perform any operation the
operating system permits. This is intentional -- restricting what user code can
do would prevent legitimate use cases. Flink is not a sandbox.
+
+**Unauthenticated access to cluster interfaces is the threat Flink protects
against.** The REST API, SQL Gateway, and BLOB server are the surfaces that
must be secured from external attackers.
+
+### Security Boundary Reference
+
+The table below is intended for security researchers and enterprise security
teams evaluating Flink:
+
+| Scenario | Security boundary | Notes |
+|---|---|---|
+| Unauthenticated access to the REST API | **In scope** | Vulnerability --
report it |
+| Path traversal or unauthorized file access via REST API | **In scope** |
Vulnerability -- report it |
+| SQL injection or auth bypass via SQL Gateway | **In scope** | Vulnerability
-- report it |
+| Credential or secret exposure in cluster interfaces | **In scope** |
Vulnerability -- report it |
+| Code execution via unsafe deserialization of input data where no Flink-level
control exists to prevent it | **In scope** | Vulnerability -- report it |
+| Remote Code Execution (RCE) via a submitted JAR, DataStream program, or UDF
| **Out of scope** | By design -- these submitters run arbitrary code; does not
apply to SQL Gateway submissions |
+| Spawning processes or opening connections from within a running job | **Out
of scope** | By design |
+| Reading or writing files from within a running job | **Out of scope** | By
design |
+
+### Deployment Requirements
+
+Flink clusters must not be exposed to the public internet. Access to all Flink
network interfaces must be restricted to trusted principals via network-level
controls (firewalls, security groups, VPN).
+
+SSL/TLS, REST API authentication, and SQL Gateway authentication are all
**disabled by default**. A default Flink deployment is unauthenticated and
unencrypted on its network interfaces. These need to be explicitly configured
for any production or shared deployment.
+
+The REST API supports mutual TLS for client certificate authentication;
anything beyond that, and all SQL Gateway authentication, needs to be provided
by a proxy in front of Flink's network interfaces.
+
+Flink does not manage the security of external systems it connects to. Through
its delegation token framework, Flink can obtain and renew short-lived tokens
on the operator's behalf, but the underlying long-lived credentials remain an
operator responsibility.
+
+## Flink Kubernetes Operator
+
+The [Flink Kubernetes
Operator](https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-stable/)
is the standard deployment mechanism for Flink on Kubernetes. Its security
model extends the Flink model above -- both apply when the operator is in use.
+
+### Trust Boundary
+
+The Kubernetes RBAC layer replaces direct cluster access as the authentication
mechanism. Any principal with permission to apply Flink custom resources
(`FlinkDeployment`, `FlinkSessionJob`) is the equivalent of an authenticated
Flink user -- they can submit arbitrary jobs with full execution trust. The
operator's own service account is trusted by the Kubernetes control plane with
cluster-scoped permissions.
+
+### Security Boundary Reference
+
+| Scenario | Security boundary | Notes |
+|---|---|---|
+| Using the operator API to access resources beyond the submitting principal's
own permissions | **In scope** | Vulnerability -- report it |
+| Credential exposure via Flink custom resource spec or status fields | **In
scope** | Vulnerability -- report it |
+| Webhook bypass allowing malformed or malicious resources to be applied |
**In scope** | Vulnerability -- report it |
+| Information disclosure via operator logs or metrics | **In scope** |
Vulnerability -- report it |
+| A principal with Flink custom resource apply permission submitting a
malicious job | **Out of scope** | By design -- same trust model as
authenticated job submission |
+| RBAC misconfiguration by the cluster administrator | **Out of scope** |
Operator responsibility |
+
+### Deployment Requirements
+
+The operator runs with cluster-scoped RBAC by default -- apply least-privilege
principles and restrict its service account to the minimum required
permissions. The admission webhook requires TLS, which Kubernetes enforces.
Credentials in Flink custom resource specifications flow through Kubernetes
secrets and must be managed according to your organization's secret management
policies. Restrict Flink custom resource apply permissions to trusted
principals.
+
+## Known Vulnerabilities
+
+The Flink project does not maintain its own CVE list. For a complete and
up-to-date record of known vulnerabilities, consult the authoritative external
databases:
+
+- [OSV](https://osv.dev) -- package-aware, used by Dependabot, Snyk, and
osv-scanner
+- [NVD](https://nvd.nist.gov) -- NIST's authoritative CVE database
+
+## Reporting a Vulnerability
+
+If you discover a vulnerability in Flink's own infrastructure, please report
it privately through one of the following channels:
+
+- **Apache Security Team:** [[email protected]](mailto:[email protected])
-- preferred for CVE assignment and coordinated disclosure
+- **Flink PMC (private):**
[[email protected]](mailto:[email protected]) -- for direct
discussion with the Flink PMC