[FLINK-39713] Bump log4j, jackson, and Beam to retire CVEs#1114
Conversation
b7c92ff to
247c643
Compare
Patch/minor bumps within the same major lines to retire CVEs flagged by Trivy: - log4j 2.25.4 clears CVE-2025-68161, CVE-2026-34477, CVE-2026-34478, CVE-2026-34479, CVE-2026-34480 across every module that consumes ${log4j.version}. - jackson-bom 2.21.3 (latest 2.x stable) clears GHSA-72hv-8253-57qq for jackson-core/jackson-databind consumers in flink-kubernetes-operator and flink-kubernetes-operator-api. Both are direct version bumps in the root pom; no dependencyManagement overrides on transitives.
Beam 2.73.0 is the latest stable as of 2026-04-23 and still publishes beam-runners-flink-1.19, so this is a single property edit with no API surface changes in the example. Picks up patched copies of the example-scoped transitives Trivy flagged (kaml, okio, wire-runtime, kafka-clients, opentelemetry-api, spring-core, spring-expression, and the parallel Netty copy that comes through Beam). Scope is the example module only; the shipped operator image is unaffected. No dependencyManagement overrides on transitives.
247c643 to
689f847
Compare
|
@Dennis-Mircea Can you help with a review. |
Dennis-Mircea
left a comment
There was a problem hiding this comment.
A few things need to be addressed before this is reviewable.
-
The diff does not match the description - PR body and FLINK-39713 say Jackson goes to 2.18.6. The diff says 2.21.3. That is 3 extra minor versions and two more deprecation cycles. Align the body, the JIRA, and the pom, and explain why the larger jump is needed if 2.21.3 is the real target.
-
Jackson is not a low-risk bump here - It is on the serialization path for
CommonStatus, the reconciled spec snapshot persisted viaStatusRecorder, and the savepoint metadata stored in the CRD. It is also pulled transitively by fabric8, Flink core, and Beam, so a direct override can desync from what those bring in. "Covered by existing tests" does not cover this. Please add a verification note that includes:- An upgrade roundtrip: an existing CRD instance reconciled with the current operator still deserializes cleanly after the bump.
- A
mvn dependency:treecross-check confirming no jackson minor mismatch with Flink's shaded chain or fabric8. - Any removed & deprecated APIs we rely on (
MapperFeature,JsonInclude, custom serializers).
-
CVE references are incomplete - Listing IDs is a start, but a security-motivated bump needs the actual risk picture. For each advisory (CVE-2025-68161, CVE-2026-34477/78/79/80, GHSA-72hv-8253-57qq), please add:
- CVSS score and severity (Critical / High / Medium / Low). Without this we cannot tell whether this PR is closing a 9.8 RCE or a 3.1 informational. That difference dictates urgency, backport policy, and whether the larger Jackson jump in (1) is even justified.
- Fix version per upstream advisory. Confirms the chosen target is the minimum sufficient one and not arbitrary.
- Link to the upstream advisory for each (NVD, GHSA, or vendor page).
CVE-2026-3447x are recent enough that not every reviewer will know them by ID, and without scores the PR reads as "Trivy said so" rather than a triaged security decision.
-
Beam 2.62 to 2.73 has no rationale in the body - 11 minor versions is a large jump even for an examples-only module. The JIRA mentions 37 Trivy findings, that justification belongs in the PR description. One line is enough.
Please reconcile (1), add the verification note in (2), and update the description per (3) and (4) before re-requesting review.
Verdict: safe to ship 2.21.3. Check in DetailVerification — jackson-bom 2.15.0 → 2.21.3Scope. The bump affects the unshaded Jackson chain used by CRD types, the admission webhook, and operator-owned serialization ( Convergence. API audit. Exhaustive grep across
Annotation surface in production is limited to Tests. Full reactor Verdict — safe to ship 2.21.3. Reactor-wide convergence, scoped-out state-store path, zero hits on every historically-risky pattern, full unit suite green on 2.21.3, and the only behavior change is a
|
What is the purpose of the change
Retire CVEs flagged by Trivy by bumping three direct dependencies. No
<dependencyManagement>overrides on transitives.JIRA: FLINK-39713
Brief change log
pom.xml:log4j.version2.23.1 → 2.25.4pom.xml:jackson-bom2.15.0 → 2.21.3examples/flink-beam-example/pom.xml:beam.version2.62.0 → 2.73.0 — retires the 37 Trivy findings in the Beam-transitive chain (kaml, okio, wire-runtime, kafka-clients, opentelemetry-api, spring-*, parallel Netty); example-only scope,beam-runners-flink-1.19still publishes at 2.73.0 so no runner-artifact change. Per-CVE detail on FLINK-39713.Residual Netty / lz4-java / commons-lang3 CVEs come through
flink-runtimeand need a future Flink minor with Netty ≥ 4.1.133.Verifying this change
Covered by existing tests. Full reactor
mvn -B -ntp teston this branch — 2,568 / 0 failures / 0 errors / 0 skipped. Full verification breakdown in the PR comments below.Does this pull request potentially affect one of the following parts:
Documentation