Przejdź do treści
← Wróć do bloga
BezpieczeństwoGO-2026-6809, październik 2026

GO-2026-6809 (CVE-2026-111943): Go, crypto/x509 i certyfikaty eMudhra

GO-2026-6809 to poprawka w crypto/x509 po wycieku kluczy 8 certyfikatów pośrednich eMudhra. Bez niej program w Go może zaufać podrobionemu certyfikatowi. Naprawiają ją Go 1.27.3 i 1.26.10, ale każdy program trzeba skompilować ponownie. Instrukcja i pomoc.

Program w Go ma bibliotekę standardową wkompilowaną w plik. Nowa wersja Go na serwerze nic nie zmienia, dopóki nie zbudujesz programu od nowa.

Autor

Syntalith

Opublikowano Zaktualizowano 4 min czytania

GO-2026-6809 (CVE-2026-111943) to poprawka w pakiecie crypto/x509, który w Go sprawdza certyfikaty TLS. Zespół Go dodał w nim listę zablokowanych certyfikatów pośrednich eMudhra. Ich klucze prywatne wyciekły, więc każdy, kto je ma, może podrobić certyfikat dowolnej strony. Według bazy podatności Go (2026) poprawkę zawierają Go 1.27.3 i 1.26.10.

Jest jeden haczyk, o którym łatwo zapomnieć. Program w Go ma bibliotekę standardową wkompilowaną w plik wykonywalny. Nowa wersja Go na serwerze nie zmienia programu, który już działa. Trzeba zbudować każdy program od nowa i wdrożyć go ponownie.

Co to jest GO-2026-6809 i co grozi bez poprawki

17 października 2026 r. badacz zgłosił twórcom przeglądarek i systemów, że klucze prywatne 8 certyfikatów pośrednich eMudhra są do odgadnięcia. Według analizy Aikido każdy z tych kluczy jest mniejszy niż 256, a jeden to liczba 4. Certyfikat pośredni może podpisać ważny certyfikat dla dowolnej domeny. Kto ma klucz, może więc udawać serwer Waszego banku, dostawcy płatności, API czy repozytorium kodu.

Program w Go, który łączy się z innym serwerem przez HTTPS, sprawdza jego certyfikat funkcją Certificate.Verify. Na większości systemów Go korzysta z systemowej listy zaufanych certyfikatów. Zespół Go pisze, że w części przypadków ta lista nie zaktualizuje się bez dodatkowych kroków. Wtedy program przyjmie podrobiony certyfikat jako ważny.

Co to oznacza w praktyce? Atakujący, który siedzi na drodze ruchu, na przykład w sieci Wi-Fi albo na przejętym routerze, może podstawić własny serwer. Program w Go wyśle mu to, co wysłałby prawdziwemu: tokeny API, hasła, dane klientów, zamówienia. Może też przyjąć od niego sfałszowaną odpowiedź, na przykład podmieniony plik aktualizacji. W Go napisano dużą część narzędzi infrastruktury, takich jak Kubernetes, Docker czy Terraform, a także wiele firmowych usług i agentów.

Program w Go, który ufa podrobionemu certyfikatowiCo może się stać
Usługa, która płaci albo pobiera dane z banku czy operatora płatnościAtakujący dostaje klucze API i może fałszować odpowiedzi
Agent albo integracja, która wysyła dane klientów do CRMDane osobowe trafiają do przestępcy, a firma ma 72 godziny na zgłoszenie do UODO według RODO
Narzędzie wdrożeń, które pobiera obrazy i plikiNa produkcję trafia podmieniony, złośliwy plik
Program, który sam pobiera aktualizacjeAtakujący instaluje własną wersję programu

Źródło terminu zgłoszenia: RODO, rozporządzenie 2016/679, art. 33.

GO-2026-6809 w liczbach: statystyki 2026

Dane sprawdziliśmy 23 października 2026 r.

  • Według bazy podatności Go (2026) podatne są wszystkie wersje Go przed 1.26.10 oraz wersje od 1.27.0 przed 1.27.3.
  • Według zespołu Go (2026) wersje 1.27.3 i 1.26.10 ukazały się 19 października 2026 r., 2 dni po zgłoszeniu wycieku.
  • Według Mozilli (2026) skompromitowanych jest 8 certyfikatów pośrednich eMudhra, w tym 6 do TLS i 2 do podpisywania kodu.
  • Według analizy Aikido (2026) atakujący potrzebował najwyżej 256 prób, żeby odgadnąć każdy z tych kluczy.

Źródła: GO-2026-6809 w bazie podatności Go, komunikat zespołu Go, komunikat Mozilli na oss-security, Aikido.

Które wersje Go są podatne, a które naprawione

Gałąź GoPodatne wersjeWersja z poprawką
Go 1.27od 1.27.0 do 1.27.21.27.3
Go 1.26do 1.26.91.26.10
Go 1.25 i starszewszystkiebrak, przejdź na 1.26.10 lub 1.27.3

Poprawka dotyczy symbolu Certificate.Verify w pakiecie crypto/x509. Z tej funkcji korzysta pośrednio net/http, crypto/tls i niemal każda biblioteka, która łączy się przez HTTPS. Zespół Go pisze, że od nowych wersji Verify odfiltrowuje łańcuchy z zablokowanymi certyfikatami i nie zwraca ich programowi.

Jak załatać GO-2026-6809: instrukcja krok po kroku

  1. Sprawdź, którą wersją Go zbudowano każdy program. Polecenie go version -m czyta to z samego pliku.
  2. Podnieś wersję Go w projekcie i w CI do 1.27.3 albo 1.26.10.
  3. Zbuduj każdy program od nowa. Dotyczy to też obrazów kontenerów, które kompilują program w etapie budowania.
  4. Zaktualizuj paczkę ca-certificates w systemie i w obrazach. Go czyta systemową listę certyfikatów, więc ona też musi być nowa.
  5. Wdroż programy ponownie i zrestartuj usługi.
  6. Sprawdź wynik: govulncheck na gotowym pliku i test połączenia z adresem testowym.

Polecenia, które się przydają:

go version                                # wersja kompilatora
go version -m ./moj-program               # którą wersją Go zbudowano plik
go get toolchain@go1.27.3                 # wersja Go w go.mod
govulncheck ./...                         # kod źródłowy
govulncheck -mode=binary ./moj-program    # gotowy plik

W obrazach Docker zmień obraz budujący na wersję z poprawką, na przykład golang:1.27.3, i zbuduj obraz z flagą --pull. Obrazy typu scratch albo distroless często kopiują plik z certyfikatami z etapu budowania. Taki obraz ma listę z dnia budowy, więc też wymaga przebudowy.

Test z wnętrza kontenera lub serwera, na którym działa program:

curl -sS -o /dev/null -w "HTTP %{http_code}\n" https://dv-g3b-emudhra.we-have-a-problem.com/

Błąd SSL i wynik HTTP 000 oznaczają, że system już nie ufa skompromitowanym certyfikatom. Ten test sprawdza curl i systemową listę. Sam program w Go sprawdź najlepiej małym zapytaniem http.Get na ten sam adres, zbudowanym tą samą wersją Go: poprawnie załatany program zwróci błąd certyfikatu.

Czego nie robić

Po aktualizacji mogą pojawić się błędy certyfikatów w logach. Nie wyłączaj weryfikacji przez InsecureSkipVerify: true. Cloudflare ostrzega, że to usuwa całą ochronę, którą aktualizacja przywraca. Błąd zwykle oznacza, że serwer po drugiej stronie korzysta z łańcucha, któremu już nie wolno ufać, albo że usługa ma własną, starą listę certyfikatów.

Jak Syntalith pomaga załatać GO-2026-6809

W firmie programy w Go siedzą w wielu miejscach naraz: usługi, agenci, narzędzia w CI, pliki skopiowane na serwery lata temu. Wymiana kompilatora w jednym repozytorium nie zamyka problemu. Nasi inżynierowie robią to od początku do końca.

Najpierw spisujemy programy i obrazy w Go i sprawdzamy, którą wersją zbudowano każdy plik. Potem podnosimy wersję Go w projektach i w CI, przebudowujemy programy i obrazy, aktualizujemy ca-certificates i wdrażamy wszystko ponownie. Na koniec testujemy każdą usługę jej własną drogą TLS, z włączoną weryfikacją, i uruchamiamy govulncheck na gotowych plikach. Dostajecie raport na piśmie: co było podatne, co przebudowaliśmy i co wymaga Waszej decyzji, na przykład program bez kodu źródłowego.

Pracujemy na Waszej infrastrukturze, z dostępami tylko na czas zadania. Te same kroki robimy u siebie: 23 października przenieśliśmy stronę, system rezerwacji i serwer MCP na Node.js 24.22.1 z nową listą certyfikatów.

Zacznij od bezpłatnej, 30-minutowej rozmowy z inżynierem. Powiedz, gdzie działają Wasze programy w Go, a my powiemy, od czego zacząć i ile to potrwa. Umów rozmowę.

Pełny opis incydentu, z listą wersji dla systemów i innych języków, jest w artykule o skompromitowanych certyfikatach eMudhra.

Najczęstsze pytania

Co to jest GO-2026-6809?
GO-2026-6809 (CVE-2026-111943) to wpis w bazie podatności Go dotyczący pakietu crypto/x509. Go dodał listę zablokowanych certyfikatów pośrednich eMudhra, których klucze prywatne wyciekły. Od Go 1.27.3 i 1.26.10 funkcja Certificate.Verify odrzuca łańcuchy z tymi certyfikatami.
Które wersje Go są podatne?
Wszystkie wersje przed 1.26.10 oraz wersje od 1.27.0 przed 1.27.3. Poprawkę zawierają Go 1.26.10 i 1.27.3, wydane 19 października 2026 r.
Czy wystarczy zaktualizować Go na serwerze?
Nie wystarczy. Biblioteka standardowa jest wkompilowana w każdy program w Go. Trzeba zbudować każdy program nowym kompilatorem i wdrożyć go ponownie. Warto też zaktualizować paczkę ca-certificates w systemie.
Jak sprawdzić, którą wersją Go zbudowano program?
Polecenie go version -m ścieżka/do/programu pokazuje wersję Go użytą do kompilacji. govulncheck -mode=binary sprawdza gotowy plik pod kątem znanych podatności, także GO-2026-6809.
Czy Syntalith może przebudować nasze usługi w Go?
Tak. Inżynier spisuje programy i obrazy w Go, podnosi wersję kompilatora, przebudowuje i wdraża je ponownie, a potem sprawdza, czy usługi odrzucają skompromitowane certyfikaty. Zaczynamy od bezpłatnej, 30-minutowej rozmowy.

Aktualizacje bezpieczeństwa

Nie wiesz, czy Wasze serwery są już załatane?

Powiedz inżynierowi w 30 minut, gdzie działają strona, sklep i aplikacje. Spiszemy podatne wersje, zaktualizujemy je, wdrożymy usługi ponownie i sprawdzimy wynik na produkcji.

Rozmowa z inżynierem
0 zł30 minut, plan prac na piśmie w 2 dni robocze
Zakres
PHP, Node.js, Go, certyfikatyserwery, kontenery, hosting i CI
Na koniec
raport na piśmieco było podatne, co zaktualizowaliśmy, co zostało

Terminy zobaczysz w swojej strefie czasowej.

Poznaj inżynierów, którzy wykonają pracę

Co Ci daje, że jesteśmy partnerem OpenAI i Anthropic?

OpenAI robi ChatGPT, a Anthropic robi Claude. Należymy do programów partnerskich obu firm, więc pracujemy z ich narzędziami na co dzień i uczymy się od samych twórców.

OpenAI Select PartnerClaude Partner Network
01Dobierzemy narzędzie do zadania
Wdrażamy i ChatGPT, i Claude. Oba sprawdzamy na Twoich dokumentach, a Ty wybierasz to, które robi mniej poprawek i oszczędza więcej czasu.
02Wiedza prosto od twórców
Uczymy się z oficjalnych kursów i materiałów OpenAI i Anthropic. Twój zespół poznaje funkcje i ustawienia, które działają dziś.
03Licencje bez naszej marży
Konta kupujesz bezpośrednio u OpenAI albo Anthropic i dostajesz od nich fakturę. Do licencji nic nie doliczamy.
04Certyfikowani inżynierowie
W zespole mamy certyfikat AWS z uczenia maszynowego i certyfikat Anthropic z architektury systemów na Claude.

Udział w programach nie oznacza, że OpenAI albo Anthropic polecają nasze usługi.