Skip to content

Update module go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc to v1.45.0 [SECURITY] (main) - #1883

Merged
robnester-rh merged 1 commit into
mainfrom
renovate/main-go-go.opentelemetry.io-otel-exporters-otlp-otlptrace-otlptracegrpc-vulnerability
Oct 27, 2026
Merged

robnester-rh merged 1 commit into
mainfrom
renovate/main-go-go.opentelemetry.io-otel-exporters-otlp-otlptrace-otlptracegrpc-vulnerability

Conversation

@renovate

@renovate renovate Bot commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.43.0 → v1.45.0 age adoption passing confidence

OpenTelemetry-Go: Exporter config logging may leak endpoint URLs in info logs

CVE-2026-81870 / GHSA-8wmf-6v46-5gfg

More information

Details

Summary

OpenTelemetry Go versions 1.5.0 through 1.44.0 can include trace exporter endpoint configuration in an internal diagnostic log emitted when an SDK TracerProvider is created. The default OpenTelemetry logger does not emit this event. Exposure requires an application to install a logger that enables OpenTelemetry's internal Info-level diagnostics and for someone other than the intended audience to have access to those logs.

The logged configuration can disclose the address of the trace collector and whether the OTLP/HTTP connection is configured as insecure. The Zipkin exporter logs its complete collector URL, so credentials in URL userinfo or tokens in the query string are also disclosed if an application embeds them there. OTLP authentication headers, TLS key material, and exported span data are not included in this log.

Exporter MarshalLog implementations that caused this configuration to be included in internal logs were introduced by a1fff3c.

Details

When sdk/trace.NewTracerProvider constructs a provider, it records a TracerProvider created internal Info event containing the provider configuration. In affected versions, the configuration's MarshalLog methods recursively include:

  1. the provider's span processors;
  2. each processor's span exporter; and
  3. for the OTLP trace exporter, its client configuration.

This causes the following values to be present in the event:

  • OTLP trace gRPC: the configured endpoint;
  • OTLP trace HTTP: the configured endpoint and the Insecure flag; and
  • Zipkin: the complete collector URL.

OpenTelemetry Go does not emit this event with its default logger, which only emits errors. An application must explicitly configure a sufficiently verbose logger with otel.SetLogger. The required logr verbosity is version-dependent:

  • versions 1.5.0 through 1.14.x use V(1) for this Info event; and
  • versions 1.15.0 through 1.44.0 use V(4).

OTLP header configuration is not part of the marshaled object, so credentials supplied with WithHeaders or the corresponding environment variables are not exposed. The documented OTLP WithEndpoint input is a collector address rather than a credential-bearing URL. The higher-risk case is therefore the Zipkin collector URL, which is retained and logged in full, or an application passing sensitive data in an OTLP endpoint outside the documented format.

Proof of concept

The following program demonstrates the behavior with OpenTelemetry Go 1.44.0. It deliberately places credentials and a token in the Zipkin collector URL and enables internal Info logging:

package main

import (
	"bytes"
	"context"
	"fmt"

	"github.com/go-logr/logr/funcr"
	"go.opentelemetry.io/otel"
	"go.opentelemetry.io/otel/exporters/zipkin"
	sdktrace "go.opentelemetry.io/otel/sdk/trace"
)

func main() {
	var logs bytes.Buffer
	otel.SetLogger(funcr.New(func(_, args string) {
		_, _ = logs.WriteString(args)
	}, funcr.Options{Verbosity: 4}))

	exporter, err := zipkin.New(
		"http://user:pass@zipkin.internal:9411/api/v2/spans?token=secret",
	)
	if err != nil {
		panic(err)
	}

	tp := sdktrace.NewTracerProvider(sdktrace.WithBatcher(exporter))
	_ = tp.Shutdown(context.Background())

	fmt.Println(logs.String())
}

The TracerProvider created event contains:

http://user:pass@zipkin.internal:9411/api/v2/spans?token=secret

For versions before 1.15.0, set funcr.Options{Verbosity: 1} instead.

Impact

This is a conditional disclosure through application logs. Affected applications must enable verbose OpenTelemetry internal diagnostics and configure a trace exporter containing information they do not intend to expose to readers of those logs. In that configuration, a person or system with log access can learn the trace collector address and internal network topology. If credentials or tokens are embedded directly in a Zipkin collector URL, those values can also be recovered from the logs.

There is no exposure with the default OpenTelemetry logger, and the vulnerable log is generated from local application configuration rather than remotely supplied span data. OTLP authentication headers, certificate or private-key contents, and telemetry payloads are not logged by this path.

Remediation

Upgrade the affected OpenTelemetry Go modules to version 1.45.0 or later. The fix in 3a1412d stops recursively marshaling exporter and client configuration and records their types instead.

If an immediate upgrade is not possible:

  • keep OpenTelemetry internal logging below the Info verbosity described above;
  • do not embed credentials or tokens in exporter endpoint URLs; use authentication headers or another supported credential mechanism; and
  • restrict access to existing logs and rotate any credentials that may already have been recorded.

Severity

  • CVSS Score: 2.0 / 10 (Low)
  • Vector String: CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Release Notes

open-telemetry/opentelemetry-go (go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc)

v1.45.0: /v0.67.0/v0.21.0/v0.0.18

Compare Source

Overview

Added
  • Add experimental observability metrics to BatchProcessor in go.opentelemetry.io/otel/sdk/log. (#​7124)
  • Add the experimental WithUnsafeAttributes no-copy attribute option to go.opentelemetry.io/otel/metric/x for future performance improvements. This API is a work in progress. (#​8251)
  • Add Map and MapValue functions for the new MAP attribute type in go.opentelemetry.io/otel/attribute. (#​8445)
  • Support MAP attributes in go.opentelemetry.io/otel/exporters/otlp/otlptrace. (#​8453)
  • Support MAP attributes in go.opentelemetry.io/otel/exporters/otlp/otlplog. (#​8453)
  • Support MAP attributes in go.opentelemetry.io/otel/exporters/otlp/otlpmetric. (#​8453)
  • Support MAP attributes in go.opentelemetry.io/otel/exporters/zipkin. (#​8453)
  • Apply AttributeValueLengthLimit recursively to values contained in attribute.MAP attributes in go.opentelemetry.io/otel/sdk/trace. (#​8454)
  • Remove duplicate keys from attribute.MAP values in go.opentelemetry.io/otel/sdk/resource using last-value-wins semantics. (#​8471)
  • Remove duplicate keys by default from attribute.MAP values in instrumentation scope attributes in go.opentelemetry.io/otel/sdk/log using last-value-wins semantics. (#​8471)
  • Remove duplicate keys by default from attribute.MAP values in span, event, link, and instrumentation scope attributes in go.opentelemetry.io/otel/sdk/trace using last-value-wins semantics. (#​8471)
  • Remove duplicate keys by default from attribute.MAP values in measurement and instrumentation scope attributes in go.opentelemetry.io/otel/sdk/metric using last-value-wins semantics. (#​8471)
  • Extend WithAllowKeyDuplication in go.opentelemetry.io/otel/sdk/log to disable duplicate-key removal in attribute.MAP values for instrumentation scope attributes. (#​8471)
  • Add the go.opentelemetry.io/otel/semconv/v1.42.0 package.
    The package contains semantic conventions from the v1.42.0 version of the OpenTelemetry Semantic Conventions.
    See the migration documentation for information on how to upgrade from go.opentelemetry.io/otel/semconv/v1.41.0. (#​8484)
  • Add WithoutPanicRecording as a TracerProviderOption in go.opentelemetry.io/otel/sdk/trace to disable exception event recording for panics. (#​8532)
  • Add the go.opentelemetry.io/otel/semconv/v1.43.0 package.
    The package contains semantic conventions from the v1.43.0 version of the OpenTelemetry Semantic Conventions.
    See the migration documentation for information on how to upgrade from go.opentelemetry.io/otel/semconv/v1.42.0. (#​8628)
Changed
  • HistogramReservoir in go.opentelemetry.io/otel/sdk/metric/exemplar now uses a time-unbiased sampling algorithm for exemplars. (#​8306)
  • ⚠️ Breaking Change: Use go.opentelemetry.io/otel/attribute.Value and go.opentelemetry.io/otel/attribute.KeyValue for log bodies and attributes in go.opentelemetry.io/otel/log, go.opentelemetry.io/otel/log/logtest, go.opentelemetry.io/otel/sdk/log, and go.opentelemetry.io/otel/sdk/log/logtest. (#​8490)
  • Encode log bodies and attributes as go.opentelemetry.io/otel/attribute.Value JSON in go.opentelemetry.io/otel/exporters/stdout/stdoutlog. (#​8490)
  • Improve the performance of hashing BOOLSLICE, INT64SLICE, FLOAT64SLICE, and STRINGSLICE attribute values by avoiding reflection for short slices in go.opentelemetry.io/otel/attribute. (#​8511)
  • ⚠️ Breaking Change: WithEndpointURL in go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp no longer appends the default signal path when an endpoint URL has no path, making the behavior consistent with go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp and with setting the endpoint through OTEL_EXPORTER_OTLP_METRICS_ENDPOINT. If the URL has no path component, the root path (/) is used. Use WithEndpointURL(url.JoinPath(endpoint, "/v1/metrics")) to preserve the previous behavior. (#​8538)
  • ⚠️ Breaking Change: WithEndpointURL in go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp no longer appends the default signal path when an endpoint URL has no path, making the behavior consistent with go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp and with setting the endpoint through OTEL_EXPORTER_OTLP_TRACES_ENDPOINT. If the URL has no path component, the root path (/) is used. Use WithEndpointURL(url.JoinPath(endpoint, "/v1/traces")) to preserve the previous behavior. (#​8538)
Deprecated
  • Deprecate WithExportBufferSize in go.opentelemetry.io/otel/sdk/log. The option remains available for source compatibility but no longer affects behavior; BatchProcessor no longer maintains a separate export-request buffer. (#​8620)
Removed
  • ⚠️ Breaking Change: Remove Kind, Value, KeyValue, their constructors, and attribute conversion helpers from go.opentelemetry.io/otel/log. (#​8490)
  • ⚠️ Breaking Change: Remove the AttributeValueLengthLimit and AttributeCountLimit fields from RecordFactory in go.opentelemetry.io/otel/sdk/log/logtest; records produced by the factory now keep attribute limits disabled so test code can append exact attributes. (#​8556)
Fixed
  • Apply TLS certificates configured through environment variables to gRPC connections in go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc.
  • Prevent panics in go.opentelemetry.io/otel/bridge/opentracing when OpenTracing baggage is propagated concurrently with Span.SetBaggageItem.
  • Fix an off-by-one error in FixedSizeReservoir in go.opentelemetry.io/otel/sdk/metric/exemplar that prevented the first exemplar from being sampled after the reservoir was filled. (#​8309)
  • Interpret HTTP Retry-After header values as seconds instead of nanoseconds when retrying OTLP HTTP exports in go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp, go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp, and go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp. (#​8383)
  • Fix a memory leak in the Reservoir implementation in go.opentelemetry.io/otel/sdk/metric/exemplar, where storing the full context.Context pinned large objects such as gRPC transport buffers. (#​8389)
  • Prevent a non-empty attribute set whose computed hash is zero from collapsing to an empty set in go.opentelemetry.io/otel/attribute. (#​8402)
  • Fix histogram data point reuse in go.opentelemetry.io/otel/sdk/metric aggregation to avoid leaking stale sum, minimum, and maximum values when they are disabled in subsequent collections. (#​8403)
  • Avoid preallocating scope attributes when they are disabled in go.opentelemetry.io/otel/exporters/prometheus. (#​8404)
  • Support HTTP-date values in the HTTP Retry-After header when retrying OTLP HTTP exports in go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp, go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp, and go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp. (#​8417)
  • Reduce histogram heap allocations by reusing BucketCounts and Exemplars slices across Collect cycles in the cumulative histogram aggregation in go.opentelemetry.io/otel/sdk/metric. (#​8428)
  • Fix go.opentelemetry.io/otel/exporters/stdout/stdouttrace self-observability to record error.type on the operation-duration histogram when the exportedSpans metric is disabled. (#​8432)
  • Stop including trace exporter endpoint configuration in internal logs from go.opentelemetry.io/otel/sdk/trace, go.opentelemetry.io/otel/exporters/otlp/otlptrace, go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc, go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp, and go.opentelemetry.io/otel/exporters/zipkin. (#​8438)
  • Fix invalid error formatting for out-of-range JSON code values in go.opentelemetry.io/otel/codes. (#​8497)
  • Clarify in go.opentelemetry.io/otel/log that Logger.Enabled should be checked for every log emission because its result may change over time. (#​8565)
  • Preserve user-provided exception attributes while independently deriving missing exception message and type attributes in go.opentelemetry.io/otel/sdk/log. (#​8566)
  • Make WithAttributeCountLimit(0) and OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT=0 discard all log record attributes in go.opentelemetry.io/otel/sdk/log. (#​8570)
  • Clarify that the Record methods of Float64Histogram and Int64Histogram in go.opentelemetry.io/otel/metric expect non-negative values. (#​8574)
  • Clarify in go.opentelemetry.io/otel/log that LoggerProvider implementations should retain an empty Logger name instead of replacing it with a default. (#​8587)
  • Ensure that the built-in processors in go.opentelemetry.io/otel/sdk/log call exporter ForceFlush during Shutdown. (#​8599)
  • Prevent panics in go.opentelemetry.io/otel/bridge/opentracing when OpenTracing baggage is propagated concurrently with Span.SetBaggageItem. (GHSA-42cj-99w8-cp2p)
  • Prevent processor operations in go.opentelemetry.io/otel/sdk/log from overlapping with processor shutdown or running after LoggerProvider shutdown. (#​8608)
  • Prevent BatchProcessor in go.opentelemetry.io/otel/sdk/log from busy-spinning under exporter backpressure and serialize dequeue, export, force-flush, and shutdown work in one worker. (#​8620)
  • Make BatchProcessor in go.opentelemetry.io/otel/sdk/log return errors encountered while draining records during ForceFlush and Shutdown, while continuing to attempt later batches as long as the request context remains valid. (#​8620)
  • Keep the default BatchProcessor maximum export batch size in go.opentelemetry.io/otel/sdk/log at or below the configured maximum queue size. (#​8620)

What's Changed

[!IMPORTANT]
✂ PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • 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.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot requested a review from a team as a code owner October 13, 2026 14:20
@coderabbitai

coderabbitai Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

No actionable comments were generated in the recent review.

ℹ️ Recent review info
⚙️ Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Enterprise
  • Run ID: 12ed7b17-34f6-429c-a973-fa1a4045a8fc
📥 Commits

Reviewing files that changed from the base of the PR and between dc93342 and aa0cfd6.

⛔ Files ignored due to path filters: 2
  • acceptance/go.sum is excluded by !**/*.sum
  • go.sum is excluded by !**/*.sum
📒 Files selected for processing: 1
  • go.mod

Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 10 remain after this review.

Walkthrough

The root and acceptance Go module manifests update indirect dependency versions. The OTLP trace gRPC exporter is updated in both manifests. The root manifest also updates filippo.io/edwards25519 and go.step.sm/crypto.

Changes: Go dependency updates

Layer / File(s) Summary
Update indirect dependency versions
go.mod, acceptance/go.mod
The root manifest updates filippo.io/edwards25519 from v1.1.1 to v1.2.0, otlptracegrpc from v1.43.0 to v1.45.0, and go.step.sm/crypto from v0.75.0 to v0.81.0. The acceptance manifest updates otlptracegrpc from v1.43.0 to v1.45.0.

Priority: Normal

Estimated code review effort: 1 (Trivial) | ~5 minutes

Change: Other

Suggested reviewers: robnester-rh, joejstuart

Merge Risk: Minimal · previous review aa0cf

The dependency update consistently applies the reported logging fix without an identified merge-blocking issue.

Pre-merge checks: Passed 5
Check name Status Explanation
Title check Passed The title clearly identifies the updated OpenTelemetry dependency, target version, and security purpose.
Description check Passed The description explains the dependency update and its security rationale, with detailed advisory and release references. It does not use the required What, Why, and Tickets headings, and no ticket is…
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
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.
Full details: Description check

Explanation

The description explains the dependency update and its security rationale, with detailed advisory and release references. It does not use the required What, Why, and Tickets headings, and no ticket is provided, but the content is mostly complete.

Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

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

@codecov

codecov Bot commented Oct 13, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

Flag Coverage Δ
unit-tests 100.00% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@fullsend-ai-review fullsend-ai-review Bot added the risk/moderate PR risk: moderate label Oct 13, 2026
@fullsend-ai-review

fullsend-ai-review Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

<!-- fullsend:risk-assessment -->
Risk Assessment: moderate (2/5)

Details

Bot-authored XS security dependency bump across go.mod and go.sum in two modules with no protected paths, no CI changes, and no sensitive file touches; elevated DEPENDENCY_FILES and TEST_FILE_RATIO Tier 1 scores are expected artifacts of a dependency-only change and do not represent genuine risk, yielding a moderate composite score of 2.

Previous run

<!-- fullsend:risk-assessment -->
Risk Assessment: moderate (2/5)

Details

Routine Renovate security bump (otlptracegrpc v1.43.0 to v1.45.0/CVE-2026-81870) touching only 4 go.mod/go.sum files; Tier 1 sub-score 1.63 driven by dependency file count offset by bot authorship and zero protected paths; Tier 2 sub-score 1.86 reflects expected automated churn on dependency manifests; composite 0.62x1.63+0.38x1.86=1.72 rounds to 2, anchored to prior moderate score with no changed signals.

Previous run (2)

<!-- fullsend:risk-assessment -->
Risk Assessment: moderate (2/5)

Details

Routine Renovate security dependency bump (otlptracegrpc) across 4 go.mod/go.sum files; Tier 1 signals unchanged from prior assessment (DEPENDENCY_FILES_CHANGED=5 offset by bot authorship and small blast radius → sub-score 1.6), Tier 2 shows moderate automated churn consistent with prior (sub-score 2.3), composite 0.62×1.6 + 0.38×2.3 ≈ 1.9 rounded to 2, preserving the prior moderate score.

Previous run (3)

Risk Assessment: moderate (2/5)

Details

Routine Renovate security dependency bump (otlptracegrpc v1.45.0) across 4 go.mod/go.sum files; DEPENDENCY_FILES_CHANGED drives Tier 1 to 1.5, git history shows high but automated churn (Tier 2 = 2), yielding a composite of ~1.7 rounded to 2 (moderate), consistent with prior assessment.

Previous run (4)

Risk Assessment: moderate (2/5)

Details

Routine Renovate security dependency bump (CVE-2026-81870) by bot across 4 go.mod/go.sum files with no protected or security-sensitive paths directly modified; the multiple dependency files changed (≥2 → Tier 1 score 5 for that dimension) combined with mildly aging code (31-90 day stability) push the composite to moderate (2) rather than low.

@fullsend-ai-review

fullsend-ai-review Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Looks good to me

<!-- fullsend:review-findings-v2:eyJ2ZXJzaW9uIjoyLCJmaW5kaW5ncyI6W119 -->

Previous run

Looks good to me

<!-- fullsend:review-findings-v2:eyJ2ZXJzaW9uIjoyLCJmaW5kaW5ncyI6W119 -->

Previous run (2)

Looks good to me


Labels: PR modifies Go module dependency files (go.mod, go.sum)

<!-- fullsend:review-findings-v2:eyJ2ZXJzaW9uIjoyLCJmaW5kaW5ncyI6W119 -->

Previous run (3)

Looks good to me

<!-- fullsend:review-findings-v2:eyJ2ZXJzaW9uIjoyLCJmaW5kaW5ncyI6W119 -->

Previous run (4)

Looks good to me

<!-- fullsend:review-findings-v2:eyJ2ZXJzaW9uIjoyLCJmaW5kaW5ncyI6W119 -->

fullsend-ai-review[bot]

This comment was marked as outdated.

@fullsend-ai-review fullsend-ai-review Bot added the ready-for-merge All reviewers approved — ready to merge label Oct 13, 2026
@renovate
renovate Bot force-pushed the renovate/main-go-go.opentelemetry.io-otel-exporters-otlp-otlptrace-otlptracegrpc-vulnerability branch from 8249f46 to 90147d8 Compare October 20, 2026 19:40
@github-actions github-actions Bot added size: S and removed size: L labels Oct 20, 2026
fullsend-ai-review[bot]

This comment was marked as outdated.

@fullsend-ai-review
fullsend-ai-review Bot dismissed their stale review October 20, 2026 19:48

Superseded by updated review

Acepresso
Acepresso previously approved these changes Oct 21, 2026
jsmid1
jsmid1 previously approved these changes Oct 22, 2026

@jsmid1 jsmid1 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@renovate
renovate Bot dismissed stale reviews from jsmid1 and Acepresso via dc93342 October 22, 2026 09:19
@renovate
renovate Bot force-pushed the renovate/main-go-go.opentelemetry.io-otel-exporters-otlp-otlptrace-otlptracegrpc-vulnerability branch from 90147d8 to dc93342 Compare October 22, 2026 09:19
@github-actions github-actions Bot added size: XS and removed size: S labels Oct 22, 2026
fullsend-ai-review[bot]

This comment was marked as outdated.

@fullsend-ai-review
fullsend-ai-review Bot dismissed their stale review October 22, 2026 09:30

Superseded by updated review

@fullsend-ai-review fullsend-ai-review Bot added dependencies Pull requests that update a dependency file go Pull requests that update Go code labels Oct 22, 2026
@renovate
renovate Bot force-pushed the renovate/main-go-go.opentelemetry.io-otel-exporters-otlp-otlptrace-otlptracegrpc-vulnerability branch from dc93342 to aa0cfd6 Compare October 23, 2026 15:45
@renovate

renovate Bot commented Oct 23, 2026

Copy link
Copy Markdown
Contributor Author

ℹ️ Artifact update notice

File name: go.mod

In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):

  • 2 additional dependencies were updated

Details:

Package Change
filippo.io/edwards25519 v1.1.1 -> v1.2.0
go.step.sm/crypto v0.75.0 -> v0.81.0

fullsend-ai-review[bot]

This comment was marked as outdated.

@fullsend-ai-review
fullsend-ai-review Bot dismissed their stale review October 23, 2026 15:58

Superseded by updated review

@Acepresso Acepresso left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@renovate
renovate Bot force-pushed the renovate/main-go-go.opentelemetry.io-otel-exporters-otlp-otlptrace-otlptracegrpc-vulnerability branch from aa0cfd6 to 5344fe5 Compare October 26, 2026 22:17
@fullsend-ai-review
fullsend-ai-review Bot dismissed their stale review October 26, 2026 22:28

Superseded by updated review

@robnester-rh
robnester-rh merged commit 81265ee into main Oct 27, 2026
40 checks passed
@fullsend-ai-retro

Copy link
Copy Markdown

Retro: PR #1883 — Renovate security dependency bump (otlptracegrpc v1.43.0 → v1.45.0)

Timeline

  • Oct 13: Renovate opened PR Update module go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc to v1.45.0 [SECURITY] (main) #1883 to bump otlptracegrpc for CVE-2026-81870 (CVSS 2.0/Low). CodeRabbit, Codecov, and fullsend-ai-review all ran within minutes. Review agent: LGTM (zero findings). Risk: moderate 2/5.
  • Oct 13–26: Renovate rebased the PR 4 more times as main advanced. Each rebase dismissed all prior reviews and triggered a fresh fullsend-ai-review run (5 total runs, each LGTM). Two human approvals (Acepresso on Oct 21, jsmid1 on Oct 22) were dismissed by subsequent rebases.
  • Oct 23: Renovate also pulled in 2 transitive dependency updates (filippo.io/edwards25519, go.step.sm/crypto).
  • Oct 26: Final rebase (SHA 5344fe5). Acepresso approved. fullsend-ai-review approved.
  • Oct 27: robnester-rh approved and merged.

Result: 14 days from creation to merge for an XS (8+/8−, 4 files) security dependency bump with zero findings from any reviewer.

Workflow quality

  • Review quality: The review agent correctly identified no issues on all 5 runs. This is the expected outcome for a mechanical dependency version bump touching only go.mod and go.sum files.
  • Token cost: 5 review agent runs + 5 risk assessment runs for a PR that needed at most 1 run. Estimated cost: ~$7.50–$10 in redundant runs.
  • Time to resolution: 14 days is excessive for this risk level. The delay was caused by repeated Renovate rebases dismissing human approvals, forcing re-review cycles.
  • Autonomy: The review agent consistently matched human judgment (LGTM, no findings). For this PR class (bot-authored, dependency-only, CI-passing), the review agent provides minimal incremental value.

Judge scores

# Score Candidate Disposition
A 2/5 Renovate rebase frequency causes human approval churn summary-only — repo-level Renovate config preference, not an agent improvement
B 2/5 Review agent should detect unchanged diffs and short-circuit summary-only — platform optimization, substantially addressed by #1931
C 1/5 Risk assessment over-rates dependency-only PRs (moderate for trivial bump) summary-only — informational signal, does not block anything

Evidence for existing issues

  • #1931 (Skip review for Renovate bot PRs): This PR is direct evidence — 5 review runs, all LGTM, zero findings, ~$7.50–10 wasted. The review agent provided no incremental value beyond the human LGTM.
  • #1924 (Group OTel modules in Renovate): PR Update module go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc to v1.45.0 [SECURITY] (main) #1883 is one of the sibling PRs documented in that issue. The per-module fan-out multiplied cost across branches.
  • #1850 (CODEOWNERS approval enforcement): Not directly applicable to this PR (it was not auto-merged), but the 14-day latency partly reflects the approval churn that stronger governance could mitigate.

No new proposals filed — all improvement opportunities are already tracked in the issues above.

@renovate
renovate Bot deleted the renovate/main-go-go.opentelemetry.io-otel-exporters-otlp-otlptrace-otlptracegrpc-vulnerability branch October 27, 2026 15:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file go Pull requests that update Go code main ready-for-merge All reviewers approved — ready to merge renovate risk/moderate PR risk: moderate size: XS

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants