Skip to content

fix(deps): bump netty to 4.1.136.Final and micrometer to 1.15.12 (#1528) - #1598

Merged
nthmost-orkes merged 4 commits into
mainfrom
fix/1528-cve-netty-micrometer
Sep 3, 2026
Merged

nthmost-orkes merged 4 commits into
mainfrom
fix/1528-cve-netty-micrometer

Conversation

@nthmost-orkes

@nthmost-orkes nthmost-orkes commented Sep 2, 2026 •

Copy link
Copy Markdown
Contributor

Knocks out the remaining high-severity Java CVEs flagged in #1528 (the residual set after #1490/#1502). This is the "low-hanging fruit" Peter identified.

Changes

  • netty 4.1.135.Final → 4.1.136.Final (BOM override in springboot-bom-overrides.gradle)
    • CVE-2026-56819 — netty-codec-http2
    • CVE-2026-55831, CVE-2026-55833, CVE-2026-56745 — netty-codec-http
    • CVE-2026-59901 — netty-codec
  • micrometer-core 1.15.11 → 1.15.12
    • CVE-2026-40983, CVE-2026-40984
    • Bumped revMicrometer to 1.15.12 and added ext['micrometer.version'] = revMicrometer.

Why the micrometer change is two-part

micrometer-core was pulled in transitively and pinned by the Spring Boot BOM to 1.15.11, while the explicitly-declared registry artifacts (cloudwatch2 / azure-monitor / prometheus / otlp) were on revMicrometer = 1.14.6. That left core and the registries on different minor lines. Setting ext['micrometer.version'] = revMicrometer and bumping revMicrometer to 1.15.12 patches core and realigns the whole micrometer family on one version.

Verification

Resolved against :conductor-server runtimeClasspath with Gradle dependencyInsight:

  • io.micrometer:micrometer-core:1.15.11 -> 1.15.12 (selected by rule)
  • io.netty:netty-codec, netty-codec-http, netty-codec-http2 all resolve to 4.1.136.Final

compileJava passes for every module that consumes micrometer (conductor-core, conductor-server, conductor-redis-configuration, conductor-scheduler-core).

Not addressed here (see #1528)

  • elasticsearch 7.17.29 (CVE-2025-37731) — there is no fix on the 7.x line (7.17.29 is the last 7.x). The ES8 build path already uses 8.19.11 (patched). Moving the default off ES7 is a separate policy decision, not a version bump.
  • perl / libssh2 / nginx (CVE-2026-13221, CVE-2026-57432, CVE-2026-58050, CVE-2026-60005) — these are Debian base-image OS packages, not Java deps. The Dockerfile already runs apt-get update at build time, so they resolve when Debian publishes patched packages (most are fresh 2026 CVEs with no upstream fix yet).

And i did not look into (just acknowledging): A lighter base image, per Peter's question 2.

Closes the netty + micrometer portion of #1528.

Resolves the remaining high-severity Java CVEs flagged in #1528:

- netty 4.1.135.Final -> 4.1.136.Final
  CVE-2026-56819 (netty-codec-http2), CVE-2026-55831/55833/56745
  (netty-codec-http), CVE-2026-59901 (netty-codec)
- micrometer-core 1.15.11 -> 1.15.12 via revMicrometer + a BOM override
  CVE-2026-40983, CVE-2026-40984

micrometer-core was resolved to 1.15.11 by the Spring Boot BOM while the
explicitly-declared registry artifacts were pinned at revMicrometer=1.14.6.
Bumping revMicrometer to 1.15.12 and adding ext['micrometer.version'] =
revMicrometer keeps core and the registries aligned on the patched version.
Bumping the whole micrometer family to 1.15.12 pulled micrometer-registry-otlp
1.15.x, which brings opentelemetry-proto 1.5.0-alpha. That gencode requires
protobuf-java 4.x (com.google.protobuf.RuntimeVersion$RuntimeDomain), but
protobuf-java is pinned to 3.25.5 (#964, GraalVM), so OtlpMeterRegistry failed
at runtime with NoClassDefFoundError and OtlpMetricsConfigurationTest broke.

Decouple the versions: micrometer-core still bumps to 1.15.12 (the CVE fix, via
the BOM property), while the registry artifacts (otlp/cloudwatch2/azure-monitor/
prometheus) stay on 1.14.6 -> opentelemetry-proto 1.3.2-alpha (protobuf 3.x).
This matches the working main baseline for the registries.
@nthmost-orkes
nthmost-orkes merged commit 8d4c376 into main Sep 3, 2026
11 checks passed
@nthmost-orkes
nthmost-orkes deleted the fix/1528-cve-netty-micrometer branch September 3, 2026 11:28
matteius pushed a commit to opensensor/conductor that referenced this pull request Sep 13, 2026
…ductor-oss#1528) (conductor-oss#1598)

* fix(deps): bump netty to 4.1.136.Final and micrometer to 1.15.12 (conductor-oss#1528)

Resolves the remaining high-severity Java CVEs flagged in conductor-oss#1528:

- netty 4.1.135.Final -> 4.1.136.Final
  CVE-2026-56819 (netty-codec-http2), CVE-2026-55831/55833/56745
  (netty-codec-http), CVE-2026-59901 (netty-codec)
- micrometer-core 1.15.11 -> 1.15.12 via revMicrometer + a BOM override
  CVE-2026-40983, CVE-2026-40984

micrometer-core was resolved to 1.15.11 by the Spring Boot BOM while the
explicitly-declared registry artifacts were pinned at revMicrometer=1.14.6.
Bumping revMicrometer to 1.15.12 and adding ext['micrometer.version'] =
revMicrometer keeps core and the registries aligned on the patched version.

* fix(deps): keep micrometer registries on 1.14.6 to preserve protobuf 3.x

Bumping the whole micrometer family to 1.15.12 pulled micrometer-registry-otlp
1.15.x, which brings opentelemetry-proto 1.5.0-alpha. That gencode requires
protobuf-java 4.x (com.google.protobuf.RuntimeVersion$RuntimeDomain), but
protobuf-java is pinned to 3.25.5 (conductor-oss#964, GraalVM), so OtlpMeterRegistry failed
at runtime with NoClassDefFoundError and OtlpMetricsConfigurationTest broke.

Decouple the versions: micrometer-core still bumps to 1.15.12 (the CVE fix, via
the BOM property), while the registry artifacts (otlp/cloudwatch2/azure-monitor/
prometheus) stay on 1.14.6 -> opentelemetry-proto 1.3.2-alpha (protobuf 3.x).
This matches the working main baseline for the registries.

(cherry picked from commit 8d4c376)
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.

2 participants