Skip to content

fix(backend): Quarkus 3.40 LTS, so netty-handler leaves CVE-2026-75595 - #559

Merged
bmscomp merged 1 commit into
mainfrom
chore/quarkus-3.40
Oct 30, 2026
Merged

bmscomp merged 1 commit into
mainfrom
chore/quarkus-3.40

Conversation

@bmscomp

@bmscomp bmscomp commented Oct 30, 2026

Copy link
Copy Markdown
Owner

The v1.33.0 release run (41062193181) failed Kates image / Verify Published Images (jvm) on CVE-2026-75595 (netty-handler 4.1.130, CRITICAL). The .trivyignore.yaml entry expired on 2026-10-30, and no Quarkus 3.20.x patch moves Netty. This is the upgrade #284 tracks.

Quarkus 3.20.6 → 3.40.1.1: Netty 4.1.139 (with matching brotli4j/tcnative, so the native image builds with no OpenSSL errors), kafka-clients 4.2.1, Flyway 12.

Change Why
kafka-clients and Netty codec overrides removed the BOM is newer (4.2.1, 4.1.139)
lz4-java override kept BOM has 1.11.4, pin is 1.12.1
quarkus-junit, testcontainers-postgresql/-kafka, surefire/failsafe argLine quarkus update recipes
Dockerfile.native: Mandrel jdk-21 → jdk-25 3.40 refuses Mandrel 23.1
schema-management.strategy, log.console.json.enabled renamed keys (old ones log deprecation)
3 tests: MockProducer(autoComplete, null, ser, ser) Kafka 4 removed the 3-arg constructor
.trivyignore.yaml entry removed the fix it waited for
MCP caveat refs, appendix D lines moved / Quarkus version

Verified locally

  • ./mvnw verify: 1768 unit + 93 IT, 0 failures, no unrecognized config keys
  • Native and JVM images from the real Dockerfiles; scripts/native-smoke-test.sh passes on both
  • Trivy 0.67.2, gate flags (CRITICAL, ignore-unfixed), empty ignore file: 0 on both images
  • spotless, TestMCPCaveatRefAnchors, gen-version-matrix.sh --check

Not done from #284: a baseline run on each side of the upgrade (load generator moves from Kafka clients 3.9.2 to 4.2.1); needs a live cluster. Refs #284.

Not in scope: Kafka 4 deprecations of listConsumerGroups/ConsumerGroupListing (still compile); guava 33.6.0 HIGH CVE-2026-102554 (release gate is CRITICAL-only).

Connect image fix for the same CVE: #558.

The v1.33.0 release gate failed the kates JVM image on CVE-2026-75595
(netty-handler 4.1.130, CRITICAL): the .trivyignore.yaml entry for it
expired on 2026-10-30, and no Quarkus 3.20.x patch moves Netty.

Quarkus 3.20.6 -> 3.40.1.1 (#284). Its BOM ships Netty 4.1.139 with the
matching brotli4j and tcnative, so the native image builds again with no
OpenSSL substitution errors, and kafka-clients 4.2.1.

- pom: the kafka-clients and Netty codec overrides go, the BOM is newer;
  lz4-java stays (BOM 1.11.4 < 1.12.1). quarkus update renamed
  quarkus-junit5 -> quarkus-junit, the Testcontainers 2 modules, and set
  surefire/failsafe argLine.
- Dockerfile.native: Mandrel builder jdk-21 -> jdk-25; 3.40 refuses 23.1.
- Config: database.generation -> schema-management.strategy, and
  log.console.json -> log.console.json.enabled.
- Tests: Kafka 4 dropped MockProducer(boolean, Serializer, Serializer);
  the four-argument constructor with a null partitioner is the same.
- .trivyignore.yaml: the CVE-2026-75595 entry is removed.
- MCP caveat refs re-pointed: application.properties lost three lines.
- appendix D: Quarkus 3.40.1.1.

Verified locally: mvnw verify (1768 unit, 93 IT, 0 failures), native and
JVM images built from the real Dockerfiles, scripts/native-smoke-test.sh
passes on both, Trivy 0.67.2 with the gate's flags finds no CRITICAL in
either, spotless, TestMCPCaveatRefAnchors, gen-version-matrix --check.
@bmscomp
bmscomp merged commit c98824a into main Oct 30, 2026
61 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant