chore(deps): update security updates [security]#190
Conversation
|
Important Review skippedReview was skipped due to path filters ⛔ Files ignored due to path filters (2)
CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
f217068 to
68631b1
Compare
ℹ Artifact update noticeFile name: go.modIn order to perform the update(s) described in the table above, Renovate ran the
Details:
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #190 +/- ##
===========================
===========================
☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
This PR contains the following updates:
v4.1.3->v4.1.4v1.42.0->v1.43.0v1.42.0->v1.43.0GitHub Vulnerability Alerts
CVE-2026-34986
Impact
Decrypting a JSON Web Encryption (JWE) object will panic if the
algfield indicates a key wrapping algorithm (one ending inKW, with the exception ofA128GCMKW,A192GCMKW, andA256GCMKW) and theencrypted_keyfield is empty. The panic happens whencipher.KeyUnwrap()inkey_wrap.goattempts to allocate a slice with a zero or negative length based on the length of theencrypted_key.This code path is reachable from
ParseEncrypted()/ParseEncryptedJSON()/ParseEncryptedCompact()followed byDecrypt()on the resulting object. Note that the parse functions take a list of accepted key algorithms. If the accepted key algorithms do not include any key wrapping algorithms, parsing will fail and the application will be unaffected.This panic is also reachable by calling
cipher.KeyUnwrap()directly with anyciphertextparameter less than 16 bytes long, but calling this function directly is less common.Panics can lead to denial of service.
Fixed In
4.1.4 and v3.0.5
Workarounds
If the list of
keyAlgorithmspassed toParseEncrypted()/ParseEncryptedJSON()/ParseEncryptedCompact()does not include key wrapping algorithms (those ending inKW), your application is unaffected.If your application uses key wrapping, you can prevalidate to the JWE objects to ensure the
encrypted_keyfield is nonempty. If your application accepts JWE Compact Serialization, apply that validation to the corresponding field of that serialization (the data between the first and second.).Thanks
Thanks to Datadog's Security team for finding this issue.
Go JOSE Panics in JWE decryption
CVE-2026-34986 / GHSA-78h2-9frx-2jm8
More information
Details
Impact
Decrypting a JSON Web Encryption (JWE) object will panic if the
algfield indicates a key wrapping algorithm (one ending inKW, with the exception ofA128GCMKW,A192GCMKW, andA256GCMKW) and theencrypted_keyfield is empty. The panic happens whencipher.KeyUnwrap()inkey_wrap.goattempts to allocate a slice with a zero or negative length based on the length of theencrypted_key.This code path is reachable from
ParseEncrypted()/ParseEncryptedJSON()/ParseEncryptedCompact()followed byDecrypt()on the resulting object. Note that the parse functions take a list of accepted key algorithms. If the accepted key algorithms do not include any key wrapping algorithms, parsing will fail and the application will be unaffected.This panic is also reachable by calling
cipher.KeyUnwrap()directly with anyciphertextparameter less than 16 bytes long, but calling this function directly is less common.Panics can lead to denial of service.
Fixed In
4.1.4 and v3.0.5
Workarounds
If the list of
keyAlgorithmspassed toParseEncrypted()/ParseEncryptedJSON()/ParseEncryptedCompact()does not include key wrapping algorithms (those ending inKW), your application is unaffected.If your application uses key wrapping, you can prevalidate to the JWE objects to ensure the
encrypted_keyfield is nonempty. If your application accepts JWE Compact Serialization, apply that validation to the corresponding field of that serialization (the data between the first and second.).Thanks
Thanks to Datadog's Security team for finding this issue.
Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
CVE-2026-39882
overview:
this report shows that the otlp HTTP exporters (traces/metrics/logs) read the full HTTP response body into an in-memory
bytes.Bufferwithout a size cap.this is exploitable for memory exhaustion when the configured collector endpoint is attacker-controlled (or a network attacker can mitm the exporter connection).
severity
HIGH
not claiming: this is a remote dos against every default deployment.
claiming: if the exporter sends traces to an untrusted collector endpoint (or over a network segment where mitm is realistic), that endpoint can crash the process via a large response body.
callsite (pinned):
permalinks (pinned):
root cause:
each exporter client reads
resp.Bodyusingio.Copy(&respData, resp.Body)into abytes.Bufferon both success and error paths, with no upper bound.impact:
a malicious collector can force large transient heap allocations during export (peak memory scales with attacker-chosen response size) and can potentially crash the instrumented process (oom).
affected component:
repro (local-only):
unzip poc.zip -d poc cd poc make canonical resp_bytes=33554432 chunk_delay_ms=0expected output contains:
control (same env, patched target):
unzip poc.zip -d poc cd poc make control resp_bytes=33554432 chunk_delay_ms=0expected control output contains:
attachments: poc.zip (attached)
PR_DESCRIPTION.md
attack_scenario.md
poc.zip
Fixed in: https://github.com/open-telemetry/opentelemetry-go/pull/8108
opentelemetry-go: OTLP HTTP exporters read unbounded HTTP response bodies
CVE-2026-39882 / GHSA-w8rr-5gcm-pp58
More information
Details
overview:
this report shows that the otlp HTTP exporters (traces/metrics/logs) read the full HTTP response body into an in-memory
bytes.Bufferwithout a size cap.this is exploitable for memory exhaustion when the configured collector endpoint is attacker-controlled (or a network attacker can mitm the exporter connection).
severity
HIGH
not claiming: this is a remote dos against every default deployment.
claiming: if the exporter sends traces to an untrusted collector endpoint (or over a network segment where mitm is realistic), that endpoint can crash the process via a large response body.
callsite (pinned):
permalinks (pinned):
root cause:
each exporter client reads
resp.Bodyusingio.Copy(&respData, resp.Body)into abytes.Bufferon both success and error paths, with no upper bound.impact:
a malicious collector can force large transient heap allocations during export (peak memory scales with attacker-chosen response size) and can potentially crash the instrumented process (oom).
affected component:
repro (local-only):
unzip poc.zip -d poc cd poc make canonical resp_bytes=33554432 chunk_delay_ms=0expected output contains:
control (same env, patched target):
unzip poc.zip -d poc cd poc make control resp_bytes=33554432 chunk_delay_ms=0expected control output contains:
attachments: poc.zip (attached)
PR_DESCRIPTION.md
attack_scenario.md
poc.zip
Fixed in: https://github.com/open-telemetry/opentelemetry-go/pull/8108
Severity
CVSS:3.1/AV:A/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:HReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
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
go-jose/go-jose (github.com/go-jose/go-jose/v4)
v4.1.4Compare Source
What's Changed
Fixes Panic in JWE decryption. See GHSA-78h2-9frx-2jm8
Full Changelog: go-jose/go-jose@v4.1.3...v4.1.4
open-telemetry/opentelemetry-go (go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp)
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
Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Renovate Bot.