drošība · 6 min · 23.07.2026

OpenTofu 1.12.3 aizver caurumu, kas ļauj ļaunprātīgai git saitei nolasīt failus

OpenTofu komanda 19. jūnijā publicēja brīdinājumu par augstas bīstamības ievainojamību, kas ļauj ļaunprātīgi veidotai moduļa saitei nolasīt patvaļīgus failus no mašīnas, kurā palaists tofu. Kļūda ir aizvērta divos laidienos: 1.11.10 un 1.12.3.

Ievainojamībai piešķirts numurs CVE-2026-4660 un CVSS vērtējums 7,5. Uzbrukums notiek pa tīklu, tam nav vajadzīgas nekādas tiesības un lietotājam nekas nav jādara. Iegūstamā informācija ir konfidenciāli faili, tāpēc ietekme skar tikai konfidencialitāti, nevis datu integritāti vai pieejamību. Advisory ar identifikatoru GHSA-Q7J3-V8QV-22VQ tika publicēts caur GitHub drošības datubāzi. Tas skar go-getter kodu, ko OpenTofu izmanto atkarību lejupielādei.

Patvaļīga faila nolasīšana nozīmē, ka uzbrucējs nevar ierakstīt savu kodu upura mašīnā, taču var izlasīt jebkuru failu, kuram tofu procesam ir piekļuve. Automatizētā vidē tas bieži nozīmē konfigurācijas failus ar akreditācijas datiem un vides mainīgos, kas tiek ielādēti konveijera darbības laikā.

Kā ļaunprātīga saite nolasa failus

OpenTofu moduļus un nodrošinātājus lejupielādē ar HashiCorp bibliotēku go-getter. Kad tofu apstrādā moduļa avota adresi, kas norāda uz git repozitoriju, tā izsauc git darbības pret šo adresi. Speciāli veidota adrese liek git nolasīt failu ārpus paredzētā direktorija. Uzbrucējs, kurš kontrolē repozitoriju vai adresi, tā var izvilkt SSH atslēgas, mākoņa akreditācijas datus vai citu slepenu informāciju no vides, kurā notiek lejupielāde.

Bīstamību pastiprina tas, kur OpenTofu parasti darbojas. Infrastruktūras kods bieži tiek palaists automatizētos CI konveijeros, kuriem ir piekļuve produkcijas noslēpumiem. Ja komanda velk moduli no publiska vai trešās puses reģistra, pietiek ar vienu ļaunprātīgu atkarību, lai šie noslēpumi nonāktu pie uzbrucēja. Tā kā go-getter ir HashiCorp bibliotēka, ko izmanto vairāki infrastruktūras rīki, kļūda skar plašāku ekosistēmu par vienu produktu.

OpenTofu moduļa avotu var norādīt vairākos veidos. Tas var būt lokāls ceļš, git repozitorijs, HTTP adrese, reģistra ieraksts vai objektu krātuve, piemēram, S3. Ievainojamība attiecas uz git avotiem, kurus go-getter apstrādā, izsaucot sistēmas git klientu. Tieši šī izsaukuma laikā ļaunprātīga adrese var likt klientam pieskarties failam, kuram tofu procesam ir lasīšanas tiesības, bet kuram nekad nevajadzēja nonākt lejupielādes rezultātā.

Labojums nav OpenTofu pašā kodā. Komanda atjaunināja go-getter līdz versijai 1.8.6, kur pati bibliotēka vairs neatļauj šo git darbību.

Kuras versijas ir skartas

Ievainojamība skar visas versijas līdz 1.11.10, kā arī 1.12 sērijas laidienus no 1.12.0-beta1 līdz 1.12.3. Drošās versijas ir 1.11.10 un 1.12.3. Vecākā 1.10 sērija arī ir skarta, taču pāreja uz drošu laidienu tajā var salauzt esošo iestatījumu, tāpēc OpenTofu iesaka plānot migrāciju uz 1.11.10.

Pārbaudīt savu versiju var ar komandu tofu version. Tā kā labojums ir izlaists kā ielāpu versija tajā pašā sērijā, lietotāji, kuri jau strādā ar 1.11 vai 1.12, var atjaunināties ar minimālu risku salauzt esošo konfigurāciju. Reģistru un moduļu avotus, kas nāk no nezināmām trešajām pusēm, ir vērts pārskatīt arī pēc atjaunināšanas.

Semantiskās versijas dēļ pāreja starp ielāpu laidieniem parasti nemaina komandu uzvedību vai konfigurācijas formātu. Vienīgā vieta, kur atjaunināšana var prasīt papildu darbu, ir 1.10 sērija, kurai droša ielāpa nav. Komandām, kuras joprojām ir uz šīs sērijas, OpenTofu iesaka vispirms pārbaudīt savu kodu pret 1.11 un tikai tad pāriet. Līdz tam moduļu lejupielāde no neuzticamiem avotiem uz 1.10 paliek bīstama.

Ko salaboja iepriekšējais laidiens

OpenTofu 1.12.2 aizvēra vēl divus drošības caurumus. Pirmais skar stāvokļa šifrēšanu ar OpenBao atslēgu nodrošinātāju: uz kompromitētas sistēmas īpaši veidots JWE žetons varēja izraisīt tofu avāriju vai iesalšanu. Otrais bija SSH savienojumos, kur kļūdu ziņojumi saturēja neekranētus baitus un uzbrucēja kontrolēts serveris varēja izraisīt lielu procesora slodzi.

Tas pats laidiens novērsa trīs funkcionālas kļūdas. Nodrošinātāju instalēšanas laikā uz Unix sistēmām tofu nepareizi apstrādāja kodola ziņoto strupceļu (EDEADLK). Komandas tofu login laikā radās sacīkstes stāvoklis signālu apstrādē. Komandā tofu test avāriju izraisīja efemēru resursu izmantošana.

Versija 1.12.3 papildus salaboja TF_ENCRYPTION mainīgā apstrādi, kad tas satur tikai atstarpes, kā arī komandu tofu console ar karogu -lock=false.

Kāpēc tas svarīgi tieši OpenTofu lietotājiem

OpenTofu ir atvērtā koda Terraform atzars, ko pārvalda Linux Foundation. Projekts radās 2023. gadā pēc tam, kad HashiCorp nomainīja Terraform licenci no atvērtā koda MPL uz Business Source License. Tā kā abi rīki ilgu laiku dalījās vienā koda bāzē un joprojām izmanto tādas pašas HashiCorp bibliotēkas kā go-getter, moduļu apstrādes ievainojamības skar līdzīgu lietotāju loku abās pusēs.

Praksē OpenTofu lasa un raksta stāvokļa failus, kuros glabājas resursu identifikatori, IP adreses un dažkārt arī noslepenoti dati. Rīks, kas šādu stāvokli apstrādā automatizētā konveijerā, ir izdevīgs mērķis, jo viena veiksmīga faila nolasīšana atklāj piekļuvi visai infrastruktūrai. CVE-2026-4660 tieši šādu ceļu padarīja iespējamu. Tāpēc atjaunināšana uz 1.11.10 vai 1.12.3 ir jāizdara pirms nākamās moduļu lejupielādes no ārēja avota.

Avoti

komentārisaruna

Komentāri

Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.

Pievieno komentāru

Tavs e-pasts netiks publicēts. Obligātie lauki atzīmēti.

vēl no drošībasaistītie