Сообщество - Проект OpenNet

Проект OpenNet

18 постов 154 подписчика
60

Уязвимость в ImageMagick, приводящая к утечке содержимого локальных файлов

Уязвимость в ImageMagick, приводящая к утечке содержимого локальных файлов

В пакете ImageMagick, который часто используется web-разработчиками для преобразования изображений, выявлена уязвимость CVE-2022-44268, которая может привести к утечке содержимого файлов в случае преобразования при помощи ImageMagick подготовленных атакующим PNG-изображений. Уязвимость угрожает системам, которые обрабатывают внешние изображения и затем дают возможность загрузить результаты преобразования.

Уязвимость вызвана тем, что при обработке PNG-изображения ImageMagick использует содержимое параметра "profile" из блока метаданных для определения имени файла с профилем, который включается в результирующий файл. Таким образом, для атаки достаточно добавить к PNG-изображению параметр "profile" с необходимым файловым путём (например, "/etc/passwd") и при обработке подобного изображения, например, при изменении размера картинки, в выходной файл будет включено содержимое необходимого файла. Если вместо имени файла указать "-", то обработчик зависнет в ожидании ввода из стандартного потока, что можно использовать для осуществления отказа в обслуживании (CVE-2022-44267).

Обновление с исправлением уязвимости пока не выпущено, но разработчики ImageMagick рекомендовали в качестве обходного пути для блокирования утечки создать в настройках правило, ограничивающее доступ к определённым файловым путям. Например для запрета доступа по абсолютным и относительным путям в policy.xml можно добавить:

<policy domain="path" rights="none" pattern="/*"/> <policy domain="path" rights="none" pattern="../*"/>

В открытом доступе уже размещён скрипт для формирования эксплуатирующих уязвимость PNG-изображений.

Показать полностью
86

Сбои в системах сборки из-за изменения контрольных сумм архивов в GitHub

Сбои в системах сборки из-за изменения контрольных сумм архивов в GitHub

GitHub изменил метод формирования автоматически генерируемых архивов ".tar.gz" и ".tgz" на страницах с релизами, что привело к изменению их контрольных сумм и массовым сбоям в автоматизированных системах сборки, которые для подтверждения целостности осуществляют сверку загружаемых с GitHub архивов с ранее сохранёнными контрольными суммами, например, размещёнными в метаданных пакетов или в сборочных сценариях.

Начиная с выпуска 2.38 в инструментарии Git была включена по умолчанию встроенная реализация gzip, которая позволяла унифицировать поддержку данного метода сжатия в разных операционных системах и повысить производительность создания архивов. GitHub подхватил изменение после обновления версии git в своей инфраструктуре. Проблему вызвало то, что сжатые архивы, генерируемые встроенной реализацией gzip на базе zlib, бинарно отличаются от архивов, созданных утилитой gzip, что привело к отличию контрольных сумм для архивов, созданных разными версиями git при выполнении команды "git archive".

Соответственно, после обновления git в GitHub на страницах релизов стали отдаваться немного другие архивы, не проходящие проверку по старым контрольным суммам. Проблема проявилась в различных сборочных системах, системах непрерывной интеграции и в инструментариях сборки пакетов из исходных текстов. Например, нарушилась сборка около 5800 портов FreeBSD, исходные тексты для которых загружались из GitHub.

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

Разработчики Git пока не пришли к какому-то решению и лишь обсуждают возможные действия. Рассматривались такие варианты, как откат на использование утилиты gzip по умолчанию; добавление флага "--stable" для сохранения совместимости со старыми архивами; привязка встроенной реализации к отдельному формату архива; использование утилиты gzip для старых коммитов и встроенной реализации для коммитов, начиная с определённой даты; гарантирование стабильности формата только для несжатых архивов.

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

Показать полностью
13

Выпуск OpenSSH 9.2 с устранением уязвимости, проявляющейся на этапе до аутентификации

Выпуск OpenSSH 9.2 с устранением уязвимости, проявляющейся на этапе до аутентификации

Опубликован релиз OpenSSH 9.2, открытой реализации клиента и сервера для работы по протоколам SSH 2.0 и SFTP. В новой версии устранена уязвимость, приводящая к двойному освобождению области памяти на стадии до прохождения аутентификации. Уязвимости подвержен только выпуск OpenSSH 9.1, в более ранних версиях проблема не проявляется.

Для создания условий проявления уязвимости достаточно изменить баннер SSH-клиента на "SSH-2.0-FuTTYSH_9.1p1" для того, чтобы добиться выставления флагов "SSH_BUG_CURVE25519PAD" и "SSH_OLD_DHGEX", зависящих от версии SSH-клиента. После выставления данных флагов память под буфер "options.kex_algorithms" освобождается два раза - при выполнении функции do_ssh2_kex(), вызывающей compat_kex_proposal(), и при выполнении функции do_authentication2(), вызывающей по цепочке input_userauth_request(), mm_getpwnamallow(), copy_set_server_options(), assemble_algorithms() и kex_assemble_names().

Создание рабочего эксплоита для уязвимости считается маловероятным, так как процесс эксплуатации слишком усложнён - современные библиотеки распределения памяти предоставляют защиту от двойного освобождения памяти, а процесс pre-auth, в котором присутствует ошибка, выполняется с пониженными привилегиями в изолированном sandbox-окружении.

Кроме отмеченной уязвимости в новом выпуске также устранены ещё две проблемы с безопасностью:

  • Ошибка при обработке настройки "PermitRemoteOpen", приводящая к игнорированию первого аргумента, если он отличается от значений "any" и "none". Проблема проявляется в версиях новее OpenSSH 8.7 и приводит к пропуску проверки при указании только одного полномочия.

  • Атакующий, контролирующий DNS-сервер, используемый для определения имён, может добиться подстановки спецсимволов (например, "*") в файлы known_hosts, если в конфигурации включены опции CanonicalizeHostname и CanonicalizePermittedCNAMEs, и системный резолвер не проверяет корректность ответов от DNS-сервера. Проведение атаки рассматривается как маловероятное, так как возвращаемые имена должны соответствовать условиям, заданным через CanonicalizePermittedCNAMEs.

Другие изменения:

  • В ssh_config для ssh добавлена настройка EnableEscapeCommandline, управляющая включением обработки на стороне клиента escape-последовательности "~C", предоставляющей командную строку. По умолчанию обработка "~C" теперь отключена для использования более жёсткой sandbox-изоляции, что потенциально может привести к нарушению работы систем, в которых "~C" используется для перенаправления портов во время работы.

  • В sshd_config для sshd добавлена директива ChannelTimeout для задания таймаута неактивности канала (каналы, в которых за указанное в директиве время не зафиксирован трафик, будут автоматически закрыты). Для сеанса, X11, агента и перенаправления трафика могут быть заданы разные таймауты.

  • В sshd_config для sshd добавлена директива UnusedConnectionTimeout, позволяющая задать таймаут для завершения клиентских соединений, находящихся определённое время без активных каналов.

  • В sshd добавлена опция "-V" для вывода версии по аналогии с подобной опцией в клиенте ssh.

  • В вывод "ssh -G" добавлена строка "Host", отражающая значение аргумента с именем хоста.

  • В scp и sftp добавлена опция "-X" для управления такими параметрами протокола SFTP, как размер буфера копирования и число ожидающих завершения запросов.

  • В ssh-keyscan разрешено сканирование полных CIDR-диапазонов адресов, например, "ssh-keyscan 192.168.0.0/24".

Показать полностью
116

В ходе атаки на GitHub захвачены ключи для подписи приложений GitHub Desktop и Atom

В ходе атаки на GitHub захвачены ключи для подписи приложений GitHub Desktop и Atom

GitHub раскрыл сведения о компрометации репозиториев, в которых велась разработка приложений GitHub Desktop и Atom. Среди прочего, атакующим удалось получить доступ к сертификатам, используемым в GitHub Actions при заверении публикуемых релизов GitHub Desktop для macOS и Atom цифровой подписью. Так как ключи были дополнительно зашифрованы с использованием паролей, их использование для вредоносных действий оценивается как маловероятное, тем не менее GitHub принял решение отозвать проблемные сертификаты, что приведёт к неработоспособности некоторых версий GitHub Desktop и Atom, начиная со 2 февраля.

По заверению GitHub атака ограничилась только указанными репозиториями и инфраструктура проекта не пострадала. Доступ был получен с использованием персонального токена (PAT, Personal Access Token), привязанного к учётной записи одного из разработчиков.

Показать полностью
6

В Wine добавлена поддержка HDR для Vulkan

В Wine добавлена поддержка HDR для Vulkan

В код Vulkan-драйвера для Wine добавлена поддержка Vulkan-расширения VK_EXT_hdr_metadata, предназначенного для обработки метаданных расширенного динамического диапазона (HDR), включающих сведения о первичных цветах, точке белого и диапазоне яркости, в составе виртуальных фреймбуферов (SwapChain) Vulkan. Предложенный патч для Wine необходим для работы с HDR в играх, работающих на основе графического API Vulkan, таких как Doom Eternal, а также в играх на основе графического API Direct3D с поддержкой HDR, использующих DXVK или VKD3D-Proton, которые "на лету" преобразуют вызовы Direct3D в системные вызовы Vulkan.

Компания Valve уже использовала предложенный патч в составе своей сборки Proton на основе Wine, но теперь он официально стал частью Wine 8.1+, а затем войдёт в состав стабильной версии Wine 9.0, которая ожидается в январе 2024 года. Разработка ведётся компанией Valve в рамках проекта по обеспечению поддержки HDR-игр, которая в настоящее время ограничена композитным сервером Gamescope, разрабатываемый и используемый для запуска игр на портативной игровой консоли Steam Deck. В настоящее время во всех других композитных серверах для Wayland, включая GNOME Mutter и KDE Kwin, отсутствует поддержка HDR и нет точных данных, когда конкретно такая поддержка в них появится. Появление поддержки HDR для X.org оценивается как маловероятное, так как развитие протокола X11 последние годы прекращено и разработка ограничивается сопровождением.

Показать полностью 1
5

Обновление LibreOffice 7.4.5 с устранением сбоя, затрагивающего многих пользователей

Обновление LibreOffice 7.4.5 с устранением сбоя, затрагивающего многих пользователей

Организация The Document Foundation объявила о публикации внепланового корректирующего выпуска Community-редакции LibreOffice 7.4.5, в котором устранена одна ошибка, приводящая к аварийному завершению при нажатии на кнопку верхнего или нижнего колонтитула после прокрутки. Отмечается, что проблема может затрагивать многих пользователей офисного пакета. Проблема вызвана регрессивным изменением, вошедшим в обновление 7.4.4.2. Готовые установочные пакеты подготовлены для платформ Linux, macOS и Windows.

10

Компания Canonical объявила о готовности сервиса Ubuntu Pro

Компания Canonical объявила о готовности сервиса Ubuntu Pro

Компания Canonical объявила о готовности к повсеместному использованию сервиса Ubuntu Pro, предоставляющего доступ к расширенным обновлениям для LTS-веток Ubuntu. Сервис предоставляет возможность получать обновления с исправлениями уязвимостей на протяжении 10 лет (штатный срок сопровождения LTS-веток 5 лет) для дополнительных 23 тысяч пакетов, помимо пакетов из репозитория Main. Ubuntu Pro также открывает доступ к live-патчам, позволяющим на лету применять обновления к ядру Linux без перезагрузки.

Бесплатная подписка на Ubuntu Pro предоставляется для частных лиц и малых предприятий, насчитывающих в своей инфраструктуре до 5 физических хостов (программа также охватывает все виртуальные машины, размещённые на этих хостах). Официальные члены сообщества Ubuntu могут получить бесплатный доступ для 50 хостов. Стоимость платной подписки составляет $25 в год на каждую рабочую станцию и $500 в год на сервер. Для получения токенов доступа к сервису Ubuntu Profree требуется учётная запись в Ubuntu One, которую может получить любой желающий.

911

Доступен OpenVPN 2.6.0

Доступен OpenVPN 2.6.0

После двух с половиной лет с момента публикации ветки 2.5 подготовлен релиз OpenVPN 2.6.0, пакета для создания виртуальных частных сетей, позволяющего организовать шифрованное соединение между двумя клиентскими машинами или обеспечить работу централизованного VPN-сервера для одновременной работы нескольких клиентов. Код OpenVPN распространяется под лицензией GPLv2, готовые бинарные пакеты формируются для Debian, Ubuntu, CentOS, RHEL и Windows.

Основные новшества:

  • Обеспечена поддержка неограниченного числа соединений.

  • В состав включён модуль ядра ovpn-dco, позволяющий существенно ускорить производительность VPN. Ускорение достигается за счёт выноса всех операций шифрования, обработки пакетов и управления каналом связи на сторону ядра Linux, что позволяет избавиться от накладных расходов, связанных с переключением контекста, даёт возможность оптимизировать работу за счёт прямого обращения к внутренним API ядра и исключает медленную передачу данных между ядром и пространством пользователя (шифрование, расшифровка и маршрутизация выполняется модулем без отправки трафика в обработчик в пространстве пользователя).

    В проведённых тестах по сравнению с конфигурацией на основе интерфейса tun применение модуля на стороне клиента и сервера при использовании шифра AES-256-GCM позволило добиться прироста пропускной способности в 8 раз (с 370 Mbit/s до 2950 Mbit/s). При применении модуля только на стороне клиента пропускная способность возросла в три раза для исходящего трафика и не изменилась для входящего. При применении модуля только на стороне сервера пропускная способность возросла в 4 раза для входящего трафика и на 35% для исходящего.

  • Предоставлена возможность использования режима TLS с самоподписанными сертификатами (при применении опции "--peer-fingerprint" можно не указывать параметры "--ca" и "--capath" и обойтись без запуска PKI-сервера на базе Easy-RSA или похожего ПО).

  • В UDP-сервере реализован режим согласования соединения на основе Cookie, при котором в качестве идентификатора сеанса используется Cookie на основе HMAC, что позволяет серверу проводить верификацию без сохранения состояния.

  • Добавлена поддержка сборки с библиотекой OpenSSL 3.0. Добавлен параметр "--tls-cert-profile insecure" для выбора минимального уровня безопасности OpenSSL.

  • Добавлены новые управляющие команды remote-entry-count и remote-entry-get для подсчёта числа внешних подключений и вывода их списка.

  • В процессе согласования ключей более приоритетным методом получения материала для генерации ключей теперь является механизм EKM (Exported Keying Material, RFC 5705), вместо специфичного механизма OpenVPN PRF. Для применения EKM требуется библиотека OpenSSL или mbed TLS 2.18+.

  • Обеспечена совместимость с OpenSSL в FIPS-режиме, что позволяет использовать OpenVPN на системах, удовлетворяющих требованиям безопасности FIPS 140-2.

  • В mlock реализована проверка резервирования достаточного размера памяти. При доступности менее 100 МБ ОЗУ для повышения лимита осуществляется вызов setrlimit().

  • Добавлена опция "--peer-fingerprint" для проверки корректности или привязки сертификата по fingerprint-отпечатку на основе хэша SHA256, без применения tls-verify.

  • Для скриптов предоставлена возможность отложенной (deferred) аутентификации, реализуемой при помощи опции "--auth-user-pass-verify". В скриптах и плагинах добавлена поддержка информирования клиента об ожидании (pending) аутентификации при применении отложенной аутентификации.

  • Добавлен режим совместимости (--compat-mode), позволяющий подключаться к старым серверам, на которых используется OpenVPN 2.3.x или более старые версии.

  • В списке, передаваемом через параметр "--data-ciphers", разрешено указание префикса "?" для определения необязательных шифров, которые будут задействованы только при наличии поддержки в SSL-библиотеке.

  • Добавлена опция "--session-timeout" при помощи которой можно ограничить максимальное время сеанса.

  • В файле конфигурации разрешено указание имени и пароля при помощи тега <auth-user-pass></auth-user-pass>.

  • Предоставлена возможность динамической настройки MTU клиента, на основе данных об MTU, переданных сервером. Для изменения максимального размера MTU добавлена опция "--tun-mtu-max" (по умолчанию 1600).

  • Добавлен параметр "--max-packet-size" для определения максимального размера управляющих пакетов.

  • Удалена поддержка режима запуска OpenVPN через inetd. Удалена опция ncp-disable. Объявлены устаревшими опция verify-hash и режим статических ключей (оставлен только TLS). В разряд устаревших переведены протоколы TLS 1.0 и 1.1 (параметр tls-version-min по умолчанию выставлен в значение 1.2). Удалена встроенная реализация генератора псевдослучайных чисел (--prng), следует использовать реализацию PRNG из криптобиблиотек mbed TLS или OpenSSL. Прекращена поддержка пакетного фильтра PF (Packet Filtering). По умолчанию отключено сжатие (--allow-compression=no).

  • В список шифров по умолчанию добавлен CHACHA20-POLY1305.

Показать полностью
Отличная работа, все прочитано!