---
id: "CVE-2026-81872"
kind: "vulnerability"
aliases: ["CVE-2026-81872", "GHSA-hjf4-fphr-2h65", "GO-2026-6615"]
title: "OpenTelemetry-Go: BatchProcessor can busy-spin when export buffer is full in go.opentelemetry.io/otel/sdk/log"
severity: "medium"
cvss: 6.3
epss: 0.00383
exploited: false
status: "open"
category: "package"
products: [{"name": "go.opentelemetry.io/otel/sdk/log", "fixed": ["0.21.0"], "affected": "< 0.21.0", "ecosystem": "go"}]
ecosystems: ["go"]
tags: ["go", "opentelemetry", "package", "services"]
not_affected_if: ["not-using-otel-log-sdk"]
published_at: "2026-09-16T21:17:22+00:00"
first_seen_at: "2026-10-23T19:13:08+00:00"
updated_at: "2026-10-23T21:46:11+00:00"
sources: [{"source": "govuln", "url": "https://pkg.go.dev/vuln/GO-2026-6615", "first_seen_at": "2026-10-23T19:13:08+00:00"}, {"source": "epss", "url": "https://api.first.org/data/v1/epss?cve=CVE-2026-81872", "first_seen_at": "2026-10-23T19:13:43+00:00"}, {"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-81872", "first_seen_at": "2026-10-23T19:35:23+00:00"}]
---

# OpenTelemetry-Go: BatchProcessor can busy-spin when export buffer is full in go.opentelemetry.io/otel/sdk/log

The OpenTelemetry Go log SDK's batch processor can enter a tight CPU loop when its export buffer is full and the exporter is backpressured. An attacker who can make the application emit many logs can exhaust CPU and degrade or deny service in the process.

_Summary, check and fix written by a model from the sources; labelled as such._

## Affected

- go:go.opentelemetry.io/otel/sdk/log affected < 0.21.0 fixed 0.21.0

## How to check

Run `go list -m go.opentelemetry.io/otel/sdk/log` in the service module and check whether the version is below 0.21.0.

## Fix

Upgrade go.opentelemetry.io/otel/sdk/log to 0.21.0 or later.

## Timeline

- 2026-10-23T19:13:08+00:00 govuln https://pkg.go.dev/vuln/GO-2026-6615
- 2026-10-23T19:13:43+00:00 epss https://api.first.org/data/v1/epss?cve=CVE-2026-81872
- 2026-10-23T19:35:23+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-81872

## From the sources

OpenTelemetry-Go is the Go implementation of OpenTelemetry. Prior to version 0.21.0, the go.opentelemetry.io/otel/sdk/log BatchingProcessor can enter a tight CPU loop when attacker-driven log emission fills its asynchronous export buffer while the exporter is backpressured. NewBatchingProcessor wraps the exporter with newBufferExporter(exporter, 1), and the poll loop calls queue.TryDequeue and bufferExporter.EnqueueExport before immediately signaling pollTrigger whenever the queue remains at or above batchSize. Because a failed nonblocking EnqueueExport leaves the queue length unchanged, the processor repeatedly retries without waiting for its ticker, exhausting CPU and degrading or denying service in the embedding process. This issue is fixed in version 0.21.0.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
