drošība · 5 min · 21.07.2026

7-Zip 26.02 aizver XZ dekodera caurumu — sagatavots arhīvs var palaist kodu, un atjauninājums nenāk pats

7-Zip 26.02 laidienā, kas iznāca 25. jūnijā, aizvērta kļūda XZ arhīvu atspiešanā, kuras dēļ sagatavots .xz fails var palaist kodu datorā, kas to atver. Kļūda apzīmēta CVE-2026-14266 un skar 7-Zip versijas no 21.07 (2021. gads) līdz 26.01 — praktiski katru instalāciju, kas nav atjaunināta pēdējo nedēļu laikā.

Trend Micro Zero Day Initiative detaļas publiskoja 15. jūlijā, 20 dienas pēc tam, kad ielāps jau bija izlaists. Pašu kļūdu 5. jūnijā ziņoja Landons Pengs no Lunbun LLC. Uz 20. jūliju nav ne publiska demonstrācijas koda, ne ziņu par izmantošanu reālos uzbrukumos.

7-Zip ir viens no izplatītākajiem arhivatoriem uz Windows, un tas nekur nav iekļauts pēc noklusējuma — katru instalāciju lietotājs uzstādījis pats. Tas nozīmē lielu skaitu datoru ar vecu versiju, ko neviens gadiem nav aizticis.

Kas notiek dekoderā

Problēma slēpjas heap tipa bufera pārpildē, apstrādājot XZ ķēdētos (chunked) datus. Funkcija MixCoder_Code failā C/XzDec.c katrā solī saņēma pilno izvades bufera garumu, nevis to vietu, kas palika brīva pēc iepriekšējiem ierakstiem. Rezultāts ir rakstīšana ārpus atvēlētās atmiņas. Ar rūpīgi izveidotu arhīvu uzbrucējs šo pārpildi var izmantot, lai novirzītu programmas izpildi uz savu kodu.

XZ ir izplatīts formāts Linux pasaulē — tā pakā programmatūras pakotnes, kodola avotus un dublējumus. Tieši tāpēc kļūda ir plašāka par vienu programmu: 7-Zip atspiešanas kods (LZMA SDK) ir iekļauts arī daudzos citos rīkos — arhivatoros, instalatoros un dublēšanas programmās, kas paļaujas uz to pašu C/XzDec.c.

XZ straume ir sadalīta blokos, un katrs bloks var iziet cauri vairākiem dekodēšanas filtriem, pirms tā saturs nonāk izvades buferī. Tieši šajā filtru ķēdē — kad viena bloka izvade tiek padota nākamajam filtram — dekoders zaudēja atskaiti par jau aizpildīto atmiņu. Ielāps 26.02 to labo, garuma aprēķinā ņemot vērā baitus, kas jau ierakstīti buferī.

Šo kļūdu nevajag jaukt ar 2024. gada xz-utils aizmugures durvīm (CVE-2024-3094), kas skāra liblzma bibliotēku uz Linux. Tur bija apzināti ievietots ļauns kods citā projektā; šeit ir godīga programmēšanas kļūda 7-Zip paša LZMA SDK. Formāts abos gadījumos ir XZ, bet kods ir atšķirīgs.

Cik nopietni tas ir

ZDI kļūdai piešķīra 7,0 balles pēc CVSS skalas — augsta, bet ne kritiska, kā to nodēvēja vairāki citi apraksti. Vektors AV:L/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H paskaidro, kāpēc: uzbrukums ir lokāls, tehniski sarežģīts un prasa lietotāja darbību. Kādam ir jāatver ļaunprātīgs fails vai jāapmeklē lapa, kas to piegādā.

Ievainojamība ļauj izpildīt kodu pašreizējā procesa kontekstā — proti, ar tām pašām tiesībām, kādas ir lietotājam, kurš atver arhīvu.

Praksē tas nozīmē pazīstamu uzbrukuma ceļu: e-pasta pielikums, lejupielādēts arhīvs no neuzticama avota vai fails, ko atver kāds cits process. Tā kā vektorā norādīta augsta sarežģītība (AC:H), stabils izmantojums prasa piepūli. Tomēr līdzīgi arhivatoru caurumi agrāk ir izmantoti mērķētos uzbrukumos, tāpēc gaidīt nav vērts. Detaļas apstiprina The Hacker News pārskats un ZDI-26-444 paziņojums.

Kāpēc atjauninājums nenāk pats

7-Zip nav automātiskās atjaunināšanas. Programma nepārbauda jaunas versijas un neinstalē tās fonā, tāpēc daudzi datori gadiem darbojas ar veco versiju, ko lietotājs kādreiz uzlika un aizmirsa. Jauno laidienu jālejupielādē un jāuzstāda pašrocīgi no oficiālās 7-zip.org vietnes.

Tāpēc arī 20 dienu klusums starp ielāpu un publisko paziņojumu palīdz maz. Ielāps eksistē no 25. jūnija, bet tas nesasniedz nevienu, kamēr cilvēks pats to neuzstāda. Uzņēmumos, kur 7-Zip izplatīts caur programmatūras pārvaldības rīkiem, atjauninājums jāizvieto atsevišķi.

Uz Linux stāvoklis ir raibāks. Daļa distribūciju izmanto p7zip — vecāku 7-Zip pārnesumu, kas bieži atpaliek versijās, — bet jaunākās izmanto oficiālo 7-Zip Linux būvējumu vai to pašu LZMA SDK atsevišķā pakotnē. Kurš variants uzstādīts un vai tas jau salabots, atkarīgs no konkrētās distribūcijas atjauninājumu grafika. Tāpēc pēc pakotņu atjaunināšanas ir vērts pārbaudīt uzstādīto versiju, nevis paļauties, ka labojums jau atnācis.

Ko darīt tagad

  • Atjaunini 7-Zip uz 26.02 vai jaunāku versiju no oficiālās vietnes. Versijā Help > About 7-Zip var pārbaudīt, kura pašlaik uzstādīta.
  • Pārbaudi rīkus, kas iekļauj 7-Zip kodu — dublēšanas programmas, instalatorus un arhivatorus, kas atspiež .xz. Tiem vajadzīgs atsevišķs atjauninājums no izstrādātāja.
  • Līdz atjaunināšanai neatver .xz un .7z failus no neuzticamiem avotiem.

Kļūda ir avota kodā kopš 21.07, tātad piecus gadus. Ielāps ir vienā funkcijā C/XzDec.c, kur garuma aprēķins tagad ņem vērā jau ierakstītos baitus. Kurš izlaidums datorā uzstādīts, ātri redzams izvēlnē Help > About 7-Zip, un, ja tur nav 26.02 vai jaunāks numurs, atjaunināšana ir tā vērta jau šodien.

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