E2fsck:n haavoittuvuus, kun käsitellään erityisesti suunniteltuja hakemistoja

Paketin osana toimitetussa e2fsck-apuohjelmassa e2fsprogs, tunnistettu haavoittuvuus (CVE-2019-5188), jonka avulla voit suorittaa hyökkääjän koodin, kun tarkastat tiedostojärjestelmää, joka sisältää erityisesti suunniteltuja hakemistoja. Haavoittuvuus vahvistettiin julkaisuissa 1.43.3–1.45.4. Haavoittuvuus korjattu päivityksessä e2fsck 1.45.5. Jakelusarjoissa ongelma on edelleen korjaamatta (Debian, Arch Linux, SUSE / openSUSE, Ubuntu, RHEL).

Haavoittuvuus johtuu virheestä rehash.c-tiedoston mutate_name()-funktiossa, jota käytetään hakemistoon liittyvien hajautustaulukoiden uudelleenrakentamisen yhteydessä varmistaen, että kaikki hakemiston tiedostot täsmäävät hakemistoon. Hakemistoon liittyvän hash_entry-rakenteen vioittuminen voi johtaa siihen, että hyökkääjä kirjoittaa tietoja varatun puskurin ulkopuolelle. Jos useat samannimiset tiedostot tunnistetaan hajautustaulukossa linkitetyiksi hakemistoon, e2fsck-apuohjelma nimeää kaksoistiedostot uudelleen lisäämällä nimeen ~0, ~1 jne.. Uuden nimen tallentamiseksi väliaikaisesti tällaisen uudelleennimeämisen aikana pinoon varataan puskuri, jonka koko on 256 tavua.

Kopioitavien tietojen koko määräytyy lausekkeella "entry->name_len & 0xff", mutta merkintä->nimi_len arvo ladataan levyllä olevasta rakenteesta sen sijaan, että se laskettaisiin nimen todellisesta koosta. Jos koko on nolla, taulukkoindeksi saa arvon -1 ja luodaan ehdot kokonaislukujen ylivuodolle puskurin alarajan läpi (kokonaisluvun alivuoto) ja pinon muiden tietojen päällekirjoittamiseen arvolla "~0". 64-bittisissä järjestelmissä haavoittuvuuden hyödyntäminen arvioidaan epätodennäköiseksi, eikä se vaadi pinon koon rajoituksia (ulimit -s unlimited). 32-bittisissä järjestelmissä hyväksikäyttöä pidetään mahdollisena, mutta tulos riippuu suuresti siitä, kuinka kääntäjä käänsi suoritettavan tiedoston.

Suorittaakseen hyökkäyksen hyökkääjän on korruptoitava tiedot tietyllä tavalla osiossa ext2-, ext3- tai ext4-tiedostojärjestelmällä. Koska tämä toiminto edellyttää pääkäyttäjän oikeuksia, haavoittuvuus muodostaa uhan, kun e2fsck-apuohjelma skannaa ulkoisia asemia tai ulkoisesti vastaanotettuja FS-tiedostoja.

Lähde: opennet.ru

Lisää kommentti