Skip to content

fix: patch Snyk-reported OpenTelemetry API vulnerability#3745

Closed
JanCizmar wants to merge 1 commit into
mainfrom
jancizmar/snyk-otel
Closed

fix: patch Snyk-reported OpenTelemetry API vulnerability#3745
JanCizmar wants to merge 1 commit into
mainfrom
jancizmar/snyk-otel

Conversation

@JanCizmar

@JanCizmar JanCizmar commented Jun 11, 2026

Copy link
Copy Markdown
Member

Clears the high-severity Snyk advisory in opentelemetry-api that ships in the tolgee/tolgee image (the last shipped high from the Snyk report).

Changes

  • OpenTelemetry API/SDK 1.60.11.62.0
  • Java agent + instrumentation 2.26.12.28.1 (the agent 2.N ↔ API 1.(N+34) pairing; 2.28.x is the latest agent that targets API 1.62)
  • Override the Spring Boot BOM's managed opentelemetry.version (1.49.0)

The BOM override matters: Spring Boot 3.5.14 pins opentelemetry.version=1.49.0, which transitively held opentelemetry-extension-kotlin at a stale, CVE-affected 1.49.0 in server-app even though opentelemetryApiVersion was already higher (it only escaped for api/context, which server-app declares directly). Forcing the managed version makes every shipped opentelemetry-* jar resolve to 1.62.0.

The Docker image's OTEL agent download uses this same opentelemetryJavaagentVersion via a build-arg, so the agent stays in lockstep automatically.

Verification

Built bootJar shows all opentelemetry-* jars at 1.62.0 (-instrumentation-annotations at 2.28.1). Gradle Snyk scan: no opentelemetry findings remain. Full compile + data unit tests (623) pass.

Summary by CodeRabbit

  • Chores
    • Updated OpenTelemetry dependencies (javaagent, instrumentation, and API) to their latest stable versions.

Bump the OpenTelemetry stack to clear a high-severity advisory in
opentelemetry-api that ships in the image:

- API/SDK 1.60.1 -> 1.62.0
- Java agent + instrumentation 2.26.1 -> 2.28.1

Also override the Spring Boot BOM's managed opentelemetry.version (1.49.0),
which otherwise pins opentelemetry-extension-kotlin to a stale, CVE-affected
release transitively, so every shipped opentelemetry-* jar resolves to 1.62.0.

Verified against the built bootJar and a Gradle Snyk scan: no opentelemetry
findings remain. Compile and data unit tests pass.
@coderabbitai

coderabbitai Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 0c7de63d-558f-414b-b531-1859b3dc4292

📥 Commits

Reviewing files that changed from the base of the PR and between 9a64fc9 and 5b5b5cc.

📒 Files selected for processing (2)
  • build.gradle
  • gradle.properties

📝 Walkthrough

Walkthrough

The PR updates OpenTelemetry Gradle dependency versions and adds a project extension property to control OpenTelemetry core resolution. gradle.properties bumps the agent/instrumentation versions to 2.28.1 and API to 1.62.0; build.gradle adds a new ext['opentelemetry.version'] property pointing to the API version, with documentation of a Spring Boot BOM security override for the OpenTelemetry BOM.

Changes

OpenTelemetry Version Updates

Layer / File(s) Summary
Version property updates and Gradle extension override
gradle.properties, build.gradle
Gradle properties for OpenTelemetry agent, instrumentation, and API versions are bumped to 2.28.1 and 1.62.0; a new project extension property opentelemetry.version is added to control OpenTelemetry core resolution during dependency wiring.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

  • tolgee/tolgee-platform#3725: Both PRs touch the Gradle OpenTelemetry versioning/override wiring—this PR adds ext['opentelemetry.version'] and an OpenTelemetry BOM override, while the retrieved PR bumps the same opentelemetry*Version properties in gradle.properties to the target API version.
  • tolgee/tolgee-platform#3450: This PR bumps/overrides OpenTelemetry Gradle version properties, which directly supports the retrieved PR's added OpenTelemetry dependencies and tracing/metrics instrumentation code.

Poem

🐰 A version hop, a property springs,
OpenTelemetry takes flight on Gradle wings,
From 1.60 up to 1.62 we bound,
Dependency chains now firmly sound,
Build extensions sing with telemetry cheer!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'fix: patch Snyk-reported OpenTelemetry API vulnerability' directly and clearly describes the main change—upgrading OpenTelemetry dependencies to address a high-severity Snyk security advisory.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch jancizmar/snyk-otel

Comment @coderabbitai help to get the list of available commands and usage tips.

dkrizan pushed a commit that referenced this pull request Jun 11, 2026
Documents risk-acceptance for the advisories that remain after the
dependency-fix PRs (#3742, #3743, #3744, #3745). None of these have a
clean upstream fix, and none carry meaningful real-world risk — so
rather than leave them flagged as open alerts (drowning out future
*real* findings), they're explicitly accepted with a justification and a
re-review expiry.

### `webapp/.snyk` — browser-side, input crosses no trust boundary
| Advisory | Package | Why accepted |
|---|---|---|
| `SNYK-JS-ZXCVBN-3257741` | zxcvbn (ReDoS) | input is the user's own
password as they type; worst case is self-slowdown of their own tab.
Unmaintained, no patched release. |
| `SNYK-JS-INFLIGHT-6095116` | inflight (leak) | reached only via a
Node-only `broadcast-channel → rimraf → glob` path not exercised in the
browser bundle. Deprecated, no fix. |
| `SNYK-JS-D3COLOR-1076592` | d3-color (ReDoS) | parses app-controlled
chart colors, not untrusted input. Fix needs a major d3 bump that risks
breaking recharts. |

### `e2e/.snyk` — test-only Cypress harness
| Advisory | Package | Why accepted |
|---|---|---|
| `SNYK-JS-XLSX-6252523` | xlsx (ReDoS) | never shipped, runs in CI
against known fixtures. No npm fix (SheetJS distributes via CDN only). |
| `SNYK-JS-XLSX-5457926` | xlsx (prototype pollution) | same as above. |

Each entry has a one-year `expires` so they resurface for re-review.
Verified locally — `snyk test` in `webapp/` and `e2e/` reports these as
ignored (e2e is now clean).

Follow-up tech-debt (not security): migrate `zxcvbn` → the maintained
`@zxcvbn-ts/core` fork.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
* Updated security vulnerability management policies to the latest
format and configuration standards across testing and application
environments.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
@github-actions

Copy link
Copy Markdown
Contributor

This PR is stale because it has been open for 30 days with no activity.

@github-actions github-actions Bot added the stale label Jul 12, 2026
@github-actions

Copy link
Copy Markdown
Contributor

This PR was closed because it has been inactive for 14 days since being marked as stale.

@github-actions github-actions Bot closed this Jul 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant