7-Zip i archiwa RAR – wykonanie kodu przez rozpakowanie złośliwego archiwum

02 maja 2018, 13:22 | W biegu | komentarzy 5
Tagi: , ,
: zin o bezpieczeństwie - pobierz w pdf/epub/mobi.

Użytkownicy 7-Zip powinni zweryfikować, czy korzystają z wersji oznaczonej numerem 18.05 wydanej pierwszego maja. Ta wersja programu do kompresji danych łata podatność związaną z obsługą archiwów RAR. Według informacji opublikowanej przez odkrywcę podatności, zmuszając 7-Zip do rozpakowania odpowiednio spreparowanego archiwum, można doprowadzić do wykonania dowolnego kodu, a co za tym idzie przejąć kontrolę nad maszyną, na której uruchomiona jest podatna wersja oprogramowania.

Sama podatność związana jest z niepoprawnym sposobem inicjalizacji pamięci oraz zależnościami jakie 7-Zip dzieli z UnRAR. Nie bez znaczenia jest również fakt, że jeszcze do niedawna większość plików wykonywalnych 7-Zip była dostarczana bez aktywnej obsługi ASLR. Sytuacja poprawiła się w wersji 18.00, a dodatkowe zabezpieczenia zostały włączone w wersji 18.05.

Poniżej PoC przygotowany przez autora podatności.

(Źródło: https://landave.io/2018/05/7-zip-from-uninitialized-memory-to-remote-code-execution/)

– piochu

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

  1. Czy podatność dotyczy też Linuksowego portu p7zip?

    Odpowiedz
    • CDeB

      Przyłączam się do pytania…

      Odpowiedz
  2. zero one

    Dopadło mojego umiłowanego 7-zip’ka ;-(

    Odpowiedz
  3. Michał

    Warto wspomnieć o ignoranckiej postawie autora 7-zip w kwestii bezpieczeństwa:

    „I have discussed this issue with Igor Pavlov and tried to convince him to enable all three flags. However, he refused to enable /DYNAMICBASE because he prefers to ship the binaries without relocation table to achieve a minimal binary size. Moreover, he doesn’t want to enable /GS, because it could affect the runtime as well as the binary size. At least he will try to enable /NXCOMPAT for the next release. Apparently, it is currently not enabled because 7-Zip is linked with an obsolete linker that doesn’t support the flag.”

    czyli w skrócie: brak ASLR i stack cookies by design, DEP „wkrótce”.

    Odpowiedz
    • zero one

      :-|

      Odpowiedz

Odpowiedz na Phitherek_