Уязвимость отказа в обслуживании в OpenVPN

    image
    В OpenVPN < 2.3.6 обнаружена уязвимость, которая позволяет аутентифицированным клиентам удаленно уронить VPN-сервер, т.е. выполнить атаку отказа в обслуживании.
    Уязвимость заключается в некорректном использовании assert(): сервер проверяет минимальный размер control-пакета от клиента именно этой функцией, из-за чего сервер аварийно завершится, если получит от клиента control-пакет длиной менее 4 байт.
    Следует отметить, что для совершения атаки достаточно установить коммуникацию через control channel, т.е. в случае с TLS, сам TLS-обмен. VPN-провайдеры, которые реализуют аутентификацию с использованием логина/пароля и общего TLS-ключа, подвержены уязвимости еще до стадии проверки логина и пароля.

    Уязвимость имеется во всех версиях OpenVPN второй ветки, т.е. начиная, как минимум, с 2005 года. Ветка OpenVPN 3, на которой основаны мобильные клиенты, не подвержена данной уязвимости.

    Следует либо обновиться до версии 2.3.6, либо наложить патч на вашу версию OpenVPN.

    Уязвимости присвоен CVE-номер CVE-2014-8104.

    Security Announcement с описанием уязвимости
    Сообщение на форуме
    CVE-2014-8104
    Последняя версия OpenVPN
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 5

      +5
      Это просто феерично — целенаправленно самоубиваться после получения от клиента неправильных данных.
      Про принцип не доверять данным, полученным от клиента они слышали, но поняли его по-своему…
        0
        Это не целенаправленное самоубиение, это опечатка, перешедшая по наследству из дебажного кода.
        –4
        Судя по патчу, проблема решалась заменой ASSERT на if. Что характерно, в исходном коде есть 58 файлов, в которых используется этот потенциально опасный макрос ASSERT.
          0
          Тоже использую assert() к месту и не к месту, полез проверять :(
          Вообще хорошая штука, не для продакшн конечно
            +5
            Я тут сделал PoC и случайно VPN-сервис. Полностью!

            Only users with full accounts can post comments. Log in, please.