fix(deps): update module go.opentelemetry.io/otel/sdk to v1.43.0 [security]#31
Conversation
ℹ Artifact update noticeFile name: go.modIn order to perform the update(s) described in the table above, Renovate ran the
Details:
|
alaudabot
left a comment
There was a problem hiding this comment.
Review Summary
This PR is a security dependency update to fix vulnerabilities in go.opentelemetry.io/otel/sdk from v1.40.0 to v1.43.0. All changes are in vendored third-party dependencies. No critical issues or warnings identified.
Suggestions
- vendor/go.opentelemetry.io/otel/sdk/trace/sampling.go:82 - The new
predictedSamplerstruct lacks GoDoc. Consider adding documentation.
| return SamplingResult{ | ||
| Decision: Drop, | ||
| Tracestate: psc.TraceState(), | ||
| Tracestate: state, |
There was a problem hiding this comment.
Suggestion (style/documentation): Consider adding a GoDoc comment to explain this struct's purpose as a spec-compliant sampler for edge cases (fraction >= 1 or <= 0).
🤖 AI Code Review
PR Overview: Security Dependency UpdateSummaryThis PR updates the OpenTelemetry Go SDK from v1.40.0 to v1.43.0 to address security vulnerabilities. The changes are primarily in vendored third-party dependencies (go.opentelemetry.io/otel and golang.org/x/sys), with no modifications to application code. The upgrade includes important fixes including spec-compliant TraceIDRatioBased descriptions, race condition fixes, and new context-aware resource detection functions. Review Statistics
Critical IssuesNone identified. This is a vendor dependency update for security purposes. WarningsNone identified. All changes are in vendored third-party dependencies following upstream patterns. Suggestions
Positive Feedback
Review Note: This PR consists entirely of vendor dependency updates. All changes follow the upstream OpenTelemetry Go SDK patterns and conventions. No application code modifications are present. The security fix (vulnerability in otel/sdk) is the primary driver for this update. ℹ️ About this reviewThis review was automatically generated using the
|
This PR contains the following updates:
v1.40.0->v1.43.0GitHub Vulnerability Alerts
CVE-2026-24051
Impact
The OpenTelemetry Go SDK in version
v1.20.0-1.39.0is vulnerable to Path Hijacking (Untrusted Search Paths) on macOS/Darwin systems. The resource detection code insdk/resource/host_id.goexecutes theioregsystem command using a search path. An attacker with the ability to locally modify the PATH environment variable can achieve Arbitrary Code Execution (ACE) within the context of the application.Patches
This has been patched in d45961b, which was released with
v1.40.0.References
CVE-2026-39883
Summary
The fix for GHSA-9h8m-3fm2-qjrq (CVE-2026-24051) changed the Darwin
ioregcommand to use an absolute path but left the BSDkenvcommand using a bare name, allowing the same PATH hijacking attack on BSD and Solaris platforms.Root Cause
sdk/resource/host_id.goline 42:Compare with the fixed Darwin path at line 58:
The
execCommandhelper atsdk/resource/host_id_exec.gousesexec.Command(name, arg...)which searches$PATHwhen the command name contains no path separator.Affected platforms (per build tag in
host_id_bsd.go:4): DragonFly BSD, FreeBSD, NetBSD, OpenBSD, Solaris.The
kenvpath is reached when/etc/hostiddoes not exist (line 38-40), which is common on FreeBSD systems.Attack
go.opentelemetry.io/otel/sdkkenvbinary earlier in$PATHhostIDReaderBSD.read()callsexec.Command("kenv", ...)which resolves to the malicious binarySame attack vector and impact as CVE-2026-24051.
Suggested Fix
Use the absolute path:
On FreeBSD,
kenvis located at/bin/kenv.opentelemetry-go: BSD kenv command not using absolute path enables PATH hijacking
CVE-2026-39883 / GHSA-hfvc-g4fc-pqhx
More information
Details
Summary
The fix for GHSA-9h8m-3fm2-qjrq (CVE-2026-24051) changed the Darwin
ioregcommand to use an absolute path but left the BSDkenvcommand using a bare name, allowing the same PATH hijacking attack on BSD and Solaris platforms.Root Cause
sdk/resource/host_id.goline 42:Compare with the fixed Darwin path at line 58:
The
execCommandhelper atsdk/resource/host_id_exec.gousesexec.Command(name, arg...)which searches$PATHwhen the command name contains no path separator.Affected platforms (per build tag in
host_id_bsd.go:4): DragonFly BSD, FreeBSD, NetBSD, OpenBSD, Solaris.The
kenvpath is reached when/etc/hostiddoes not exist (line 38-40), which is common on FreeBSD systems.Attack
go.opentelemetry.io/otel/sdkkenvbinary earlier in$PATHhostIDReaderBSD.read()callsexec.Command("kenv", ...)which resolves to the malicious binarySame attack vector and impact as CVE-2026-24051.
Suggested Fix
Use the absolute path:
On FreeBSD,
kenvis located at/bin/kenv.Severity
CVSS:4.0/AV:L/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:NReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Release Notes
open-telemetry/opentelemetry-go (go.opentelemetry.io/otel/sdk)
v1.43.0: /v0.65.0/v0.19.0Compare Source
Added
IsRandomandWithRandomonTraceFlags, andIsRandomonSpanContextingo.opentelemetry.io/otel/tracefor W3C Trace Context Level 2 Random Trace ID Flag support. (#8012)
WithServiceingo.opentelemetry.io/otel/sdk/resource. (#7642)DefaultWithContextandEnvironmentWithContextingo.opentelemetry.io/otel/sdk/resourceto support plumbingcontext.Contextthrough default and environment detectors. (#8051)attribute.EMPTY) ingo.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc. (#8038)attribute.EMPTY) ingo.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc. (#8038)attribute.EMPTY) ingo.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc. (#8038)attribute.EMPTY) ingo.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp. (#8038)attribute.EMPTY) ingo.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp. (#8038)attribute.EMPTY) ingo.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp. (#8038)attribute.EMPTY) ingo.opentelemetry.io/otel/sdk/metric/metricdata/metricdatatest. (#8038)go.opentelemetry.io/otel/sdk/metric.Set
OTEL_GO_X_PER_SERIES_START_TIMESTAMPS=trueto enable. (#8060)WithCardinalityLimitSelectorfor metric reader for configuring cardinality limits specific to the instrument kind. (#7855)Changed
EMPTYType ingo.opentelemetry.io/otel/attributeto reflect that an empty value is now a valid value, withINVALIDremaining as a deprecated alias ofEMPTY. (#8038)go.opentelemetry.io/otel/attributeto optimize short slice values with fixed-size fast paths. (#8039)go.opentelemetry.io/otel/sdk/traceby returning early if self-observability is not enabled. (#8067)go.opentelemetry.io/otel/sdk/metric/metricdata/metricdatatest. (#8073)Deprecated
INVALIDingo.opentelemetry.io/otel/attribute. UseEMPTYinstead. (#8038)Fixed
TraceIdRatioBaseddescription. This is a breaking behavioral change, but it is necessary tomake the implementation spec-compliant. (#8027)
go.opentelemetry.io/otel/sdk/metricwhere the lastvalue aggregation could collect the value 0 even when no zero-value measurements were recorded. (#8056)go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttpto mitigate excessive memory usage caused by a misconfigured or malicious server.Responses exceeding the limit are treated as non-retryable errors. (#8108)
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttpto mitigate excessive memory usage caused by a misconfigured or malicious server.Responses exceeding the limit are treated as non-retryable errors. (#8108)
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttpto mitigate excessive memory usage caused by a misconfigured or malicious server.Responses exceeding the limit are treated as non-retryable errors. (#8108)
WithHostIDdetector ingo.opentelemetry.io/otel/sdk/resourceto use full path forkenvcommand on BSD. (#8113)request.GetBodyingo.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttpto correctly handle HTTP2 GOAWAY frame. (#8096)What's Changed
190d7d4by @renovate[bot] inhttps://github.com/open-telemetry/opentelemetry-go/pull/80133a57be14by @renovate[bot] inhttps://github.com/open-telemetry/opentelemetry-go/pull/803118895462by @renovate[bot] inhttps://github.com/open-telemetry/opentelemetry-go/pull/803666e66a94by @renovate[bot] inhttps://github.com/open-telemetry/opentelemetry-go/pull/8043384a4fc4by @renovate[bot] inhttps://github.com/open-telemetry/opentelemetry-go/pull/80488b7b2c7bby @renovate[bot] inhttps://github.com/open-telemetry/opentelemetry-go/pull/80444befce8dby @renovate[bot] inhttps://github.com/open-telemetry/opentelemetry-go/pull/80533c2dfcecby @renovate[bot] inhttps://github.com/open-telemetry/opentelemetry-go/pull/80555dec52c4by @renovate[bot] inhttps://github.com/open-telemetry/opentelemetry-go/pull/80633744bfb5by @renovate[bot] inhttps://github.com/open-telemetry/opentelemetry-go/pull/80644internal/observpackage to stdoutlog by @yumosx in https://github.com/open-telemetry/opentelemetry-go/pull/7735de6f1ccby @renovate[bot] inhttps://github.com/open-telemetry/opentelemetry-go/pull/80822d00831aby @renovate[bot] inhttps://github.com/open-telemetry/opentelemetry-go/pull/80788b6b0c46by @renovate[bot] inhttps://github.com/open-telemetry/opentelemetry-go/pull/80766d5a96adby @renovate[bot] inhttps://github.com/open-telemetry/opentelemetry-go/pull/811229d38bb4by @renovate[bot] inhttps://github.com/open-telemetry/opentelemetry-go/pull/81177c99c5cfby @renovate[bot] inhttps://github.com/open-telemetry/opentelemetry-go/pull/81222New Contributors
Full Changelog: open-telemetry/opentelemetry-go@v1.42.0...v1.43.0
v1.42.0: /v0.64.0/v0.18.0/v0.0.16Compare Source
Added
go.opentelemetry.io/otel/semconv/v1.40.0package.The package contains semantic conventions from the
v1.40.0version of the OpenTelemetry Semantic Conventions.See the migration documentation for information on how to upgrade from
go.opentelemetry.io/otel/semconv/v1.39.0. (#7985)ErrandSetErronRecordingo.opentelemetry.io/otel/logto attach an error and set record exception attributes ingo.opentelemetry.io/otel/log/sdk. (#7924)Changed
TracerProvider.ForceFlushingo.opentelemetry.io/otel/sdk/tracejoins errors together and continues iteration through SpanProcessors as opposed to returning the first encountered error without attempting exports on subsequent SpanProcessors. (#7856)Fixed
request.GetBodyingo.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttpto correctly handle HTTP2 GOAWAY frame. (#7931)go.opentelemetry.io/otel/propagation. (#7834)Removed
What's Changed
df47568by @renovate[bot] inhttps://github.com/open-telemetry/opentelemetry-go/pull/7996618da590by @renovate[bot] inhttps://github.com/open-telemetry/opentelemetry-go/pull/80000e526e8aby @renovate[bot] inhttps://github.com/open-telemetry/opentelemetry-go/pull/80100New Contributors
Full Changelog: open-telemetry/opentelemetry-go@v1.41.0...v1.42.0
v1.41.0: /v0.63.0/v0.17.0/v0.0.15Compare Source
This release is the last to support Go 1.24. The next release will require at least Go 1.25.
Added
Fixed
Baggageingo.opentelemetry.io/otel/propagationandParseandNewingo.opentelemetry.io/otel/baggageto comply with W3C Baggage specification limits.NewandParsenow return partial baggage along with an error when limits are exceeded. Errors from baggage extraction are reported to the global error handler. (#7880)What's Changed
ce8ad4cby @renovate[bot] inhttps://github.com/open-telemetry/opentelemetry-go/pull/78600fe4bb1cby @renovate[bot] inhttps://github.com/open-telemetry/opentelemetry-go/pull/78611aaaaaa5by @renovate[bot] inhttps://github.com/open-telemetry/opentelemetry-go/pull/78699546029dby @renovate[bot] inhttps://github.com/open-telemetry/opentelemetry-go/pull/7871186a5c4bby @renovate[bot] inhttps://github.com/open-telemetry/opentelemetry-go/pull/787662842357by @renovate[bot] inhttps://github.com/open-telemetry/opentelemetry-go/pull/789114cfbd41by @renovate[bot] inhttps://github.com/open-telemetry/opentelemetry-go/pull/78899oteltracegrpcby @itssaharsh in https://github.com/open-telemetry/opentelemetry-go/pull/7825Configuration
📅 Schedule: Branch creation - "" in timezone Asia/Shanghai, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot.