Conversation
…protocol to 1.15.3 [security]
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #746 +/- ##
=======================================
Coverage 93.47% 93.47%
=======================================
Files 68 68
Lines 2956 2956
Branches 351 351
=======================================
Hits 2763 2763
Misses 135 135
Partials 58 58 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
askpt
approved these changes
Apr 24, 2026
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.
This PR contains the following updates:
1.15.2→1.15.3OpenTelemetry dotnet: Unbounded
grpc-status-details-binparsing in OTLP/gRPC retry handlingCVE-2026-40891 / GHSA-mr8r-92fq-pj8p
More information
Details
Summary
When exporting telemetry over gRPC using the OpenTelemetry Protocol (OTLP), the exporter may parse a server-provided
grpc-status-details-bintrailer during retry handling. Prior to the fix, a malformed trailer could encode an extremely large length-delimited protobuf field which was used directly for allocation, allowing excessive memory allocation and potential denial of service (DoS).Details
#5980 introduced a retry path that parses
grpc-status-details-binto extract gRPC retry delay information for retryable responses.On that path:
OtlpGrpcExportClientcapturesgrpc-status-details-binfrom retryable status responses (ResourceExhausted/Unavailable).OtlpRetryinvokesGrpcStatusDeserializer.TryGetGrpcRetryDelayusing this untrusted trailer value.GrpcStatusDeserializer.DecodeBytesdecoded a protobuf varint length and allocatednew byte[length]without validating the bounds against the remaining payload size.A malicious or compromised collector (or a MitM in weakly-protected deployments) could return a crafted
grpc-status-details-binpayload that forces oversized allocation and memory exhaustion in the instrumented process.Impact
If an OTLP/gRPC endpoint is attacker-controlled (or traffic is intercepted), a crafted retryable response can trigger large allocations during trailer parsing, which may exhaust memory and cause process instability/crash (availability impact / DoS).
Mitigation
The application's configured back-end/collector endpoint needs to behave maliciously. If the collector/back-end is a well-behaved implementation response bodies should not be excessively large if a request error occurs.
Workarounds
None known.
Remediation
#7064 updates
GrpcStatusDeserializerto validate decoded length-delimited field sizes before allocation by ensuring the requested length is sane and does not exceed the remaining payload.This causes malformed or truncated
grpc-status-details-binpayloads to fail safely instead of attempting unbounded allocation.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 the GitHub Advisory Database (CC-BY 4.0).
Release Notes
open-telemetry/opentelemetry-dotnet (OpenTelemetry.Exporter.OpenTelemetryProtocol)
v1.15.3Release details: 1.15.3
tracestateparsing to reject keys that do notbegin with a lowercase letter, including keys beginning with digits, to
align with the W3C Trace Context specification.
Disk retry now requires
OTEL_DOTNET_EXPERIMENTAL_OTLP_DISK_RETRY_DIRECTORY_PATHwhen
OTEL_DOTNET_EXPERIMENTAL_OTLP_RETRY=diskis configured.OtlpLogExporternow usesIHttpClientFactoryon .NET 8+.OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMITnot being applied.BaggagePropagatorto trim optional whitespace (OWS) around=separators when parsing the
baggageheader.BaggagePropagatorto strip baggage properties from values whenparsing the
baggageheader.LogRecord.LogLevelto preserveLogLevel.None.OTEL_TRACES_SAMPLER_ARGhandling for out-of-range values.traces storage directory.
serialization.
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.