CVE-2026-81869
ŚrednieCVSS 5.1Streszczenie
OpenTelemetry-Go to implementacja OpenTelemetry w Go. Od wersji 1.10.0 do 1.33.0 ścieżka obcinania atrybutów w sdk/trace/span.go może nie egzekwować AttributeValueLengthLimit dla atrybutów typu string i string-slice zawierających prawidłowy znak zastępczy Unicode U+FFFD. safeTruncateValidUTF8 traktuje prawidłowy znak zastępczy jako nieprawidłowy UTF-8 i zwraca oryginalne dane wejściowe, podczas gdy strings.ToValidUTF8 pozostawia ten prawidłowy znak niezmieniony, więc druga próba safeTruncate może również zwrócić zbyt dużą wartość. Atakujący kontrolujący zawartość atrybutów span może zachować wartości dłuższe niż skonfigurowany limit, zwiększając zużycie pamięci na span i osłabiając ochronę przed atakami typu denial-of-service w procesie instrumentowanym.
Ocena ryzyka
Zwiększone zużycie pamięci może prowadzić do degradacji wydajności lub odmowy usługi w procesie instrumentowanym, co może zakłócić działanie aplikacji.
Rekomendacja
Zaktualizuj OpenTelemetry-Go do wersji 1.33.0 lub nowszej, aby naprawić problem z egzekwowaniem limitu długości atrybutów.
Inne podatności w OpenTelemetry-Go
Zobacz wszystkie- CVE-2026-81872Średnie
OpenTelemetry-Go to implementacja OpenTelemetry w Go. Przed wersją 0.21.0 pakiet go.opentelemetry.io/otel/sdk/log BatchingProcessor może wejść w ciasną pętlę CPU, gdy emisja logów sterowana przez atakującego wypełnia asynchroniczny bufor eksportu, podczas gdy eksporter jest poddany backpressure. Nowy BatchingProcessor opakowuje eksporter w newBufferExporter(exporter, 1), a pętla odpytywania wywołuje queue.TryDequeue i bufferExporter.EnqueueExport przed natychmiastowym sygnalizowaniem pollTrigger, gdy kolejka pozostaje na poziomie lub powyżej batchSize. Ponieważ nieudane nieblokujące EnqueueExport pozostawia długość kolejki niezmienioną, procesor wielokrotnie ponawia próby bez oczekiwania na swój ticker, wyczerpując CPU i degradując lub odmawiając usługi w procesie osadzającym.
- CVE-2026-81871Średnie
OpenTelemetry-Go to implementacja OpenTelemetry w Go. Przed wersją 0.21.0 pakiet exporters/otlp/otlplog/otlploggrpc ładuje zmienne środowiskowe OTEL_EXPORTER_OTLP_LOGS_CERTIFICATE, OTEL_EXPORTER_OTLP_CERTIFICATE i powiązane certyfikaty klienta poprzez loadEnvTLS do cfg.tlsCfg, ale newGRPCDialOptions nie stosuje cfg.tlsCfg podczas tworzenia poświadczeń transportu gRPC. Ścieżka TLS tylko ze środowiska zamiast tego używa credentials.NewTLS z systemowymi korzeniami i bez skonfigurowanego certyfikatu klienta, omijając zamierzone przypinanie prywatnego CA i mutual TLS, chyba że aplikacja dostarczy również WithTLSCredentials. Atakujący sieciowy zdolny przechwycić lub podszyć połączenie z kolektorem za pomocą certyfikatu zaufanego systemowo może odczytać lub zmienić telemetrię logów.
- CVE-2026-81870Niskie
OpenTelemetry-Go w wersjach od 1.5.0 do 1.44.0 w sdk/trace.NewTracerProvider emituje wewnętrzne zdarzenie diagnostyczne Info, którego implementacje MarshalLog rekurencyjnie zawierają konfigurację procesora span, eksportera i klienta. Aplikacje wywołujące otel.SetLogger mogą rejestrować punkty końcowe kolektorów OTLP gRPC i HTTP, flagę Insecure OTLP HTTP oraz pełne adresy URL kolektorów Zipkin.
- CVE-2026-45404Średnie
OpenTelemetry-Go w wersjach od 0.11.0 do 1.44.0 ma podatność na panikę w moście OpenTracing z powodu niesynchronizowanej mapy extraBaggageItems. Jednoczesne wywołania SetBaggageItem i correlation.MapFromContext na tym samym bridgeSpan mogą prowadzić do błędu krytycznego i zatrzymania procesu, co powoduje odmowę usługi. Poprawka jest w wersji 1.45.0.
- CVE-2026-45287Średnie
Implementacja OpenTelemetry-Go przed wersją 0.0.17 wycieka jeden deskryptor pliku przy każdym udanym wywołaniu `ParseFile`. Wielokrotne parsowanie w długotrwałym procesie może wyczerpać limit deskryptorów plików i spowodować odmowę usługi.
- CVE-2026-41178Średnie
OpenTelemetry-Go w wersjach 1.41.0 i 1.43.0 usunęło odrzucanie surowej długości, co powoduje, że funkcja `Parse` przetwarza dowolnie duże/nieprawidłowe nagłówki baggage i loguje błędy, umożliwiając atak DoS przez zbyt duże dane wejściowe. Wersje 1.42.0 i 1.44.0 naprawiają ten problem.
- CVE-2026-39883Wysokie
W OpenTelemetry-Go od wersji 1.15.0 do 1.42.0, poprawka dla CVE-2026-24051 zmieniła polecenie ioreg na ścieżkę bezwzględną, ale pozostawiła polecenie kenv z gołą nazwą, co umożliwia atak typu PATH hijacking na platformach BSD i Solaris.
- CVE-2026-39882Średnie
Biblioteka OpenTelemetry-Go przed wersją 1.43.0 odczytuje pełną treść odpowiedzi HTTP do bufora w pamięci bez ograniczenia rozmiaru. Może to prowadzić do wyczerpania pamięci, gdy skonfigurowany punkt końcowy kolektora jest kontrolowany przez atakującego lub gdy atakujący może przechwycić połączenie.
- CVE-2026-29181Wysokie
OpenTelemetry-Go w wersjach od 1.36.0 do 1.40.0 przetwarza nagłówki 'baggage' w sposób umożliwiający atakującemu zwiększenie użycia CPU i alokacji pamięci poprzez wysłanie wielu linii nagłówka, nawet jeśli każda wartość mieści się w limicie 8192 bajtów.
Oryginalny opis (angielski, źródło NVD)
OpenTelemetry-Go is the Go implementation of OpenTelemetry. From version 1.10.0 until 1.33.0, the sdk/trace/span.go attribute truncation path can fail to enforce AttributeValueLengthLimit for string and string-slice attributes containing the valid Unicode replacement character U+FFFD. safeTruncateValidUTF8 treats the valid replacement rune as invalid UTF-8 and returns the original input, while strings.ToValidUTF8 leaves that valid rune unchanged, so a second safeTruncate attempt can also return the oversized value. An attacker who controls span attribute content can retain values longer than the configured limit, increasing per-span memory use and weakening denial-of-service protection in the instrumented process. This issue is fixed in version 1.33.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

