Flatpak 11. augustā izlaida versiju 1.18.1, kas aizver desmit drošības brīdinājumus. Bīstamākais no tiem ļauj smilškastē palaistai lietotnei lasīt un rakstīt jebkuru failu uz resursdatora. No turienes uzbrucējs var izpildīt kodu ārpus izolācijas. Skartas ir visas versijas līdz 1.18.0 ieskaitot.
Neviens no desmit brīdinājumiem uz raksta tapšanas brīdi nav saņēmis CVE numuru. Tie apzīmēti tikai ar GitHub GHSA identifikatoriem, tāpēc ievainojamību skeneri, kas seko NVD ierakstiem, par tiem klusē. Izstrādes zars 1.19.0 saņēma deviņus no desmit labojumiem, kā raksta Phoronix.
Smilškaste pati uzbūvē ceļu ārā
Kritiskais caurums ar apzīmējumu GHSA-8688-9×26-hhxj slēpjas veidā, kā Flatpak sagatavo lietotnes datu mapes. Ceļā uz šīm mapēm ir komponentes, ko kontrolē pati lietotne. Kad Flatpak šos ceļus padod bwrap rīkam piesaistes veikšanai, kodols seko simboliskajām saitēm. Ļaunprātīga lietotne var uzlikt saiti tā, lai piesaistes punkts nonāk jebkurā izvēlētā vietā uz resursdatora.
Ļaunprātīga smilškastē palaista lietotne var iegūt patvaļīgu lasīšanas un rakstīšanas piekļuvi resursdatora failiem, ko var eskalēt līdz patvaļīgai koda izpildei uz resursdatora.
Tā to formulē pats Flatpak drošības brīdinājums. Labojums revīzijā 4780729 nostiprina mapju izveidi un /var sagatavošanu pret simbolisko saišu uzbrukumiem. Kļūdu atrada Ee Yang. Distributīviem ar ilgtermiņa atbalstu ar vienu Flatpak ielāpu nepietiek. Pilnai aizsardzībai jāpārņem arī izmaiņas no libglnx bibliotēkas.
Sistēmas palīgs bloķēja divus punktus, taču ne saites
Otrs nopietnais caurums GHSA-qrwq-7qwx-q9rp mīt komponentē flatpak-system-helper, precīzāk revokefs rakstītājā. Ceļu pārbaude bloķēja burtiskas .. komponentes, bet simboliskās saites tā nepamanīja. Nepriviliģēts vietējais lietotājs var no sistēmas palīga izprasīt divas revokefs sesijas, vienā izveidot saiti uz otras mapi un paturēt failu deskriptoru caur šo saiti arī pēc tam, kad ceļa pārbaude jau ir izpildīta.
Rezultāts ir failu izmaiņas svešā sesijā pēc validācijas, tostarp ostree revīziju objektu pārrakstīšana pēc paraksta pārbaudes. No tā izriet root tiesībās veikti ieraksti uzbrucēja izvēlētos ceļos un vietējā tiesību eskalācija līdz root.
Sistēmas, kur Polkit politika prasa administratora autentifikāciju visām org.freedesktop.Flatpak.system-helper darbībām, nav skartas. Noklusējuma politika to neprasa. Aktīvam vietējam lietotājam pietiek ar savu sesiju.
Versiju pazemināšanas triku atrada AI skeneris
Vieglākais no desmit, GHSA-q4gr-vc25-57m5 ar bīstamības vērtējumu 5,4, apiet aizsardzību pret versiju pazemināšanu. Nepriviliģēts lietotājs izsauc sistēmas palīga metodi RemoveLocalRef un izdzēš attālās krātuves atsauci uz lietotni. Pēc tam pārbaude vairs neatrod datumu, pēc kura salīdzināt versijas. Daudzlietotāju datorā uzbrucējs tādā veidā var atgriezt sistēmas lietotni vecā, neielāpotā versijā, ko pēc tam palaiž kāds cits lietotājs.
Labojums maina divas lietas. Izvietošana tagad atkāpjas uz izvietotās atsauces revīziju, kad versiju maina uz augšu vai leju. Sistēmas palīgs vairs neļauj dzēst izvietotas atsauces. Šo kļūdu ziņoja BreachX Zero Day Labs pētnieks Viveks Parikhs. Atradumu deva rīks Typhon AI Mil v2.
Šis nav pirmais simbolisko saišu gadījums Flatpak vēsturē. Agrāk šogad tika izlabota CVE-2026-34078 ar bīstamības vērtējumu 9,3, kur Flatpak portāls pieņēma sandbox-expose ceļus, kas varēja būt lietotnes kontrolētas saites uz patvaļīgām vietām. Šis labojums nonāca versijā 1.16.4. Modelis atkārtojas: Flatpak pieņem ceļu no lietotnes, pārbauda to kā tekstu, pēc tam kodols saiti izseko līdz pavisam citai vietai failu sistēmā.
Pārējie septiņi caurumi
Atlikušie brīdinājumi ir vienas ģimenes locekļi. Ceļa apiešana un simboliskās saites vietās, kur Flatpak strādā ar root tiesībām:
- patvaļīgs ieraksts ar root tiesībām extra-data izpakošanā;
- patvaļīgs ieraksts ar root tiesībām komandā
flatpak build-init; - resursdatora failu lasīšana caur cieto saišu ceļa apiešanu OCI arhīvu izpakošanā;
- ceļa apiešana caur nepārbaudītu arhitektūras parametru metodē
DeployAppstream; - bufera pārpilde OCI delta plūsmas ceļu nosaukumos uz 32 bitu sistēmām;
- ieraksts ar fiksētu faila nosaukumu patvaļīgā vietā caur simbolisko saiti uz
.ld.so; - paplašinājumu metadatu ceļa apiešana, kas ļauj aptaustīt resursdatora failu sistēmu un piesaistīt mapes neparedzētās vietās.
Bufera pārpilde uz 32 bitu sistēmām mūsdienu darbvirsmās gandrīz nevienu neskar, taču ARM iekārtās un vecākos rūpnieciskos datoros 32 bitu Flatpak vēl darbojas. Pārējie seši brīdinājumi ir aktuāli visiem.
Papildus drošībai laidiens salabo deviņas parastas kļūdas. To vidū ir regresija flatpak-spawn vides mainīgo apstrādē portālā un portāla atjauninājumu novērotāja avārijas.
Distributīvi atjauninājumu vēl nav izplatījuši
Savu versiju var pārbaudīt ar flatpak --version. Uz raksta tapšanas brīdi Fedora un citi distributīvi, kas Flatpak piegādā pēc noklusējuma, versiju 1.18.1 savās stabilajās laidienu krātuvēs vēl nebija ielikuši. Par to ziņo Linuxiac, piebilstot, ka lielākā daļa lietotāju atjauninājumu saņems tikai tad, kad to iepakos distributīva uzturētāji.
Uzbrukumam visos gadījumos nepieciešama vai nu ļaunprātīga Flatpak lietotne, vai vietējs konts uz datora. Attālu izmantošanu bez tā neviens no desmit brīdinājumiem neapraksta. Publiski pieejamu izmantošanas gadījumu pagaidām nav.
Kam kāda iemesla dēļ 1.18 zars nav pieejams, labojumi ir pārnesti arī uz uzturēto 1.16.x zaru. Pilns saraksts ar visiem desmit brīdinājumiem ir 1.18.1 laidiena piezīmēs.
Komentāri
Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.