CVE-2026-81869: 
CBL Mariner 취약성 분석 및 완화

개요

CVE-2026-81869 is a Unicode handling flaw in OpenTelemetry-Go (the Go implementation of OpenTelemetry) that allows an attacker who controls span attribute content to bypass the configured AttributeValueLengthLimit, causing increased per-span memory consumption and weakening denial-of-service protections. The vulnerability affects go.opentelemetry.io/otel/sdk/trace versions >= 1.10.0 and < 1.33.0. It was published on September 16, 2026, and fixed in version 1.33.0. It carries a CVSS v4.0 base score of 5.1 (Medium) (GitHub Advisory, Red Hat CVE).

기술적 세부 사항

The root cause is improper handling of the Unicode replacement character U+FFFD (CWE-176: Improper Handling of Unicode Encoding; CWE-400: Uncontrolled Resource Consumption; CWE-135: Incorrect Calculation of Multi-Byte String Length). In sdk/trace/span.go, the safeTruncateValidUTF8 function uses utf8.DecodeRuneInString to validate characters; however, Go's utf8 package returns utf8.RuneError=true for the valid 3-byte U+FFFD sequence, causing the function to incorrectly treat it as invalid UTF-8 and return the original, untruncated input with ok=false. The fallback path then calls strings.ToValidUTF8(input, ""), which leaves the valid U+FFFD rune unchanged, so the second truncation attempt also fails to enforce the limit. An attacker must be able to inject span attribute values into the instrumented application and the deployment must have AttributeValueLengthLimit configured to a non-negative value (GitHub Advisory, Fix PR #5997).

영향

Successful exploitation allows an attacker to store span attribute values in memory that far exceed the configured AttributeValueLengthLimit — for example, a 27-byte value persisting despite a limit of 5 bytes. The primary impact is increased per-span memory consumption in the instrumented process, which weakens the denial-of-service protection that the attribute length limit is designed to provide. There is no confidentiality or integrity impact; the vulnerability is limited to availability (resource exhaustion) of the affected process (GitHub Advisory).

악용 가능성

A proof-of-concept Go test (safe_truncate_poc_test.go) is publicly available in the GitHub security advisory, demonstrating the bypass with specific reproduction commands and expected output (GitHub Advisory). There is no evidence of in-the-wild exploitation at this time, and no threat actor attribution has been reported. The EPSS score is approximately 0.00126 (very low probability of exploitation in the near term). The vulnerability is not listed in the CISA Known Exploited Vulnerabilities catalog. Exploitation is not automatable and requires the attacker to control or influence span attribute values passed to the traced application.

착취 단계

  1. Identify a vulnerable deployment: Confirm the target application uses go.opentelemetry.io/otel/sdk/trace version >= 1.10.0 and < 1.33.0, and that AttributeValueLengthLimit is configured to a non-negative value in the SDK.
  2. Craft a malicious span attribute value: Construct a string payload containing the Unicode replacement character U+FFFD (3-byte UTF-8 sequence: EF BF BD) followed by additional data, such that the total length exceeds the configured limit. Example: "AAAA" + "\uFFFD" + strings.Repeat("B", 20) (27 bytes total with a limit of 5).
  3. Inject the payload into span attributes: Submit the crafted string as a span attribute via the application's tracing API, or via HTTP headers, query parameters, or other user-controlled inputs that the application records as span attributes.
  4. Trigger the truncation bypass: The safeTruncateValidUTF8 function encounters U+FFFD, misidentifies it as invalid UTF-8 (utf8.RuneError=true), and returns the full input untruncated. The fallback strings.ToValidUTF8 call leaves U+FFFD unchanged, and the second truncation attempt also fails.
  5. Observe the bypass: The span attribute is stored in memory at its full oversized length (e.g., 27 bytes despite a limit of 5), as confirmed by PoC output got_len 27 > limit 5. Repeated injection of such payloads increases per-span memory consumption, degrading the DoS protection of the instrumented process (GitHub Advisory).

타협의 징후

  • Application Behavior: Unexpectedly high memory consumption in Go processes instrumented with OpenTelemetry SDK versions 1.10.0–1.32.x, particularly when AttributeValueLengthLimit is configured.
  • Span Attribute Content: Span attributes containing the Unicode replacement character U+FFFD (EF BF BD in hex) with values exceeding the configured AttributeValueLengthLimit.
  • Logs/Telemetry: Exported trace data showing span attribute values longer than the configured limit, especially those containing U+FFFD sequences.
  • Process Metrics: Gradual or sudden increase in heap memory usage of the instrumented process without a corresponding increase in legitimate workload, potentially indicating resource exhaustion attempts.

완화 및 해결 방법

Upgrade go.opentelemetry.io/otel/sdk/trace to version 1.33.0 or later, which replaces the flawed safeTruncate/safeTruncateValidUTF8 logic with a corrected truncate function that properly handles U+FFFD (GitHub Release v1.33.0, Fix Commit). If immediate patching is not possible, implement input validation or filtering on span attributes to prevent the inclusion of U+FFFD (\uFFFD) in attribute values before they are passed to the SDK. Alternatively, consider reducing the AttributeValueLengthLimit to a more conservative value to limit the potential memory impact of any bypass.

커뮤니티 반응

The vulnerability was reported by pellared and analyzed by MrAlias (Tyler Yahn), both OpenTelemetry-Go contributors, who also authored the fix in PR #5997 (Fix PR #5997). The underlying bug was originally filed as a correctness issue (span attributes truncated by bytes rather than characters per the OTel specification) before its security implications were identified. Red Hat tracked the issue via Bugzilla (Red Hat CVE). No significant broader media coverage or social media discussion has been observed.

추가 자료

리눅스 배포판 수정 현황

주요 리눅스 배포판과 그 릴리스 전반에 걸친 가용성을 수정하세요.

Debian

수정됨

bookworm

golang-opentelemetry-otel

영향을 받은 사람들

sid

golang-opentelemetry-otel: 1.43.0-1

수정됨

trixie

golang-opentelemetry-otel

영향을 받은 사람들

Ubuntu

알 수 없음

devel

golang-opentelemetry-otel

알 수 없음

jammy

golang-opentelemetry-otel

알 수 없음

jammy (esm-apps)

golang-opentelemetry-otel

알 수 없음

noble

golang-opentelemetry-otel

알 수 없음

noble (esm-apps)

golang-opentelemetry-otel

알 수 없음

resolute

golang-opentelemetry-otel

알 수 없음

resolute (esm-apps)

golang-opentelemetry-otel

알 수 없음

근원: 이 보고서는 AI를 사용하여 생성되었습니다.

관련 CBL Mariner 취약점:

CVE ID

심각도

점수

기술

구성 요소 이름

CISA KEV 익스플로잇

수정 사항이 있습니다.

게시된 날짜

CVE-2026-84445HIGH8.7
  • cAdvisor logocAdvisor
  • mattermost-fips-11.6
아니요예Sep 14, 2026
CVE-2026-89157HIGH7.4
  • MariaDB Server logoMariaDB Server
  • libpcre2-8-0
아니요예Sep 11, 2026
CVE-2026-89160MEDIUM6.5
  • MariaDB Server logoMariaDB Server
  • seal-pcre2
아니요예Sep 11, 2026
CVE-2026-89158MEDIUM6.5
  • MariaDB Server logoMariaDB Server
  • mariadb:11.8::mariadb-server-utils
아니요예Sep 11, 2026
CVE-2026-81869MEDIUM5.1
  • CBL Mariner logoCBL Mariner
  • kube-vip-cloud-provider
아니요예Sep 16, 2026

무료 취약성 평가

클라우드 보안 태세를 벤치마킹합니다

9개의 보안 도메인에서 클라우드 보안 관행을 평가하여 위험 수준을 벤치마킹하고 방어의 허점을 식별합니다.

평가 요청

추가 Wiz 리소스

맞춤형 데모 받기

맞춤형 데모 신청하기

"내가 본 최고의 사용자 경험은 클라우드 워크로드에 대한 완전한 가시성을 제공합니다."
데이비드 에슬릭최고정보책임자(CISO)
"Wiz는 클라우드 환경에서 무슨 일이 일어나고 있는지 볼 수 있는 단일 창을 제공합니다."
아담 플레처최고 보안 책임자(CSO)
"우리는 Wiz가 무언가를 중요한 것으로 식별하면 실제로 중요하다는 것을 알고 있습니다."
그렉 포니아토프스키위협 및 취약성 관리 책임자