Skip to content

Enable Gradle dependency locking + clear the CVEs it revealed - #184

Merged
nthmost-orkes merged 1 commit into
mainfrom
fix/cve-scan-coverage-2026-10
Oct 23, 2026
Merged

nthmost-orkes merged 1 commit into
mainfrom
fix/cve-scan-coverage-2026-10

Conversation

@nthmost-orkes

Copy link
Copy Markdown
Contributor

Closes java-sdk's CVE-scan blind spot and clears the HIGH findings it was hiding.

Why this was invisible: the Trivy scan reads resolved deps from a lock file. java-sdk committed none, so it scanned thin (no pinned transitive graph) and showed a false-clean 0. This enables Gradle dependency locking on the runtimeClasspath of the six published client libraries and commits a gradle.lockfile per module -- which immediately surfaced real HIGH CVEs, fixed here.

Lib From To CVEs
jackson (core + databind) 2.18.6 2.18.11 8, incl. CVE-2026-54512 / 54513 (RCE)
spring-boot (conductor-client-spring) 3.5.13 3.5.15 spring-boot advisory + spring-framework 6.2.19 (CVE-2026-41850)
spring-boot (conductor-client-spring-boot4) 4.0.6 4.0.7 spring-framework 7.0.8 (CVE-2026-41850)
micrometer-registry-prometheus 1.15.1 1.15.12 CVE-2026-40983, CVE-2026-40984

jackson is a global bump in versions.gradle; the spring-boot and micrometer bumps are per-module. Only runtimeClasspath is locked (what ships) -- test and compile-only configs stay unlocked.

Verification: all six published modules assemble under JDK 21, and every committed gradle.lockfile now scans 0 HIGH/CRITICAL (Trivy 0.76). CI runs the full build + tests.

User impact: the Java client libraries were pulling jackson with two remote-code-execution bugs plus high-severity spring and micrometer issues, all unseen because the scan couldn't read the dependency graph. This both fixes them and makes future dependency CVEs detectable.

Parent: #180
Fixes #181
Fixes #182
Fixes #183

The CVE scan reads resolved deps from a lock file; java-sdk committed none, so
it scanned thin and showed a false-clean 0. Lock the runtime classpath of the
six published client libraries (committed gradle.lockfile per module), which
surfaced real HIGH findings -- fixed here:

- jackson 2.18.6 -> 2.18.11 (versions.gradle): 8 CVEs incl. 2 RCE
  (CVE-2026-54512/54513) across jackson-core + jackson-databind
- spring-boot-starter 3.5.13 -> 3.5.15 (conductor-client-spring): clears the
  spring-boot CVE and pulls spring-framework 6.2.19 (spring-expression CVE-2026-41850)
- spring-boot-starter 4.0.6 -> 4.0.7 (conductor-client-spring-boot4): pulls
  spring-framework 7.0.8 (spring-expression CVE-2026-41850)
- micrometer-registry-prometheus 1.15.1 -> 1.15.12 (conductor-client-metrics):
  CVE-2026-40983/40984

Only runtimeClasspath is locked (what ships); all six lockfiles now scan clean
and all published modules assemble.
@nthmost-orkes
nthmost-orkes requested a review from c4lm October 20, 2026 09:59
@nthmost-orkes
nthmost-orkes merged commit 7eb1de0 into main Oct 23, 2026
4 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

2 participants