Kursy

Luka w APT: zaktualizuj apt w Debianie i Ubuntu

Luka w APT pozwala podmienić pakiet po weryfikacji i uruchomić kod jako root. Poprawki są w Debianie i Ubuntu. Jak sprawdzić swój system.

Luka w APT i apt update w Debianie - srebrny minikomputer służący jako domowy serwer z Debianem, na obudowie naklejka z pingwinem Tux i żartobliwy "certyfikat autentyczności Linuksa", na rogu figurka pingwina, obok czarny dysk zewnętrzny z niebieską diodą i plątanina kabli
Spis treści
  1. Kogo dotyczy luka w APT
  2. Wersje apt z poprawką w Debianie i Ubuntu
  3. Jak sprawdzić wersję apt i zrobić apt update
  4. Jak sprawdzić, czy masz włączone Acquire::Retries
  5. Obrazy Dockera, CI i firmowe proxy pakietów
  6. Jak działa podmiana pakietu po weryfikacji
  7. Czy HTTPS w źródłach pakietów chroni przed luką w APT
  8. Najczęstsze pytania
  9. Podsumowanie

Przez lukę CVE-2026-109518 w APT, menedżerze pakietów Debiana i Ubuntu, złośliwy serwer lustrzany albo proxy może podmienić pakiet już po jego weryfikacji, a ten instaluje się z uprawnieniami roota. Poprawki wyszły 4 listopada 2026 roku dla Debiana 12 i 13 oraz Ubuntu 22.04, 24.04, 26.04 i 26.10. Na tych systemach wystarczy dziś apt update i aktualizacja samego pakietu apt. W domyślnej konfiguracji podatne są właśnie te wydania. Starsze tylko wtedy, gdy ktoś sam włączył ponawianie pobierania. O atakach z użyciem tej luki żadne ze źródeł nie pisze. Stan na 4 listopada 2026 roku, godz. 19:30, według biuletynu Debiana DSA-6607-1, komunikatu zespołu APT, bazy NVD, systemu śledzenia luk Debiana i archiwum Ubuntu w serwisie Launchpad.

Kogo dotyczy luka w APT

Luka dotyczy systemu z wersją APT sprzed poprawki, który ma włączone ponawianie nieudanych pobrań, czyli ustawienie Acquire::Retries większe od zera. Według opisu w bazie NVD wartość 3 jest domyślna od Debiana 12 (bookworm) i Ubuntu 22.04 LTS. Dlatego te wydania i nowsze są podatne bez żadnych zmian w konfiguracji.

Starsze wydania, takie jak Debian 11 czy Ubuntu 20.04, w domyślnej konfiguracji nie są podatne. Julian Andres Klode z zespołu APT zastrzega jednak w komunikacie, że ustawienie jest domyślne dopiero od APT 2.3.2. Dodaje: “but many user scripts may have been using it in older releases”. Wiele skryptów mogło więc włączać ponawianie także w starszych wydaniach. Starszy serwer z ręcznie ustawionym ponawianiem jest podatny tak samo jak nowy.

Drugi warunek to pozycja atakującego. NVD opisuje go jako kogoś, kto może manipulować ruchem HTTP między APT a serwerem z pakietami, “including a malicious mirror or proxy”, także złośliwy serwer lustrzany albo proxy. Luka dotyczy wyłącznie dystrybucji z APT: Debiana, Ubuntu i systemów na nich opartych. Fedora, RHEL czy Arch używają innych menedżerów pakietów.

Ocena luki zależy od tego, kogo pytasz. Zespół APT nazywa ją “critical file verification bypass”, czyli krytycznym obejściem weryfikacji plików. Canonical, który zgłosił ją do NVD, wycenił ją na 7,7 w skali CVSS 4.0, co oznacza poziom wysoki.

Na zdjęciu wyróżniającym: domowy serwer z Debianem. Fot. PauleMiranda, Wikimedia Commons, licencja CC BY-SA 4.0.

Wersje apt z poprawką w Debianie i Ubuntu

Poprawiona wersja apt jest w repozytoriach bezpieczeństwa wszystkich wspieranych wydań poza Debianem testing. Numery pochodzą z systemu śledzenia luk Debiana i z archiwum Ubuntu w Launchpadzie, gdzie pakiety pojawiły się 4 listopada o 14:25 UTC (15:25 czasu polskiego).

WydanieWersja apt z poprawkąGdzie jest poprawka
Debian 13 trixie3.0.4trixie-security, DSA-6607-1
Debian 12 bookworm2.6.2bookworm-security, DLA-4880-1
Debian unstable (sid)3.3.6sid
Debian testing (forky)brak, wersja 3.3.5 podatna–
Ubuntu 26.103.3.3ubuntu0.1kieszeń Security
Ubuntu 26.04 LTS3.2.1ubuntu0.1kieszeń Security
Ubuntu 24.04 LTS2.8.4ubuntu0.1kieszeń Security
Ubuntu 22.04 LTS2.4.15ubuntu0.1kieszeń Security
Ubuntu 20.04, 18.04, 16.042.0.12+esm1, 1.6.19+esm1, 1.2.36+esm1tylko z Ubuntu Pro (ESM)
Ubuntu 14.041.0.1ubuntu2.24+esm4tylko z Ubuntu Pro (ESM)

Wersje dla Ubuntu 14.04–20.04 podaje rekord NVD, a sufiks +esm oznacza pakiety z rozszerzonego wsparcia w ramach subskrypcji Ubuntu Pro. Te wydania w domyślnej konfiguracji nie są podatne, więc poprawka liczy się dla nich tylko przy ręcznie włączonym ponawianiu.

Strona Ubuntu jeszcze tego nie odnotowała. Rekord CVE na ubuntu.com, zaktualizowany o 15:09 UTC, pokazuje wszystkie wydania jako wymagające poprawki. Biuletyn USN-8996-1, na który wskazuje NVD, o 19:30 nie istniał. Pakiety w archiwum są jednak opublikowane. Po apt update poprawiona wersja pojawi się jako kandydat do instalacji, a zainstaluje ją dopiero aktualizacja pakietu apt.

Jak sprawdzić wersję apt i zrobić apt update

Wersję zainstalowanego pakietu pokazuje apt-cache policy apt, wpisane w terminalu. Wiersz Installed to wersja na dysku, Candidate to wersja, którą APT zainstaluje. Jeśli Installed jest niższa niż w tabeli, system wymaga aktualizacji.

Aktualizacja samego apt

Na serwerze, na którym nie chcesz od razu aktualizować wszystkiego, wystarczą dwa polecenia:

sudo apt-get update
sudo apt-get install --only-upgrade apt
apt-cache policy apt

Opcja --only-upgrade według dokumentacji apt-get aktualizuje tylko już zainstalowane pakiety i nie instaluje nowych. Pełne sudo apt update i sudo apt upgrade też przyniosą poprawkę razem z resztą aktualizacji. Podstawowe polecenia terminala zebraliśmy w ściądze komend Linuksa.

Aktualizacja w sieci, której nie ufasz

Sama aktualizacja apt przechodzi przez podatny jeszcze apt. Ani Debian, ani zespół APT nie podali obejścia na czas aktualizacji. Z opisu NVD wynika jednak, że atak wymaga ponawiania pobrania, więc wyłączenie go na jedno polecenie usuwa jeden z warunków. To nasz wniosek, nie zalecenie dystrybucji:

sudo apt-get -o Acquire::Retries=0 install --only-upgrade apt

Podobny krok Debian zalecił przy poprzedniej luce w obsłudze przekierowań w APT, CVE-2019-3462, którą w 2019 roku także zgłosił Max Justicz. Wtedy biuletyn DSA-4371-1 kazał na czas tej jednej aktualizacji wyłączyć przekierowania. Najprościej zrobić aktualizację z sieci, którą kontrolujesz, i bez obcego proxy.

Jak sprawdzić, czy masz włączone Acquire::Retries

Ustawienie sprawdzisz dwoma poleceniami. Pierwsze pokazuje konfigurację, którą widzi APT, drugie przeszukuje pliki w /etc/apt:

apt-config dump | grep -i retries
grep -ri retries /etc/apt/

Puste wyniki na Debianie 12+ i Ubuntu 22.04+ nie oznaczają, że ponawianie jest wyłączone. Wartość domyślna 3 siedzi w kodzie APT (FindI("Acquire::Retries", 3) w pliku acquire-item.cc), a nie w pliku konfiguracji, więc apt-config dump jej nie wypisze. To ustaliliśmy w kodzie źródłowym APT. Na tych wydaniach liczy się tylko wersja pakietu.

Na Debianie 11, Ubuntu 20.04 i starszych wartość większa od zera oznacza, że spełniony jest jeden z warunków ataku. Drugim jest wersja apt sprzed poprawki, więc sprawdź też apt-cache policy apt. grep znajdzie także wpisy w komentarzach, dlatego przy każdym trafieniu zajrzyj do pliku. Przejrzyj też skrypty, Dockerfile i definicje potoków CI pod kątem -o Acquire::Retries=, bo tam to ustawienie zwykle wpisywano.

Obrazy Dockera, CI i firmowe proxy pakietów

Kontener ma własny apt, z obrazu bazowego. Linia RUN apt-get update && apt-get install w Dockerfile pobiera pakiety tym apt, który był w obrazie, przy każdym budowaniu. Aktualizacja hosta nie zmienia więc wersji apt w kontenerze. Wersję w obrazie sprawdzisz poleceniem apt-cache policy apt uruchomionym w kontenerze.

Potoki CI budują obrazy często przez firmowe proxy albo serwer pośredniczący z kopią pakietów, na przykład apt-cacher-ng. NVD wymienia proxy wprost jako miejsce, z którego atak jest możliwy, więc taki serwer trzeba chronić jak każdy inny element infrastruktury. Czy oficjalne obrazy debian i ubuntu na Docker Hub mają już poprawiony apt, nie sprawdzaliśmy. Do czasu ich przebudowy pierwszą instrukcją po FROM może być aktualizacja samego apt. Jak działa potok budowania, opisaliśmy w tekście o CI/CD.

Jak działa podmiana pakietu po weryfikacji

APT sprawdza pakiet po pobraniu, porównując go z podpisanymi listami pakietów z repozytorium. Luka pozwala zamienić plik już po tym sprawdzeniu. Biuletyn Debiana opisuje to tak: “APT can merge two different package downloads after an HTTP redirect gives them the same URI. Improper file handling when resuming an HTTP download allows a man-in-the-middle attacker to replace a package after verification, resulting in the execution of arbitrary code as root.”

Po polsku: przekierowanie HTTP może sprawić, że dwa różne pobrania dostaną ten sam adres, a APT je połączy. Błędna obsługa pliku przy wznawianiu pobierania pozwala atakującemu w środku połączenia podmienić pakiet po weryfikacji. Skutek to wykonanie dowolnego kodu jako root. Klode dopowiada mechanizm. Zwykłe, przejściowe błędy serwera HTTP każą APT ponowić pobieranie. Wtedy APT nadpisuje istniejące twarde dowiązania (hardlinki, czyli kilka nazw tego samego pliku na dysku) zawartością wybraną przez atakującego. “As debs are installed with root privileges, this provides the potential for remote code execution”, bo pakiety instalują się z uprawnieniami roota.

Ta sama aktualizacja łata też kilka błędów odczytu poza zakresem pamięci. Według Klodego grożą one najwyżej awarią programów, które czytają pliki .deb z uprawnieniami roota, takich jak PackageKit czy aptdaemon.

Czy HTTPS w źródłach pakietów chroni przed luką w APT

Źródła nie odpowiadają na to pytanie wprost. Domyślne adresy repozytoriów Debiana i Ubuntu w wielu instalacjach to zwykłe HTTP, bo integralność pakietów zapewniają podpisy, a nie szyfrowanie połączenia. Ta luka podmienia plik już po weryfikacji, więc podpisy przed nią nie chronią. Szyfrowane połączenie utrudnia podmianę komuś, kto podsłuchuje sieć, na przykład w publicznym Wi-Fi. Nie chroni jednak przed złośliwym serwerem lustrzanym albo przejętym proxy, które NVD wymienia z nazwy. To nasz wniosek z opisu luki. HTTPS nie zastępuje aktualizacji.

Devstock { dla firm }

Co możemy zrobić dla Twojej firmy?

Budujemy strony, sklepy i aplikacje, łączymy systemy z KSeF i księgowością, wdrażamy automatyzacje i agentów AI, a na koniec dbamy o widoczność w Google. Zaczynamy od rozmowy o tym, co dziś zabiera Twojemu zespołowi najwięcej czasu.

strony i sklepyaplikacjeKSeF i integracjeautomatyzacjeagenci AISEO
Zobacz, co robimy dla firm → Software house, który prowadzi ten blog

Najczęstsze pytania

Czym różni się apt update od apt upgrade?

apt update pobiera tylko aktualne listy pakietów z repozytoriów i niczego nie instaluje. apt upgrade instaluje nowsze wersje pakietów, które są już w systemie. Żeby dostać poprawkę luki w APT, trzeba wykonać oba kroki albo apt update i aktualizację samego apt.

Czy luka dotyczy systemów opartych na Debianie i Ubuntu?

NVD wymienia wprost “derivative Linux distributions”, czyli dystrybucje pochodne. Jeśli system instaluje pakiety przez APT, sprawdź wersję poleceniem apt-cache policy apt i porównaj ją z biuletynem bezpieczeństwa tej dystrybucji. Dystrybucja pochodna może mieć własną numerację pakietu. Serwery z jądrem Linuksa warto przy okazji sprawdzić pod kątem luki CVE-2026-98432 w jądrze.

Podsumowanie

Luka CVE-2026-109518 w APT pozwala złośliwemu serwerowi lustrzanemu, proxy albo komuś, kto kontroluje ruch HTTP, podmienić pakiet po jego weryfikacji. Podmieniony pakiet instaluje się jako root. W domyślnej konfiguracji podatne są Debian 12 i 13 oraz Ubuntu 22.04 i nowsze, bo mają włączone ponawianie pobierania. Starsze wydania są podatne tylko przy ręcznie ustawionym Acquire::Retries. Poprawki są w repozytoriach bezpieczeństwa: apt 3.0.4 dla Debiana 13, 2.6.2 dla Debiana 12, od 2.4.15ubuntu0.1 do 3.3.3ubuntu0.1 dla Ubuntu. Debian testing jeszcze ich nie ma. Na dziś wykonaj sudo apt-get update i sudo apt-get install --only-upgrade apt, sprawdź wynik apt-cache policy apt i zaktualizuj apt w obrazach Dockera oraz na serwerach CI. O atakach nikt nie informuje. Stan na 4 listopada 2026 roku, godz. 19:30.

Co dalej

Więcej z działu Bezpieczeństwo