Незакрытая в течение 19 лет уязвимость WinRar позволяет разместить распакованный файл в произвольном месте +9





Специалисты по кибербезопасности из компании Check Point обнаружили серьезную уязвимость в архиваторе WinRar. Затем они же показали, как при помощи этой уязвимости можно распаковать файл в произвольное место — совсем не то, которое указывает пользователь.

Ну а поскольку пользователей архиватора около полумиллиарда, то эта уязвимость угрожает всем. Стоит отметить, что проблема, о которой идет речь, существует уже 19 лет, уязвимость за это время никто не закрыл.

Специалисты, которые обнаружили проблему, сначала уведомили разработчиков WinRar и те закрыли «дыру». И только после этого представители Check Point изложили детали в сети, рассказав о технических подробностях уже ликвидированной уязвимости.



Как оказалось, проблема связана с библиотекой UNACEV2.DLL. Она входит в состав дистрибутива практически всех версий архиватора уже очень много лет. Последний раз обновление библиотеки выполнялось в 2005 году. Отвечает она за распаковку архивов в формате ACE (которые, к слову, встречаются не так и часто). Понятно, что за время, прошедшее с момента обновления библиотеки в мире информационных технологий произошло много всего, а скрытую уязвимость смогли обнаружить без особых проблем.

Для того, чтобы распаковать свой файл в произвольное место требуется сформировать архив ACE. Лишь этот путь позволит обойти указанную пользователем директорию распаковки. Специалисты по информационной безопасности смогли разместить зловредное ПО в директории Startup, откуда вредонос будет запускаться при каждой загрузке системы.


Проблема не единичная, специалисты обнаружили сразу несколько уязвимостей (CVE-2018-20250, CVE-2018-20251, CVE-2018-20252 и CVE-2018-20253). Но их ликвидировали в релизе WinRAR 5.70 Beta 1. Стоит отметить, что решение было оригинальным. В связи с тем, что исходный код библиотеки UNACEV2.DLL оказался утрачен много лет назад, его решили не возобновлять. Никто не проводил реверс-инжиниринг библиотеки, разработчики полностью отказались от поддержки формата ACE.

Создатели WinRar посоветовали пользователям установить обновление как можно быстрее, кроме того, специалисты по информационной безопасности рекомендуют не открывать архивы ACE, хотя бы те, что получены от незнакомых отправителей. Вполне может быть, что злоумышленники, которые узнали о проблеме, станут распространять зараженные архивы, что приведет к заражению большого количества пользовательских машин.

Сейчас неизвестно, использовалась ли эта уязвимость злоумышленниками ранее или нет. Но, как и говорилось выше, полмиллиарда пользователей архиватора под угрозой.

Стоит отметить, что уязвимости нулевого дня, подобные этой, охотно скупают компании, которые занимаются приобретением технологий для различных государств и военных. Одна из организаций, которая вполне официально занимается скупкой уязвимостей и эксплоитов, является Zerodium. Относительно недавно она повысила награду за работающие инструменты взлома WhatsApp и iMessage, с нескольких сотен тысяч долларов США до $1 млн.

«Приложения по обмену сообщениями, включая WhatsApp, иногда работают в качестве коммуникационного канала для злоумышленников, а шифрование усложняет получение необходимых данных спецслужбами», — говорит основатель Zerodium Чауки Бекрар.

Клиентами этой организации были такие государственные подразделения, как Equation Group (FiveEyes, Tilded Team) и Animal Farm (Snowglobe). Стоит отметить, что в Zerodium и другие подобные компании обращаются не только покупатели, но и продавцы — в том числе, специалисты по кибербезопасности, желающие продать обнаруженную уязвимость задорого. Да, многие поставщики программных и аппаратных продуктов имеют собственную баунти-программу, но здесь есть две проблемы. Первая — вознаграждение выплачивается далеко не всегда. Вторая — размер вознаграждения баунти-программы и Zerodium могут отличаться в разы, причем далеко не в пользу программ.

Вы можете помочь и перевести немного средств на развитие сайта



Комментарии (56):

  1. Wesha
    /#19787922

    разработчики полностью отказались от поддержки формата ACE.

    Где-то грустно вздохнули те, кто надцать лет назад запаковал свои драгоценные файлы в архивы этого формата. Когда они полезут их открывать, их ждёт сюрприз.

    • click0
      /#19787988

      Еще есть PeaZip, поддерживающий ACE.

    • LoadRunner
      /#19788772

      А что, уже запретили скачивать предыдущие версии, где поддержка есть?

      • Wesha
        /#19791960

        Скачивать не запретили — просто они больше не развиваются, и неизвестно, будут ли они запускаться в Windows 2030.

  2. VitalKoshalew
    /#19787990 / +1

    Стоит заметить, что на многих ресурсах упоминается возможность переименовать .ace в .rar и непатченный WinRAR такой архив откроет, так что нельзя полагаться на то, что вы увидите, что пришёл файл .ace и не будете его открывать — может прийти как раз .rar. Так что или ставить бету WinRAR или удалять WinRAR и ставить 7Zip.

    • akhalat
      /#19788148

      Стоит заметить, что на многих ресурсах упоминается возможность переименовать .ace в .rar и непатченный WinRAR такой архив откроет,


      Проверил ради интереса, winrar ругается на формат архива при таком переименовании, но всё-таки сам архив открывает, да.

      Так что или ставить бету WinRAR или удалять WinRAR

      Или просто вручную снести из своей версии винарара UNACEV2.DLL. В таком случае он ACE-архивы всё ещё открывает и содержимое показывает, но ничего распаковать уже будет не в состоянии.

  3. fmj
    /#19788206

    Так себе уязвимость. Сам winrar же не выполняет произвольный код. А проблема с запуском извлеченных файлов решается правами, srp или applocker-ом.

    • alexanster
      /#19788270 / +1

      Ну кто из обычных пользователей будет этим страдать? Полмиллиарда установок — это же не только корпоративный сектор.

      • fmj
        /#19789148

        «Обычные пользователи», к сожалению, тупо сидят из-под админа(еще и с выключенным uac) и у них дырень в любом ПО = доступ ко всей системе.

    • mayorovp
      /#19788518 / +1

      А исполняемый файл распаковывать и не обязательно. Можно подменить какой-нибудь важный конфиг.

      Кстати, srp и applocker не спасают от программ на java, .net core, python, js, ruby, а также, возможно, от rust и go если ставить их в исходниках (разумеется, только если эти штуки уже установлены на компьютере).

      • fmj
        /#19789168 / -1

        А исполняемый файл распаковывать и не обязательно. Можно подменить какой-нибудь важный конфиг.

        Какой? Системные конфиги, например, перезаписать прав не хватит.

        Кстати, srp и applocker не спасают от программ на java, .net core, python, js, ruby

        Насчет js — ложь. java тоже можно добавить в список. С остальным дел не имел.

        • mayorovp
          /#19789416

          В какой список вы собрались добавлять java?

          • fmj
            /#19789426

            В список расширений srp. Также туда можно добавить js, чтобы wscript не выполнял его откуда попало.

            • mayorovp
              /#19789676

              Каких таких расширений? Объясните, какое такое "расширение" srp позволит сделать так, чтобы команда java -jar c:\trusted\foo.jar работала, а команда java -jar c:\untrusted\bar.jar — нет?


              Дополнительное условие: команда java -jar c:\trusted\baz.jar c:\untrusted\data.txt тоже должна работать.

              • fmj
                /#19789920

                Каких таких расширений?

                файловых.

                чтобы команда java -jar c:\trusted\foo.jar работала, а команда java -jar c:\untrusted\bar.jar — нет?

                Дополнительное условие: команда java -jar c:\trusted\baz.jar c:\untrusted\data.txt тоже должна работать.

                В статье пишут про помещение в автозагрузку — от этого srp спасает(не запускается и пишет в лог). Как вы собрались помещением файла в каталог вызвать выше написанный код(java -jar /****/)?

                Если бы дырень была, в том, что код выполнялся в самом WinRAR, то тут ничего из мною перечисленного бы не помогло.

                P.S. если кто-то использует srp, отбирайте права у пользователей на выполнение mshta.

                • mayorovp
                  /#19789986

                  В автозагрузку можно положить ярлык, а там внутрях уже прописать всё что нужно.

                  • fmj
                    /#19790036

                    ярлыки по-дефолту контролируются srp.

                    • mayorovp
                      /#19790074

                      И как это поможет? Напомню, ярлык на java.exe с параметрами -jar c:\trusted\baz.jar в автозагрузке должен работать, это важное корпоративное приложение!

                      • fmj
                        /#19790098 / -1

                        Добавьте его(ваше приложение) в разрешающий список по хэшу или сертификату. И почему вашему корпоративному приложению надо авто загружаться ярлыком?

                        • mayorovp
                          /#19790138

                          Вы не объяснили как будете отделять java -jar c:\trusted\foo.jar от java -jar c:\untrusted\bar.jar.


                          И почему вашему корпоративному приложению надо авто загружаться ярлыком?

                          Потому что производитель по-другому не умеет.

                          • fmj
                            /#19790150

                            Вы не объяснили как будете отделять java -jar c:\trusted\foo.jar от java -jar c:\untrusted\bar.jar


                            Вы это собрались в ярлыке прописывать или где?

                            • mayorovp
                              /#19790174

                              В ярлыке. А вы что, собрались считать хеш у ярлыка? Нет, это не сработает: ярлык у корпоративного приложения генерируется при установке и каждом обновлении, замаетесь каждый раз новый хеш подсчитывать.

                              • fmj
                                /#19790210

                                В ярлыке. А вы что, собрались считать хеш у ярлыка? Нет, это не сработает: ярлык у корпоративного приложения генерируется при установке и каждом обновлении, замаетесь каждый раз новый хеш подсчитывать.

                                Самим прописать автозагрузку через реестр, добавить в белый список ваш .jar по хешу или сертификату.

                                • mayorovp
                                  /#19790234

                                  Я всё еще не понимаю как вы собираетесь добавлять в список именно jar, а не java.exe

                                  • fmj
                                    /#19790242

                                    Просто добавляете правило(можно по сертификату ли хэшу) на ваш .jar файл.

                                    у нас java-по так и работает, потому что сохраняет в свой каталог и поэтому сидит не в prg files, а в appdata у пользователя.

                                    • mayorovp
                                      /#19790252

                                      … и как оно будет работать?

                                      • fmj
                                        /#19790278

                                        ?

                                        если нет в белом списке, то никак. Понятно, что не в случае запуска через, например, конструкции «java -jar …». Но эту строку надо еще через что-то запустить, а в статье просто помещение файла в автозагрузку.

                                        • mayorovp
                                          /#19790304

                                          Вы постоянно забываете, что обычные программы на Java могут быть запущены только через java.exe или javaw.exe

                                          • fmj
                                            /#19790338

                                            И? От запуска через «java -jar …» srp не спасет, но от запуска через автозагрузку спасет и ярлыки можно запретить. Понятно, что если вам приходится иметь дело с таким кривым софтом, который только через ярлыки в автозагрузке работает, то тут как-то все настроить и не получится.

                                            • mayorovp
                                              /#19790346

                                              Вот вы запретили ярлыки. Как теперь пользователь должен запускать программы?

                                              • fmj
                                                /#19790372

                                                можно симлинки сделать.

                                                • mayorovp
                                                  /#19790404

                                                  Симлинк на java -jar ...? Увы, работать не будет.

                                                  • fmj
                                                    /#19790426 / -1

                                                    на сам .jar файл.

                                                    • mayorovp
                                                      /#19790460

                                                      А как оно будет работать-то?

                                                      • fmj
                                                        /#19790898

                                                        с вылетом ). ок, не прав я насчет явы и симлинков. Но от описанного в статье можно защититься тупо в каталоге автозагрузки отобрать права на запись. И показанное в видео не пройдет.

        • mayorovp
          /#19790244

          Да, к слову о конфигах. Таким способом можно устанавливать расширения для браузеров.

          • fmj
            /#19790296

            Даже если на расширения тоже белый список через групповую политику?

    • Duss
      /#19788682

      Вспомните, когда последний раз сами распаковывали какой нибудь архив (просто посмотреть, не пытаясь что то из него запустить), скачанный с любого сайта и представьте, что он мог незаметно поместить что то в автозагрузку.
      (Причём владелец сайта может быть и не в курсе о происходящем, а сайт вполне себе безобидный)
      Лично я ужаснулся и пошлёт сканировать систему.

      Ps А Вы сами пользуетесь указанными программами?

      Pss. Хуже всего, что вин пар не распространяет апдейты на архиватор, т.е. в безопастности только те, кто сам зайдёт на их сайт и скачать новую версию. А архиватор, это то, что поставил и забыл.

      • fmj
        /#19789198 / -1

        Вспомните, когда последний раз сами распаковывали какой нибудь архив (просто посмотреть, не пытаясь что то из него запустить), скачанный с любого сайта и представьте, что он мог незаметно поместить что то в автозагрузку.

        Ну поместит. Дальше то что?

        А Вы сами пользуетесь указанными программами?

        WinRAR-ом? нет. Или вы про srp с applocker-ом? srp активно пользуюсь.
        я просто не понимаю паники: если бы, например, сам WinRAR начинал выполнять произвольный код, то да — дырень.

        Хуже всего, что вин пар не распространяет апдейты на архиватор, т.е. в безопастности только те, кто сам зайдёт на их сайт и скачать новую версию. А архиватор, это то, что поставил и забыл.

        То что, нет апдейтов, это очень плохо, согласен.

      • amarao
        /#19789498

        apt-cache policy unrar
        unrar:
          Installed: 1:5.6.6-1
          Candidate: 1:5.6.6-1
          Version table:
         *** 1:5.6.6-1 500
                500 http://archive.ubuntu.com/ubuntu disco/multiverse amd64 Packages
                100 /var/lib/dpkg/status

        (ещё раз о пользе дистрибутивов по сравнению с "скачал исполняемый файл, установил и забыл").

  4. we1
    /#19788570 / -2

    А я несколько лет назад поставил бесплатный китайский «клон» KuaiZip, и он меня очень даже радует.

  5. DrGluck07
    /#19788584 / +1

    Хм, полмиллиарда пользователей, цена от 20 долларов… Да эти парни миллиардеры!

    • NickViz
      /#19789064

      угу угу. вы лично (если пользуетесь) уже купили, да? :-) ну вот и остальные так же.

      • DrGluck07
        /#19789736

        Много лет пользуюсь 7zip. Если бы нужно было обязательно использовать именно WinRar, то купил бы. Но обычно стараюсь найти бесплатное/свободное решение.
        Правда вынужден признаться, что в лихие бандитские времена (в конце 90-х начале 2000-х) я часто снимал защиту с винрара, винзипа, винампа, и т.д. Снимал ASProtect и прочие защиты. Чисто для себя, в качестве тренировки, никогда это не распространял. Сейчас эти умения периодически пригождаются в моей работе.

        • JerleShannara
          /#19791002

          А зачем с винрара было снимать защиты, онж как и тотал командер всего-то просил купить, особо ничего не вырезая (кроме подписей архивов).

          • DrGluck07
            /#19791316

            Для тренировки же, чтоб он себя лицензионным считал. Мне было вообще всё равно что кракать. Я был молод и мне нужны были день безумные умения. Как ни странно, это всё весь помогает когда нужно что-то отладить на железе, а из всех возможностей один светодиод и бинарник прошивки.

  6. ainoneko
    /#19788768 / -1

    Так вот как «RAR используют козлы»?

    • Andy_U
      /#19789600 / +1

      O, кто-то еще помнит FIDO :)

  7. Vitalley
    /#19789134

    Теперь еще один довод появился, почему не планирую на другие ОС — часть исходников то потеряна

  8. Mingun
    /#19791470

    Остаётся понять, зачем сегодня нужен WinRar, если есть простой, удобный, бесплатный и свободный 7z? Который и жмёт к тому же (немного, конечно, но всё же) чуть лучше.

    • Mur81
      /#19791940 / +1

      Например у меня под WinRAR написаны хитрые скрипты для архивации. Не знаю можно ли работать с 7-zip из командной строки (наверняка да), но мне просто тупо лень их переписывать.
      В остальном действительно не понятно зачем он нужен. Тем более если еще быть честным и покупать его — он стоит $29 + НДС. Очень нарядно скажу я вам.

      • Mingun
        /#19792018

        Однозначно можно. Я уже давно все манипуляции с архивами провожу из Far'а и до билда 1722 эти манипуляции проводились через встроенный в него плагин Multiarc, а он как раз и работал через 7z посредством передачи ему команд через командную строку (в новых Far'ах работа с архивами ведётся «напрямую» (плагин arclite) через библиотеку 7z.dll, так что надобность в отдельном exe'шнике отпала).

    • stalinets
      /#19793988

      Ну я вот часто сталкиваюсь с таким багом. Открываю архив с фотками в 7-zip и двойным кликом хочу открыть какую-нибудь фотку. Под капотом она сначала распаковывается куда-то, а потом винда открывает её в программе по умолчанию.
      Так вот, в случае 7-zip открывается просмотрщик картинок windows, но фотка в нём не открывается. Чтобы посмотреть, нужно сначала перетащить фотку из архива в какую-нибудь папку и оттуда уже руками открыть. Это напрягает.
      А если открыть архив в WinRar, то по двойному клику картинки нормально открываются.
      Сталкивался с этим на Win7 и Win10.

      И ещё у 7-zip бывает корявая работа с большими и нестандартно упакованными архивами. Например, у меня личные фотки и документы запакованы в большие многогигабайтные rar-архивы, solid-типа, под паролем, с добавленной инфой для восстановления и прочим.
      WinRar, в котором они создавались, открывает без проблем (ну, немного потупит, читая десятки тысяч файлов в большом архиве). А вот 7-zip может не справиться. Или вылетит, или зависнет, или ещё что-то.

  9. kav4ik
    /#19792518 / +1

    Теперь мне понятно, почему на корп. почту приходит спам с архивами *.ace. П.С. уже как года два приходит.

  10. Maccimo
    /#19795768

    Отличный пример того, почему статьи следует читать в оригинале.


    Здесь — концентрированная выжимка желтизны (19 лет!, пиццот мильёнов жертв!, мы все умрём!!11!)


    В оригинале (https://research.checkpoint.com/extracting-code-execution-from-winrar/) — довольно подробное описание того, как эта уязвимость была найдена.