fix(SECURE-3323): exclude vulnerable obi/beyla.ebpf via noebpf build tag#6
Open
jace-son wants to merge 1 commit into
Open
fix(SECURE-3323): exclude vulnerable obi/beyla.ebpf via noebpf build tag#6jace-son wants to merge 1 commit into
jace-son wants to merge 1 commit into
Conversation
go.opentelemetry.io/obi (CVE-2026-41433, GHSA-8gmg-3w2q-65f4, High/CVSS 8.4) has a path-traversal / symlink-clobber flaw in the Java agent injection path. The deployed alloy image (grafana/alloy:v1.15.0-mem-patch-v1) pulls obi via a replace directive to grafana fork commit e31c5ac (2026-03-18), which predates the fix (upstream obi v0.8.0, 2026-04-16 / fork tag v1.20.0). A straight obi bump is not viable: obi is tightly coupled to grafana/beyla/v3 (shared otelcfg types) and the otel-collector ecosystem, so bumping obi alone breaks the build (beyla/v3 v3.6.0 vs obi v1.20.0 otelcfg.TracesConfig.MaxQueueSize removal) and a coupled bump churns 240+ deps across collector v1.53->v1.55. We do not use beyla.ebpf anywhere (no beyla/OBI references in ops-k8s; alloy config only uses pyroscope.ebpf + xnet-exporter), so the vulnerable code is not reachable. Introduce a `noebpf` build tag that swaps the beyla.ebpf component to its existing noop placeholder, removing obi and beyla/v3 from the build entirely (go list -deps: 122 -> 0 obi/beyla packages). The component stays registered, so configs still parse; using it logs a warning. Enable the tag in Dockerfile GO_TAGS. Ref: SECURE-3323
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Excludes the vulnerable
go.opentelemetry.io/obi(CVE-2026-41433, GHSA-8gmg-3w2q-65f4, High / CVSS 8.4) from the alloy binary via a newnoebpfbuild tag, instead of upgrading obi.Ref: SECURE-3323
Why not just bump obi?
obiis tightly coupled tografana/beyla/v3(sharedotelcfgtypes) and the otel-collector ecosystem. The fix is in obi v0.8.0 / grafana fork tag v1.20.0, but bumping obi alone breaks the build:A coupled bump (obi + beyla/v3 + collector) churns 240+ deps (collector v1.53 -> v1.55, contrib v0.147 -> v0.149). Upstream grafana/alloy main itself is still on a pre-fix obi (fork v1.18.4), so we'd be ahead of upstream.
Why this is safe
We don't use
beyla.ebpfanywhere (no beyla/OBI references in ops-k8s; our alloy config only usespyroscope.ebpf+xnet-exporter). The vulnerable Java-injection path is not reachable in our deployment.The
beyla.ebpfcomponent already ships a noop placeholder (beyla_placeholder.go) for non-linux platforms. This PR makes thenoebpfbuild tag select that placeholder on linux too, soobi+beyla/v3drop out of the binary entirely. The component stays registered — configs still parse; enablingbeyla.ebpfjust logs a warning.Changes
internal/component/beyla/ebpf/beyla_linux.go— add&& !noebpfto build constraintinternal/component/beyla/ebpf/beyla_linux_test.go— sameinternal/component/beyla/ebpf/beyla_placeholder.go— add|| noebpfto build constraintDockerfile— addnoebpftoGO_TAGSVerification
args.goshared by both).beyla.ebpfpackage compiles with and without the tag.godror) +pyroscope/ebpfenv issues that reproduce identically on the baseline — not introduced by this change.🤖 Generated with Claude Code