Luka w OpenTofu pozwala nadpisać dowolny plik w systemie (CVE-2026-74796)

Luka w OpenTofu pozwala nadpisać dowolny plik w systemie (CVE-2026-74796)

2026-08-17 0 przez Redakcja

W OpenTofu — otwartoźródłowym narzędziu do zarządzania infrastrukturą jako kodem, powstałym jako fork Terraforma — wykryto podatność typu symlink following path traversal. Wpis CVE opublikowano 16 sierpnia 2026, a odpowiadające mu ostrzeżenie GitHub (GHSA-wcmj-x466-56mm) było dostępne już od czerwca.

Których wersji dotyczy

Tu uwaga, bo obiegowa wersja „aktualizuj do 1.11.7″ jest niepełna:

  • Podatne: wszystkie wersje poniżej 1.10.10 oraz od 1.11.0 do 1.11.6,
  • Naprawione w: 1.10.10 lub 1.11.7 i nowszych.

Jeśli pracujesz na gałęzi 1.10.x, nie musisz migrować na 1.11 — wystarczy 1.10.10. Wersję sprawdzisz komendą tofu version.

Na czym polega problem

OpenTofu celowo dopuszcza, by wpisy w lokalnej pamięci podręcznej dostawców były dowiązaniami symbolicznymi — tak właśnie lokalny cache odwołuje się do wpisów w cache globalnym. Instalator nie miał jednak reguły nakazującej usunięcie istniejącego symlinka, jeśli wskazywał on na katalog niezgodny z oczekiwaną zawartością pakietu. Zamiast go usunąć, podążał za dowiązaniem i próbował zaktualizować zawartość katalogu docelowego.

Scenariusz ataku wygląda tak: repozytorium zawiera plik main.tf deklarujący jakiegoś dostawcę oraz spreparowany symlink. Ofiara klonuje repozytorium i uruchamia tofu init. OpenTofu podąża za dowiązaniem i zapisuje zawartość pakietu poza drzewem roboczym — na przykład nadpisując /etc/passwd albo /etc/sudoers, co otwiera drogę do eskalacji uprawnień.

Jak groźne to jest naprawdę

Warto zachować proporcje, bo oceny się różią w zależności od metryki:

  • CVSS 4.0: 7.0 — wysoka,
  • CVSS 3.1: 6.1 — średnia.

Wektor ataku mówi więcej niż sama liczba. Złożoność jest wysoka, a atak wymaga interakcji użytkownika — ktoś musi uruchomić tofu init w katalogu, którego zawartość kontroluje atakujący. To nie jest podatność zdalnie eksploatowalna bez udziału ofiary. Realne ryzyko dotyczy więc przede wszystkim pipeline’ów CI/CD przetwarzających repozytoria z zewnątrz oraz sytuacji, gdy ktoś uruchamia tofu init na sklonowanym, nieznanym kodzie.

Co zrobić

Podstawowe rozwiązanie: aktualizacja do 1.10.10 lub 1.11.7.

Jeśli nie możesz zaktualizować od razu:

  • upewnij się, że katalog .terraform nie istnieje przed pierwszym uruchomieniem tofu init w nowym katalogu roboczym,
  • sprawdź, czy w katalogu roboczym nie ma dowiązań wskazujących powyżej niego,
  • uruchamiaj tofu init wyłącznie w katalogach, których zawartości ufasz.

Do wykrywania podejrzanych dowiązań przydadzą się dwie komendy:

find . -type l -ls | grep -E '\.\./|^/'
find .terraform/providers -type l -ls

Pierwsza wypisze dowiązania wskazujące poza bieżący katalog, druga sprawdzi cache dostawców.

Przy okazji: druga podatność

Tego samego dnia opublikowano CVE-2026-74797 — podatność typu odmowa usługi w wersjach OpenTofu przed 1.11.4. Spreparowane archiwum .zip dostawcy lub modułu może doprowadzić do nadmiernego zużycia procesora podczas instalacji zależności. Ocena jest niska (2.3 w CVSS 4.0), ale aktualizacja rozwiązuje oba problemy naraz.

Źródła: GitHub Security Advisory (GHSA-wcmj-x466-56mm), VulnCheck, NVD, DailyCVE