The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

·08.06.2025 Композитный сервер Hyprland удалён из Debian Testing и не войдёт в релиз Debian 13 (172 +15)
  Композитный сервер Hyprland и сопутствующие пакеты, такие как hyprland-protocols и hyprutils, удалены из репозитория Debian Testing и не будут включены в стабильный релиз Debian 13, находящийся на финальной стадии подготовки. В ветке Debian Unstable пакеты с Hyprland сохранены, но по-прежнему базируются на устаревшем выпуске 0.41.

Причиной исключения Hyprland из следующего стабильного релиза стала просьба сопровождающего, который заявил, что поставляемая в Debian-пакете версия Hyprland 0.41.2 сильно отстаёт от актуального состояния проекта (0.49) и для старой версии невозможно обеспечить поддержку на протяжении жизненного цикла Debian 13.

Проект Hyprland находится на стадии активной разработки и регулярно формирует новые выпуски с изменениями, не сохраняющими обратную совместимость. Поддержание старой версии Hyprland силами сопровождающего Debian-пакет в таких условиях сильно усложнено. Переводу пакетов на новый выпуск мешает то, что в версии Hyprland 0.42 прекращено использование библиотеки wlroots в пользу собственной релизации протокола Wayland и библиотеки отрисовки Aquamarine.

В старой версии Hyprland имеется проблема, приводящая в Debian Testing к аварийному завершению композитного сервера при смене виртуального терминала (TTY) или при переключении между мониторами. Сопровождающий Hyprland повысил статус данной проблемы до уровня, блокирующего выпуск релиза Debian 13 и требующего обязательного исправления ошибки. При этом устранить проблему без обновлении версии Hyprland или зависимостей не получается, а обновить версии невозможно из-за жёсткой заморозки состояния репозитория Debian Testing перед релизом (обновление версии может привести к появлению регрессий).

Композитный сервер Hyprland ориентирован на мозаичную (tiling) компоновку окон, но поддерживает и классическое произвольное размещение окон, группировку окон в форме вкладок, псевдомозаичный режим и полноэкранное раскрытие окон. Среди возможностей: динамически создаваемые виртуальные рабочие столы; режимы компоновки элементов на экране; глобальная обработка горячих клавиш; управление жестами на тачпаде/сенсорном экране; средства для визуально насыщенных интерфейсов (градиенты в обрамлении окон, размытие фона, анимационные эффекты и тени); расширение через плагины Настройка осуществляется через файл конфигурации, изменения в котором подхватываются на лету без перезапуска.

  1. OpenNews: Выпуск композитного сервера Hyprland 0.49
  2. OpenNews: В Debian разрешено встраивание зависимостей в пакет Kubernetes
  3. OpenNews: В Live-образах Debian 12 реализована поддержка повторяемых сборок
  4. OpenNews: Проект Debian начал общее голосование по критериям открытости AI-моделей
  5. OpenNews: Debian 13 вошёл в фазу жёсткой заморозки перед релизом
Обсуждение (172 +15) | Тип: К сведению |
·07.06.2025 Linux Foundation развивает FAIR, децентрализованный пакетный менеджер для WordPress (95 –5)
  Организация Linux Foundation представила проект FAIR (Federated and Independent Repositories), предоставляющий децентрализованную альтернативу экосистеме распространения плагинов и тем оформления к WordPress. FAIR позволяет создавать на своих серверах собственные репозитории и зеркала для доставки плагинов, не зависимые от централизованного хостинга WordPress.org. Код написан на языке PHP и распространяется под лицензией GPLv2+.

Платформу образуют следующие компоненты:

  • Плагин к системе управления контентом WordPress, заменяющий обращения к WordPress.org, WordPress.com, Gravatar.com и другим серверам компании Automattic, применяемым для проверки обновлений и отправки уведомлений, на альтернативные обработчики, использующие протокол FAIR.
  • Сервер для поддержки репозитория, использующего децентрализованную модель управления пакетами для распространения плагинов и тем оформления WordPress. Разработчикам предоставлена возможность развёртывания зеркал уже существующих репозиториев (например, WordPress.org) или создания своих серверов для распространения дополнений к WordPress. Серверы логически объединяются в единый федеративный каталог.
  • Плагин Mini FAIR Repo для преобразования своего сайта в репозиторий FAIR. Компонент позволяет создателям плагинов и тем оформления напрямую со своих серверов распространять дополнения к WordPress и использовать для этого привычные инструменты. Mini FAIR Repo предлагает встраиваемую в WordPress урезанную реализацию репозитория FAIR для распространения нескольких пакетов, не рассчитанную на организацию массового хостинга.

FAIR может поставляться как форме обособленного плагина, так и в виде дистрибутива FAIR Distro, включающего платформу WordPress с предустановленными компонентами FAIR. Применение FAIR позволяет создавать обособленные инфраструктуры, не зависящие от возможных блокировок и защищённые от подмены пакетов в централизованном каталоге. Необходимость в независимом инструменте доставки дополнений возникла после инцидента, в результате которого владелец официального каталога плагинов Wordpress.org заменил плагин ACF на собственный форк и заблокировал доступ к каталогу дополнений компании WP Engine и всем кто обсуждал создание форка WordPress.

Достоинства FAIR:

  • Использование федеративной экосистемы вместо привязки к одному источнику обновлений, плагинов, тем и переводов.
  • Повышение конфиденциальности и безопасности за счёт сокращения автоматической отправки данных и телеметрии коммерческим компаниям.
  • Объединение фрагментированной экосистемы через предоставление возможности получения плагинов из любых источников.
  • Усиление защиты цепочки распространения плагинов (supply chain) и использование криптографических методов проверки подлинности.

Разработка FAIR ведётся на нейтральной площадке под эгидой организации Linux Foundation. Управление осуществляется управляющим техническим комитетом и рабочими группами, принимающими решения на основе достижения консенсуса и учитывающими интересы и потребности сообщества. Все решения принимаются публично с использованием прозрачных процессов. В состав управляющего комитета вошли Кэрри Дилс (Carrie Dils, создавала курсы и руководства для web-разработчиков), Мика Эпштейн (Mika Epstein, ранее отвечала за репозиторий плагинов) и Райан МакКью (Ryan McCue, один из создателей WordPress REST API).

  1. OpenNews: Основатель WordPress заблокировал участников, предлагавших создать форк
  2. OpenNews: Компания Automattic свела к минимуму своё участие в разработке WordPress
  3. OpenNews: Владельцы Wordpress заменили на свой форк плагин ACF, имеющий 2 млн установок
  4. OpenNews: Конфликт между WordPress и Wix, связанный с нарушением лицензии GPL
  5. OpenNews: Создан ClassicPress, форк WordPress с классическим web-редактором
Обсуждение (95 –5) | Тип: К сведению |
·06.06.2025 Проект X11Libre создал форк X.Org Server, избавленный от влияния корпораций (400 +88)
  В рамках проекта X11Libre началась разработка форка X.org Server, нацеленного на проведение чистки кодовой базы и продолжение активного развития функциональности X.org. Проект создал Энрико Вайгельт (Enrico Weigelt), мэйнтейнер драйверов AMD FCH GPIO и VIRTIO GPIO в ядре Linux, мэйнтейнер Xnest и активный разработчик Xorg (1831 коммит за последние два года). В анонсе проекта Энрико отметил, что проект freedesktop.org не является независимым и контролируется компанией Red Hat, которая, по его мнению, специально тормозит развитие X-сервера и пытается похоронить проект X11 (ранее Энрико подвергался критике со стороны Линуса Торвальдса за склонность к теориям заговора).

После действий, связанных с созданием форка и попыток привлечь внимание к возрождению работы над X-сервером, Карол Хербст (Karol Herbst, сотрудник Red Hat и борец за инклюзивность в сообществе) заблокировал Энрико доступ к GitLab-инфраструктуре freedesktop.org, удалил его репозитории и закрыл более 140 отправленных запросов на передачу изменений (изменения были не без претензий к качеству). В ответ Энрико пригласил всех желающих подключиться к разработке X11Libre на GitHub. По мнению Энрико, у сообщества есть интерес к продолжению развития X.org и за время искусственного сдерживания разработки у проекта X.org накопилось большое число не принятых изменений и улучшений.

Первый релиз форка планируется опубликовать в ближайшие дни. Проект X11Libre будет полностью независим, не связан с какими-либо корпорациями или активистами и избавлен от любых дискриминационных политик, таких как "DEI" (разнообразие, равенство и инклюзивность). Любой, кто доброжелательно относится к окружающим и заинтересован в продвижении X11, может участвовать в работе.

Среди изменений в будущем релизе X11Libre:

  • Поддержка X11-расширения Xnamespace, обеспечивающего изоляцию клиентов через разделение на уровне пространств имён X11.
  • Перевод Xnest на XCB и исключение Xlib из зависимостей.
  • Возможность одновременной установки разных версий ABI для бесшовного обновления в дистрибутивах.
  • Проведение работы по избавлению кодовой базы от технического долга.

Дополнение: От Энрико поступали плохо протестированные изменения, которые, например, ломали работу xrandr и приводили к зависаниям. Другие разработчики были недовольны проводимой Энрико чисткой кода, из-за которой в master-ветке X.org постоянно менялся ABI и возникали сбои со сборкой. В итоге, было предложено прекратить принимать изменения от Энрико, так как его деятельность по чистке кодовой базы не устраняла конкретных ошибок и не решала существующие проблемы, а создавала новые проблемы.

  1. OpenNews: Red Hat удалит сервер X.org и связанные компоненты из RHEL 10
  2. OpenNews: Проект X.Org прекращает поддержку 20 устаревших библиотек и утилит
  3. OpenNews: Активность в разработке сервера X.Org достигла минимума с 2003 года
  4. OpenNews: Red Hat намерен прекратить развитие сервера X.Org
  5. OpenNews: Графическая система X12 начинает обретать форму
Обсуждение (400 +88) | Тип: К сведению |
·06.06.2025 Представлен бэкенд TPDE-LLVM, работающий в 10-20 раз быстрее LLVM в режиме без оптимизации (50 +16)
  Исследователи из Мюнхенского технического университета опубликовали инструментарий TPDE и основанный на нём бэкенд компилятора для LLVM - TPDE-LLVM, обеспечивающий генерацию машинного кода для архитектур x86-64 и AArch64 на основе промежуточного представления кода LLVM-IR. При тестировании TPDE-LLVM оказался быстрее бэкенда LLVM -O0 (генератор кода без оптимизаций) в 10-20 раз при том же уровне производительности результирующего машинного кода и увеличении размера на 10-30%. Наработки проекта опубликованы под лицензией Apache 2.0.

TPDE-LLVM изначально нацелен на обеспечение компиляции с минимальными задержками и уровнем качества, соответствующим режиму сборки без оптимизаций ("-O0"). Проектом предоставляется утилита для обособленного запуска tpde-llc, библиотека для интеграции в приложения (например, для реализации функциональности JIT-компилятора) и патчи для интеграции с Clang и Flang.

Проект может использоваться в качестве базового компилирующего компонента для JIT или для создания неоптимизированных сборок. TPDE-LLVM сосредоточен только на скорости компиляции и не пытается конкурировать с оптимизирующими бэкендами LLVM, которые по сравнению с TPDE-LLVM работают существенно медленнее, но позволяют генерировать более быстрый и компактный машинный код (примерно в 2 раза быстрее и в 2 раза меньше по размеру).

TPDE-LLVM использует для генерации кода три стадии:

  • Чистка и подготовка промежуточного представления LLVM;
  • Анализ информации о циклах и использовании переменных;
  • Формирование машинного кода.

Отмечается, что при участии авторов TPDE в ветки LLVM 19 и 20 уже добавлены оптимизации, позволившие ускорить работу штатного бэкенда LLVM на 18% на платформе x86-64 и на 13% на платформе ARM64. По мнению авторов TPDE, в будущем малой кровью можно будет ускорить бэкенд LLVM ещё возможно на 10-20%, но дальнейшее повышение производительности потребует значительных изменений. При этом даже при значительной переработке маловероятно, что существующий бэкенд LLVM удастся ускорить в 10 раз.

На текущем этапе развития среди целей проекта TPDE заявлено обеспечение поддержки промежуточного представления кода LLVM, полученного фронтэндом Clang в режимах оптимизации "-O0" и "-O1". Обработка промежуточного представления, созданного в режиме "-O2", пока не гарантируется из-за отсутствия поддержки в TPDE векторных операций. Частично поддерживается промежуточный код от Flang и компилятора Rust.

Дополнение: По скорости компиляции и производительности результирующего кода, TPDE не имеет существенных отличий от ранее доступного бэкенда DirectEmit. Однако, TPDE кратно меньше по объёму собственного кода, в том числе архитектурно-зависимых частей. При этом существенная часть кода TPDE приходится на интерпретацию семантики входящего промежуточного представления кода, получаемого от LLVM.

  1. OpenNews: Релиз набора компиляторов LLVM 20
  2. OpenNews: Выпуск Tinygo 0.34, компилятора языка Go на базе LLVM
  3. OpenNews: Опубликованы результаты аудита безопасности кодовой базы LLVM
  4. OpenNews: Проект LLVM меняет схему нумерации версий
  5. OpenNews: Проект Minotaur развивает оптимизатор векторных инструкций для LLVM
Обсуждение (50 +16) | Тип: Программы |
·06.06.2025 Выпуск графического тулкита wxWidgets 3.3.0 (97 +15)
  После трёх лет разработки опубликован выпуск кроссплатформенного тулкита wxWidgets 3.3.0, позволяющего создавать графические интерфейсы для Linux, Windows, macOS, UNIX-подобных систем и мобильных платформ. Тулкит написан на языке С++ и распространяется под свободной лицензией wxWindows Library License, одобренной Фондом СПО и организацией OSI. Лицензия основана на LGPL и позволяет задавать собственные условия для распространения производных работ в бинарной форме.

Помимо поддержки С++ в wxWidgets предоставляются обвязки для большинства популярных языков программирования, в числе которых PHP, Python, Perl, Haskell и Ruby. Интерфейс в приложениях, использующих wxWidgets, имеет родной для целевой системы внешний вид, благодаря использованию системных API, а не имитации GUI.

wxWidgets 3.3.0 позиционируется как ветка для разработчиков, в которой развиваются новые возможности для следующего стабильного релиза 3.4.0. При этом ветка wxWidgets 3.3.0 отмечена как пригодная для использования в рабочих проектах - отличие от стабильных веток в том, что в промежуточных выпусках веток для разработчиков допускается внесение в ABI и API изменений, нарушающих совместимость. Нарушающие совместимость изменения носят единичный характер и в целом ветка 3.3 почти полностью совместима с wxWidgets 3.2 на уровне API.

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

  • Реализован новый бэкенд wxWebView на базе движка Chromium, позволяющий встраивать в приложения функции для обработки и отображения web-контента.
  • В класс wxImage добавлена поддержка изображений в формате WebP.
  • В порт wxMSW, предоставляющий специфичные для Windows функции и элементы управления, добавлена экспериментальная поддержка тёмного режима оформления, работающего начиная с Windows 10. Прекращена поддержка Windows XP и Vista. По умолчанию задействован режим вывода с двойной буферизацией, как в портах wxGTK с Wayland и wxOSX.
  • В библиотеке wxAUI реализована возможность закрепления позиции вкладок (pin) и создания многострочных вкладок.
  • Добавлен вариант класса wxWebRequest для обработки запросов в синхронном (блокирующем) режиме.
  • Добавлен API для низкоуровневой обработки событий от сенсорных экранов и тачпадов.
  • В классе wxGrid реализованы средства для людей с ограниченными возможностями.
  • Для UNIX-подобных систем реализованы события wxEVT_POWER_XXX для отслеживания состояния энергопотребления.
  • В порте wxGTK по возможности теперь используются родные диалоги работы с файлами.
  • В классе wxTextCtrl, формирующем элементы для отображения и редактирования текста, реализована поддержка текста с разметкой (RTF).
  • Добавлена поддержка анимации и курсоров для экранов с высокой плотностью пикселей (high DPI).
  • Добавлена поддержка сборки с использованием новых компиляторов gcc 15, clang 19 и Xcode 16.
  • На UNIX-подобных системах для размещения файлов конфигурации приложений задейстован каталог ~/.config/appname.conf вместо ~/.appname (загрузка уже существующих файлов конфигурации сохранена).
  • Удалены порты wxMotif и wxGTK1.
  • Удалена возможность сборки без использования Unicode (wxUSE_UNICODE=0).

  1. OpenNews: Выпуск графического тулкита wxWidgets 3.2.0
  2. OpenNews: Релиз графического тулкита wxWidgets 3.0.0
  3. OpenNews: Доступен графический тулкит GTK 4.18
  4. OpenNews: Релиз мультимедийной библиотеки SDL 3
  5. OpenNews: Опубликован инструментарий для создания графических интерфейсов Slint 1.0
Обсуждение (97 +15) | Тип: Программы |
·05.06.2025 Canonical прекратит поддержку Bazaar в платформе Launchpad (87 +8)
  Компания Canonical анонсировала прекращение поддержки системы управления версиями Bazaar в платформе Launchpad, применяемой в процессе разработки Ubuntu для совместной работы с кодом, отслеживания ошибок, рецензирования изменений, сборки и размещения пакетов. Изначально платформа Launchpad поддерживала управление версиями только через систему Bazaar. В 2015 году в Launchpad была добавлена поддержка Git, которая со временем стала основной системой управления изменениями в коде.

Последний выпуск Bazaar был опубликован компанией Canonical в 2016 году, после чего разработка затормозилась и проект так и не был портирован на Python 3 (выпуск Bazaar 2.8, в котором ожидался переход на Python 3, так и остался в планах). Отмечается, что Bazaar и Git обладают схожей функциональностью и после повсеместного распространения Git и снижения популярности Bazaar, нет смысла продолжать предоставлять хостиг репозиториев Bazaar в Launchpad. Поддержание на плаву подобного хостинга требует значительных ресурсов на разработку и инфраструктуру, которые можно будет потратить на более полезные вещи.

В 2018 году заинтересованные в Bazaar энтузиасты основали форк - Breezy (brz), в котором было выполнено портирование на Python 3 и добавлена опциональная поддержка формата хранилища Git. Breezy сочетает в себе возможности децентрализованных (git/hg) и централизованных систем управления версиями (cvs/svn), и поддерживает такие возможности, как извлечение (checkout) содержимого репозитория в стиле Subversion, отдельные ветки для работы над новыми функциями в стиле Mercurial и возможность совместной работы нескольких разработчиков с одной рабочей копией репозитория по аналогии с Git. Система продолжает активно развиваться - свежий выпуск Breezy 3.3.12 был опубликован две недели назад.

Прекращение поддержки Bazaar в Launchpad будет осуществлено в две стадии. На первой стадии в Launchpad будет отключён web-фронтэнд, применяемый для навигации по коду в репозиториях Bazaar. Анализ логов показал, что подобным интерфейсом уже почти никто не пользуется, а почти все запросы связаны с активностью ботов. На второй стадии будет отключён бэкенд хостинга кода, что приведёт к невозможности совершения операций pull, push и merge с размещавшимися в Launchpad репозиториями Bazaar. Дата запуска первой стадии пока не определена (сказано - в ближайшее время). Вторая стадия намечена на 1 сентября 2025 года. До 1 сентября пользователям Launchpad следует перевести свои репозитории с Bazaar на Git.

  1. OpenNews: Представлен Breezy, форк системы управления версиями Bazaar
  2. OpenNews: Выпущена система управления версиями Bazaar 2.7.0
  3. OpenNews: Компания Canonical открыла исходные тексты сервиса Launchpad
  4. OpenNews: Ошибка в Launchpad привела к внеплановой синхронизации пакетов Ubuntu с Debian
  5. OpenNews: В Launchpad появилась экспериментальная поддержка Git
Обсуждение (87 +8) | Тип: К сведению |
·04.06.2025 Опубликована децентрализованная видеовещательная платформа PeerTube 7.2 (90 +16)
  Опубликован выпуск платформы PeerTube 7.2, предназначенной для создания независимых децентрализованных систем видеохостинга и видеовещания, альтернативных таким сервисам, как YouTube, Dailymotion и Vimeo. Создаваемая при помощи PeerTube сеть распространения контента основывается на связывании браузеров посетителей между собой и использовании P2P-коммуникаций. Код проекта распространяется под лицензией AGPLv3.

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

Для взаимодействия серверов в федеративной сети применяется протокол ActivityPub. Идентификатор пользователя формируются как "@имя_пользователя@домен_сервера". При просмотре видео данные по возможности загружаются через обращение к браузерам других посетителей, просматривающих тот же контент. Если запрошенное видео никто не просматривает, отдача организуется сервером, на который загружено видео (используется протокол WebSeed).

Помимо распределения трафика между пользователями, просматривающими видео, PeerTube позволяет серверам кэшировать видео других авторов. Таким образом формируется распределённая сеть не только из клиентов, но и из серверов, а также обеспечивается отказоустойчивость. Кроме распространения готового видео имеется поддержка потокового вещания (live streaming) с доставкой контента в режиме P2P. Для управления стримингом могут использоваться типовые программы, такие как OBS.

Для начала вещания через PeerTube пользователю необходимо загрузить на один из серверов видеоролик, описание и набор тегов. После этого ролик станет доступен во всей федеративной сети, а не только на сервере первичной загрузки. Для работы с PeerTube и участия в распространении контента достаточно обычного браузера. Распространять видео с использованием P2P-коммуникаций можно добавив на свой сайт специальный виджет со встроенным web-плеером, по аналогии с тем как на страницы встраиваются ролики с YouTube. Отслеживать появление видео можно через подписку на выбранные видеоканалы в федеративных социальных сетях (например, в Mastodon и Pleroma) или через RSS.

В настоящее время в федеративную сеть входит 1357 серверов, поддерживаемых добровольцами и организациями. Если пользователя не устраивают правила размещения видео на определённом сервере PeerTube, он может подключиться к другому серверу или запустить свой собственный сервер. Для быстрого развёртывания сервера предоставляется преднастроенный образ в формате Docker (chocobozzz/peertube).

Изначально платформа PeerTube основывалась на применении BitTorrent-клиента WebTorrent, запускаемого в браузере и использующего технологию WebRTC для организации прямого P2P-канала связи между браузерами. Позднее вместо WebTorrent был задействован протокол HLS (HTTP Live Streaming) в связке с WebRTC, позволяющий адаптивно управлять потоком в зависимости от полосы пропускания. Web-интерфейс построен с использованием фреймворка Angular.

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

  • Интегрирован новый интерфейс для управления видео, упрощающий навигацию по пользовательским видео. Доступные видео теперь показываются не в форме бесконечно прокручиваемой ленты, а с разбивкой на отдельные страницы. Имеется возможность настройки показываемых столбцов, таких как название, продолжительность, канал, число просмотров, наличие комментариев и дата публикации. Доступны режимы фильтрации вывода, позволяющие просмотреть только видео из определённых каналов или соответствующих заданным критериям (например, можно отфильтровать только видео, показываемые пользователям или защищённые паролем).
  • Изменён интерфейс публикации и обновления live-трансляции или уже размещённого видео, который разделён на отдельные секции, навигация между которыми осуществляется через новое боковое меню. В данное меню также перенесены и другие страницы, имеющие отношение к управлению видео, такие как редактирование в режиме Studio и просмотр статистики. Если какой-то модуль недоступен он теперь явно помечается и снабжается подсказкой с описанием причины недоступности. Добавлен горизонтальный баннер с кнопками отмены или сохранения операции, ссылкой на просмотр видео и дополнительной информацией, такой как сведения об ожидании завершения кодирования. Изменено оформление страницы замены видео, на которой для загрузки новой версии видео теперь можно использовать режим Drag&Drop.
  • Улучшения система скрытия контента, который может показаться каким-то людям неприемлемым. Создатели видео теперь могут публиковать метки, предупреждающие о деликатном содержимом и позволяющие понять, стоит ли просматривать данное видео.

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

  1. OpenNews: Опубликована децентрализованная видеовещательная платформа PeerTube 7.1
  2. OpenNews: Выпуск Nextcloud Hub 10, платформы для организации совместной работы
  3. OpenNews: Проект Revolt развивает открытую альтернативу платформе Discord
  4. OpenNews: Релиз децентрализованной коммуникационной платформы Hubzilla 7.0
Обсуждение (90 +16) | Тип: Программы |
·04.06.2025 Сравнение производительности СУБД Valkey и Redis (120 +25)
  Представлены результаты тестирования свежих выпусков СУБД Redis 8.0 и Valkey 8.1, в которых были заявлены значительные оптимизации производительности. Во всех проведённых тестах развиваемый сообществом форк обогнал оригинальный проект, в основном благодаря внедрению в Valkey нового механизма для многопоточной обработки ввода/вывода в асинхронном режиме, переданного проекту компанией Amazon.

В тестовом окружении AWS Graviton4 c8g.2xlarge с 8 VCPU в Valkey 8.1.1 удалось добиться производительности в 999.8 тысяч SET-запросов в секунду, в то время как в Redis 8.0 был достигнут уровень в 729.4 тысяч запросов в секунду. В общем виде пропускная способность Valkey оказалась выше Redis на 37% для операций SET и на 16% для GET. При этом по сравнению с Redis проект Valkey продемонстрировал снижение задержек при обработке запросов на 30% для операций SET и на 60% для операций GET.

Отдельно проведён анализ изменения пропускной способности и задержек в зависимости от числа параллельно выполняемых обработчиков в режиме многопоточной обработки ввода/вывода. До 3 потоков Valkey и Redis показывают примерно равные результаты, но затем вперёд вырывается Valkey. При 6 потоках на системе с 8 VCPU производительность Valkey составила 678 тысяч SET-запросов в секунду, а Redis - 563 тысячи запросов в секунду при лимите в 256 одновременных соединений. При увеличении соединений до 400 производительность Valkey выросла до 832 тысяч SET-запросов в секунду.

После оптимизации обработки прерываний в системе для снижения числа переключения контекста в Valkey удалось поднять производительность до 999.8 тысяч SET-запросов в секунду. Суть оптимизации свелась к выделению 2 VCPU для обработки прерываний и привязки 6 оставшихся VCPU к потокам обработки ввода/вывода Valkey и Redis, чтобы исключить миграцию обработчиков между CPU.


   sudo ethtool -L ens34 combined 2 # ограничиваем до 2 число обработчиков IRQ
   grep ens34 /proc/interrupts # смотрим какие обработчики задействованы (99 и 100)
   echo 1 | sudo tee /proc/irq/99/smp_affinity # привязываем обработчик 99 к ядру 1
   echo 2 | sudo tee /proc/irq/100/smp_affinity # привязываем обработчик 100 к ядру 2

   # Запускаем СУБД (для Redis  поменять valkey/valkey:8.1.1 на redis:8.0) c привязкой контейнера к ядрам CPU 2-7
   docker run --network="host" --rm \
     --cpuset-cpus="2-7" valkey/valkey:8.1.1  \
     --save "" --appendonly no --io-threads 6 \
     --protected-mode no --maxmemory 10gb

Для тестирования производительности использовалась команда:


   docker run --network="host" --rm --cpuset-cpus="2-7" \
      valkey/valkey:8.0.1 valkey-benchmark \
      -h 172.31.4.92 -p 6379 -t SET,GET -n 100000000 -c 256 \
      -r 3000000 --threads 6 -d 1024

  1. OpenNews: Увеличение скорости ввода/вывода на 6% в Linux, благодаря кэшированию запросов времени
  2. OpenNews: Проект Redis вернулся на использование открытой лицензии. Представлен Redis 8.0
  3. OpenNews: Оптимизация Linux для обработки 1.2 млн JSON-запросов в секунду
  4. OpenNews: Опубликован Valkey 8.1, форк СУБД Redis от Amazon, Google, Oracle и Ericsson
  5. OpenNews: Amazon, Google, Oracle, Ericsson и Snap основали Valkey, форк СУБД Redis
Обсуждение (120 +25) | Тип: Обобщение |
·03.06.2025 Выпуск мобильной платформы /e/OS 3.0 (93 +15)
  Опубликован выпуск мобильной платформы /e/OS 3.0, сфокусированной на конфиденциальности пользовательских данных. Платформа основана Гаэлем Дювалем (Gaël Duval), создателем дистрибутива Mandrake Linux. Проект поддерживает 221 модель смартфонов и формирует сборки прошивок для наиболее популярных из них. На базе смартфонов OnePlus, Fairphone, Teracube и Pixel подготовлены собственные редакции устройств, распространяемые с предустановленной прошивкой /e/OS под брендами Murena One, Murena 2, Murena Fairphone 4/5, Murena Teracube 2e и Murena Pixel 5/7.

Прошивка /e/OS развивается как ответвление от платформы LineageOS (на базе Android), избавленное от привязки к сервисам и инфраструктуре Google для исключения передачи телеметрии на серверы Google и повышения уровня конфиденциальности. Среди прочего, блокируется и неявная отправка информации, например, обращения к серверам Google при проверке доступности сети, резолвинге DNS и определении точного времени.

В поставку входит пакет microG, предлагающий независимые аналоги сервисов Google, что позволяет обойтись без установки проприетарных компонентов. Для определения местоположения по Wi-Fi и базовым станциям (без GPS) прослойка UnifiedNlp, способная работать через BeaconDB, OpenWlanMap, openBmap, OpenCellID, lacells.db и другие альтернативные сервисы. Вместо поисковой системы Google предлагается метапоисковый сервис Murena Find на основе поискового движка Qwant. метапоисковый сервис на основе форка движка Searx, анонимизирующий отправляемые запросы.

Для синхронизации точного времени вместо обращения к NTP-серверу Google запросы отправляются на серверы из коллекции NTP Pool, а вместо DNS-серверов Google (8.8.8.8) используются DNS-серверы текущего провайдера. В web-браузере по умолчанию включён блокировщик рекламы и скриптов для отслеживания перемещений. Для синхронизации файлов и данных приложений разработан собственный сервис, совместимый с инфраструктурой на основе Nextcloud. Серверные компоненты основаны на открытом ПО и доступны для установки на подконтрольных пользователю системах.

Интерфейс пользователя включает собственное окружение для запуска приложений BlissLauncher, улучшенную систему уведомлений, новый экран блокировки и иное стилевое оформление. В BlissLauncher задействован разработанный для /e/OS набор автоматически масштабируемых пиктограмм и отдельная подборка виджетов (например, виджет для показа прогноза погоды).

Проектом также развивается собственный менеджер аутентификации, позволяющий использовать для всех сервисов единую учётную запись ([email protected]), регистрируемую в процессе первой установки. Учётную запись можно использовать для получения доступа к своему окружению с других устройств или через Web. В облаке Murena Cloud бесплатно предоставляется 1ГБ для хранения своих данных, синхронизации приложений и резервных копий.

Среди входящих в состав приложений: почтовый клиент Mail (форк K9-Mail), web-браузер Cromite, (на базе Chromium), программа для работы с камерой OpenCamera, программа для отправки мгновенных сообщений QKSMS, система для ведения заметок nextcloud-notes, PDF-просмотрщик MJ PDF, планировщик opentasks, программа для работы с картами Magic Earth, галерея фотографий gallery3d, файловый менеджер, каталог приложений App Lounge.

Основные изменения в /e/OS 3.0:

  • Менеджер учётных записей прошёл сертификацию CASA (Cloud Application Security Assessment), что позволило вернуть возможность синхронизации с учётными записями Google.
  • В пакете Advanced Privacy, передающем приложениям фиктивные данные о местоположении и IP-адресе, а также блокирующем встроенные в приложения системы отслеживания активности пользователя, реализованы еженедельные отчёты со сводными данными о блокировке трекеров.
  • В web-браузере по умолчанию задействована поисковая система Murena Find. Ранее используемая поисковая система Spot оставлена только для пользователей из стран, не поддерживаемых в Murena Find. Браузерный движок обновлён до Chromium 135.
  • Добавлена функция поиска утерянных устройств "Find my Device", осуществляющая отправку сведений о местоположении в ответ на SMS с паролем, предварительно заданным пользователем.
  • Добавлена система голосового ввода текста Murena Voice, доступная для пользователей Premium Murena Workspace.
  • В инструменты для родительского контроля добавлена поддержка ограничения времени работы ребёнка с устройством. Реализована возможность определения кода доступа для установки приложений, отнесённых к категорию "для взрослых", или отдельного подтверждения родителем попыток установки новых приложений.
  • Сервисы определения местоположения по умолчанию переведены на использование БД BeaconDB с информацией о размещении известных точек беспроводного доступа.
  • Перенесены обновления и исправления из платформы LineageOS 20.

  1. OpenNews: Выпуск мобильной платформы /e/OS 2.6
  2. OpenNews: Инициатива Mobifree, нацеленная на построение экосистемы открытых мобильных приложений
  3. OpenNews: Выпуск мобильной платформы /e/OS 2.0, развиваемой создателем Mandrake Linux
  4. OpenNews: Первый бета-выпуск мобильной платформы /e/, развиваемой создателем Mandrake Linux
Обсуждение (93 +15) | Тип: Программы |
·03.06.2025 Facebook и Yandex использовали свои Android-приложения для деанонимизации сеансов в браузерах (424 +57)
  Компании Meta* и Yandex уличили в скрытом отслеживании пользователей и манипуляциях для обхода предоставляемых браузерами средств обеспечения конфиденциальности, таких как режим инкогнито и возможность очистки Cookie. Активность по деанонимизации сеансов применялась на платформе Android при открытии сайтов, использующих системы web-аналитики Яндекс Метрика или Facebook Pixel.

Суть использованного метода идентификации сводится к тому, что распространяемые Meta и Yandex мобильные приложения для Android, такие как Facebook, Instagram, Yandex Maps, Yandex Navigator, Yandex Search, Yandex Go: Taxi Food и Yandex Browser, создавали дополнительный канал связи с выполняемым в браузере JavaScript-кодом. Мобильные приложения запускали отдельные обработчики соединений на локальном сетевом интерфейсе (127.0.0.1), принимающие запросы по протоколам HTTP, HTTPS, WebSocket и WebRTC.

При открытии в браузере сайтов, использующие системы web-аналитики Yandex Metric или Facebook Pixel, связанный с данными системами JavaScript-код отправлял запросы на открытые мобильными приложениями сетевые порты. В запросах передавались метаданные, Cookie и управляющие команды. В мобильных приложениях браузерные сеансы связывались с реальными идентификаторами пользователя и устройства, к которым имели доступ приложения. Например, сеансы могли связываться с учётными записями в Facebook и Yandex или с идентификаторами AAID (Android Advertising ID). Таким образом, даже при открытии сайта в режиме инкогнито или после удаления Cookie, сервисы Meta и Yandex могли точно идентифицировать пользователя, открывшего сайт, привязываясь к идентификаторам из мобильных приложений, запущенных на том же устройстве.

Реализованная техника представляла опасность не только из-за утечки информации в Facebook и Yandex, но и из-за возможности использования вредоносными приложениями. Сетевые порты, на которые отправлялись сведения об активности в браузере, могли использовать любые приложения для отслеживания активности пользователя и построения истории посещений, а не только приложения Facebook и Yandex.

Компании Facebook и Yandex воспользовались тем, что платформа Android не ограничивает создание слушающих сокетов в привязке к интерфейсу loopback (127.0.0.1), если приложение имеет полномочия INTERNET. В случае Facebook локальному приложению передавалось содержимое Cookie "_fbp" (уникальный идентификатор пользователя в Facebook Pixel). Через манипуляции с WebRTC содержимое подставлялось в поле "ice-ufrag" пакетов SDP, отправляемых в STUN-запросах на локальный хост. 17 мая в Chrome была заблокирована подобная возможность и скрипты Facebook Pixel перевели на использование WebRTC TURN. После раскрытия результатов исследования компания Meta удалила из скриптов Facebook Pixel отправку запросов на localhost.

В Яндекс метод отправки данных из браузера в мобильные приложения применялся с 2017 года. JavaScript-код сервиса Yandex Metrica устанавливал HTTP- или HTTPS-соединение с localhost по сетевым портам 29009, 29010, 30102 и 30103. Обращения отправлялись на сайт yandexmetrica.com, доменное имя которого резолвилось в IP-адрес 127.0.0.1. Информация о сетевых портах, на которых мобильные приложения Yandex должны были открыть слушающие сокеты, подгружалась динамически через запрос к хосту startup.mobile.yandex.net.

Сервер также передавал параметр first_delay_seconds, содержащий задержку перед запуском сетевых сервисов (приложения начинали принимать соединения не сразу после установки, а примерно через три дня). В ответ на HTTP-запрос мобильное приложение возвращало набор данных, включающий идентификаторы в сервисах Yandex, системные UUID и AAID (Android Advertising ID). JavaScript код Yandex Metric переправлял полученные идентификаторы на сервер mc.yango.com.

Упомянутые методы передачи данных работали в версиях Chrome и Edge для Android. В Firefox работал только метод Yandex. В DuckDuckGo и Brave отправка запросов к localhost блокировалась или требовала ручного подтверждения операции. В представленном в конце мая выпуске Chrome 137 была добавлена защита от подстановки данных в SDP.

Для защиты от рассмотренных злоупотреблений развивается спецификация PNA (Private Network Access), дающая возможность ограничить обращение к хостам во внутренней сети (127.0.0.0/8, 192.168.0.0/16, 10.0.0.0/8 и т.п.). Пробное внедрение данной спецификации в Chrome оказалось неудачным из-за возникновения проблем с совместимостью с некоторыми устройствами. В настоящее время развивается второй вариант спецификации - LNA (Local Network Access), для поддержки которой не требуется изменение на стороне устройств и достаточно изменений на стороне сайтов, которым нужен доступ к интранет-ресурсам.

  1. OpenNews: 30% из тысячи крупнейших сайтов используют скрипты для скрытой идентификации
  2. OpenNews: Представлена новая техника скрытой идентификации системы и браузера
  3. OpenNews: Принадлежащий GitLab сервис Gitter использует методы скрытой идентификации пользователей
  4. OpenNews: Новый вид теоретической атаки по деанонимизации в Tor
  5. OpenNews: Капча CloudFlare может применяться для деанонимизации пользователей Tor
Обсуждение (424 +57) | Тип: Проблемы безопасности | Интересно
·03.06.2025 Представлен язык программирования Gauntlet, расширяющий возможности языка Go (244 +1)
  Доступен первый альфа-выпуск языка программирования Gauntlet, надстройки над языком Go, решающей некоторые архитектурные проблемы и добавляющей дополнительную функциональность. Программы на языке Gauntlet поддерживают все возможности языка Go, транслируются в представление на языке Go и интегрируются с существующей экосистемой Go без необходимости задействования обвязок (binding). Развиваемый проектом инструментарий написан на языке F# и распространяется под лицензией GPLv3. Для работы с кодом предоставляется дополнение к редактору VSCode.

Решаемые в Gauntlet проблемы:

  • Назойливый вывод ошибок, связанных с неиспользуемыми переменными (Gauntlet добавляет для всех неиспользуемых переменных заглушки вида "_ = a").
  • Раздутый код для обработки ошибок. В Gauntlet вместо условных блоков вида "if err != nil" используются однострочные выражения "try-with".
  • Назойливый способ импорта и экспорта (например, в Go необходимо, чтобы экспортируемые имена начинались на заглавную букву).
  • Отсутствие тернарного оператора. В Gauntlet можно использовать выражения вида 'let properWord = @String len(lines) > 1 ? "lines" : "line"'.
  • Отсутствие синтаксиса switch-case с вычисляемыми выражениями.
  • Усложнённые циклы "for". В Gauntlet можно писать "for let _, c in "Hello" {" вместо "for _, c := range "Hello" {".
  • Необычный оператор присваивания (":=" для одновременного объявления и инициализации переменных; "=" для изменения значения уже объявленных переменных).
  • Невозможность вызова функций по цепочке (в Gauntlet поддерживается вызов вида 'let trimmedLines = fileContentStrVersion => strings.trimSpace(_) => strings.split(_, "\n")'.

Расширенные возможности Gauntlet:

  • Синтаксис "when-is" похожий на switch.case, но манипулирующий выражениями.
  • Поддержка pipe-каналов, позволяющих по цепочке пропускать значение через несколько выражений или функций. например "10 => add(_, 10) => add(_, 30) => divide(_, 2)".
  • Выражения "try .. with" и "force .. with".
  • Выражение "wrapper" для создания псевдонимов типов (например. "wrapper Int Dollars").

  1. OpenNews: Выпуск языка программирования Go 1.24
  2. OpenNews: Оценка потребления памяти при одновременном запуске миллиона задач
  3. OpenNews: Лидер проекта Go принял решение покинуть пост
  4. OpenNews: В инструментарий для языка Go добавлена возможность отслеживания уязвимостей в модулях
  5. OpenNews: Выпуск языка программирования Crystal 1.16
Обсуждение (244 +1) | Тип: Программы |
·03.06.2025 Релиз программы для обработки фотографий RawTherapee 5.12 (44 +13)
  Опубликован релиз программы RawTherapee 5.12, предоставляющей средства для редактирования фотографий и преобразования изображений в формате RAW. Программа поддерживает большое количество RAW-форматов файлов, в том числе, камер с датчиками Foveon- и X-Trans, а также может работать со стандартом Adobe DNG и с форматами JPEG, PNG и TIFF (до 32 бит на канал). Код проекта написан на языке C++ с использованием GTK и распространяется под лицензией GPLv3. Сборки подготовлены для Linux (AppImage), macOS и Windows.

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

В новом выпуске:

  • Добавлена новая опция "Убрать дымку" (Dehaze) для инструмента "Уровни чёрного для сенсоров" (Raw Black Points), устанавливающая уровень чёрного в каждом канале равным интенсивности самой тёмной точки изображения.
  • В инструмент корректировки дисторсии (Distortion Correction) добавлена функция "De-fish" для исправления сферического искажения перспективы, возникшего, например, при применении сверхширокоугольных объективов типа "рыбий глаз". В настройки "Объектив / Геометрия" добавлен параметр "Масштаб" (Scale), позволяющий вручную масштабировать преобразованное изображение в ситуациях, когда автомасштабирование при помощи функции "Auto-fill" не дало желаемого результата.
  • Добавлен инструмент для сжатия цветового диапазона ("Gamut Compression"), использующий оператор ACES (Academy Color Encoding System) для повышения видимости сильно насыщенных цветов и приведения цветов в пределы выбранного цветового диапазона перед применением других инструментов для работы с цветом.
  • Инструмент изменения размера был переименован в "Resize & Framing" и расширен возможностью добавления декоративной рамки вокруг изображения, цвет и размер которой может быть задан пользователем.
  • Добавлена поддержка файлов DNG (Digital Negative), в которых для представления компонентов цвета используются значения с плавающей запятой, полученных после выполнения операции "demosaic" (восстановление недостающих компонентов цвета на основе обработки имеющихся в raw-файле данных от сенсора).
  • В инструмент "Абстрактный профиль" (Abstract Profile) добавлен режим усиления контраста, позволяющий восстановить контраст между соседними областями изображения, потерянный при применении преобразований на основе абстрактного профиля.
  • В инструменте настройки цвета (Color appearance) расширены операторы тонального отображения (Tone Mapping), позволяющие настраивать контраст и яркость изображения, сохраняя детализацию в светлых и тёмных областях.
  • В инструменте "Shadows/Highlights & Tone Equalizer" реализован новый метод глобального тонового отображения - GHS ("Generalized Hyperbolic Stretch").
  • Вместо поддержания собственного форка dcraw продолжена работа по переходу на использование библиотеки LibRaw (ответвление от dcraw) для извлечения raw-изображений с камер.
  • На камерах Canon обеспечен доступ ко всем файлам со снимками в режиме RAW Burst (ранее были доступны только первые 6 изображений).
  • Расширен спектр распознаваемых объективов Sony и реализована поддержка автоматической корректировки искажений на основе профиля объектива.
  • Расширена поддержка камер:
    • Canon EOS R8
    • Fujifilm X-E4
    • Sony ILCE-7CR
    • Sony ILCE-7M3
    • Sony ILME-FX3

  1. OpenNews: Выпуск программы для обработки фотографий RawTherapee 5.10
  2. OpenNews: Google опубликовал библиотеку Magritte для скрытия лиц на видео и фотографиях
  3. OpenNews: Выпуск программы для управления фотографиями digiKam 8.0
  4. OpenNews: Доступен менеджер фотографий Shotwell 0.32
  5. OpenNews: Выпуск программы для обработки фотографий Darktable 5.0.0
Обсуждение (44 +13) | Тип: Программы |
·01.06.2025 Инцидент с подменой коммитов в ветке ядра Linux от Кеса Кука (217 +57)
  Линус Торвальдс потребовал от администратора kernel.org немедленно заблокировать учётную запись Кеса Кука, бывшего главного сисадмина kernel.org и лидера Ubuntu Security Team, сопровождающего в ядре 14 подсистем, связанных с безопасностью. Константин Рябицев, отвечающий за работу инфраструктуры kernel.org, выполнил блокировку. Поводом для блокировки послужил pull-запрос на включение в ветку ядра 6.16 изменений, ссылающийся на git-репозиторий, в котором была изменена информация об авторстве некоторых коммитов.

В поддерживаемом Кесом git-репозитории присутствовали фиктивные изменения, в поле автора и коммитера в которых был указан "Linus Torvalds", но Линус их не добавлял. Например, под именем Линуса в ветке Кеса имелся коммит, который повторял другой коммит в ветке Линуса, но с другим хэшем SHA1. Оба коммита выглядят одинаково, за исключением информации о подписи.

Изменения не походили на случайную ошибку при выполнении операции "git rebase", так как содержали неверную информацию об авторе коммита. Линус Торвальдс посчитал это следами потенциально вредоносной активности и инициировал блокировку приёма любых изменений от Кеса, до выяснения причин подобных манипуляций и подтверждения, что система Кеса не была скомпрометирована.

Кес ответил, что не понимает, как такое могло произойти. До этого он столкнулся с проблемами при попытке объединения нескольких своих git-веток, после чего попытался решить их операцией "git rebase", но похоже это не помогло. Всё это происходило на фоне сбоя SSD-накопителя, выдававшего ошибки во время копирования. Кес считал, что после сбоя ему удалось восстановить состояние своих репозиториев, но, судя по всему, это не так. Для восстановления целостности Кес намерен пересоздать свои ветки из отдельных патчей. В качестве наиболее вероятной причины возникшей подмены автора Кес считает неудачную попытку восстановления репозитория после его повреждения.

Линуса не устроило такое объяснение, так как, по его мнению, изменения истории коммитов в репозитории Кеса очень похожи на преднамеренные действия, а не на случайный сбой. Перебазирование истории изменений операцией "git rebase" могло объяснить перезапись коммитера, но Линус не может понять, как подобная операция "git rebase" могла быть совершена по ошибке.

Перезапись одного или двух коммитов ещё можно было списать на ошибку, но в репозитории Кеса были перезаписаны более шести тысяч merge-коммитов, из которых в 330 автором был выставлен Линус, при том, что данные коммиты не были получены из git-дерева Линуса. Совершённые изменения больше напоминают работу скрипта, чем результат повреждения информации на накопителе, так как они требуют отдельного пересоздания копии каждого коммита.

Кес уверил Линуса, что не делал этого специально и не стал бы проводить подобные эксперименты без предупреждения (например, прошлый эксперимент по вызову коллизий коммитов был согласован с Линусом). На этой неделе он производил несколько ручных операций с репозиторием и теперь попытается разобраться, что пошло не так, и воспроизвести проблему. Например, Кес выполнял операцию rebase для git-деревьев for-next/hardening и for-linus/hardening, используя в отличие от прошлых подобных преобразований ветку "master", а не rc2. В ходе данной операции он вносил изменения в скрипты для проверки push-запросов.

Дополнение 1: Кес Кук опубликовал ещё одно сообщение, в котором заявил, что вероятнее всего проблема возникла из-за использования утилиты "git-filter-repo", выполняющей перезапись истории коммитов в репозитории, в сочетании с командой "b4 trailers", предназначенной для получения и применение трейлеров к коммитам (например, "Signed-off-by:").

Дополнение 2: Константин Рябицев, как автор утилиты b4, подтвердил, что проблема вызвана неаккуратным использованием данной программы (Кес не обратил внимание на предупреждение в выводе и игнорировал некоторые проверки корректности). Константин на 100% уверен, что изменение произошло без злого умысла. Доступ Кеса к kernel.org восстановлен. В утилиту b4 будет добавлена проверка для предотвращения подобных ситуаций в будущем и запрета перезаписи коммитов, автор которых отличается от текущего пользователя.

  1. OpenNews: Университет Миннесоты отстранён от разработки ядра Linux за отправку сомнительных патчей
  2. OpenNews: Коллизии в сокращённых идентификаторах коммитов в ядре Linux
  3. OpenNews: Кейс Кук из Google призвал модернизировать процесс работы над ошибками в ядре Linux
  4. OpenNews: Проблемы с безопасностью в патчах, предложенных сотрудником Huawei для защиты ядра Linux
  5. OpenNews: Компрометация GitHub Actions-обработчика changed-files, применяемого в 23 тысячах репозиториев
Обсуждение (217 +57) | Тип: К сведению | Интересно
·30.05.2025 Уязвимости в apport и systemd-coredump, позволяющие извлечь хэши паролей пользователей системы (175 +16)
  Компания Qualys выявила две уязвимости в инструментах apport (CVE-2025-5054) и systemd-coredump (CVE-2025-4598), применяемых для обработки core-файлов, генерируемых после аварийного завершения процессов. Уязвимости позволяют получить доступ к core-файлам, сохранённым после аварийного завершения suid-приложений или некоторых системных фоновых процессов, в памяти которых могут содержаться прокэшированные учётные данные или ключи шифрования. Утилита apport автоматически вызывается для сохранения core-дампов в Ubuntu, а systemd-coredump в Red Hat Enterprise Linux 9+, Fedora и многих других дистрибутивах Linux.

Продемонстрирована техника атаки, в ходе которой создавались условия для аварийного завершения suid-приложения unix_chkpwd и получения доступа к core-файлу с дампом состояния во время краха. В сохранённом core-дампе присутствовали хэши паролей пользователей системы, остававшиеся в памяти аварийно завершившегося процесса после загрузки содержимого /etc/shadow. Возможность эксплуатации уязвимостей продемонстрирована в Ubuntu 24.04 и Fedora 40/41, но предполагается, что и другие дистрибутивы подвержены подобным атакам.

Обе уязвимости вызваны состоянием гонки, позволяющим подменить аварийно завершившийся suid-процесс на другой процесс в момент после начала обработки ядром аварийного завершения, но до проверки обработчиком в пространстве пользователя параметров процесса через /proc/pid/files. Вызов apport и systemd-coredump осуществляется следующим образом: ядро, получив информацию об аварийном завершении процесса, вызывает обработчик, указанный в файле /proc/sys/kernel/core_pattern, после чего передаёт ему содержимое core-дампа через входной поток.

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

Атака на apport сводится к следующим шагам:

  • Ответвляется новый процесс и вызывается функция execve() для запуска suid-программы, такой как unix_chkpwd.
  • Пропускается время, необходимое для загрузки suid-программой конфиденциальных данных в память (в случае unix_chkpwd ожидается загрузка хэшей паролей всех пользователей системы из файла /etc/shadow).
  • До окончания выполнения команды процессу отправляется сигнал SIGSEGV или SIGSYS для аварийного завершения.
  • В ответ на аварийное завершение ядро формирует core-дамп и запускает процесс apport для обработки core-дампа в пространстве пользователя.
  • После запуска apport, но до начала разбора аварийно завершившемуся процессу отправляется сигнал SIGKILL, а сам процесс заменяется на другой без флага suid. Для обхода проверок в apport новый процесс создаётся внутри отдельных пространств имён (user, pid и mount namespace).
  • apport подключается к unix-сокету /run/apport.socket в созданном для нового процесса пространстве имён точек монтирования и отправляет файловый дескриптор для доступа к core-дампу.

Чтобы получить для нового процесса нужный идентификатор, совпадающий с идентификатором suid-процесса, до отправки сигнала SIGSEGV suid-процесс останавливается сигналом SIGSTOP и во время остановки циклично запускаются новые процессы, пока не будет получен PID с предшествующим номером, близким к подменяемому suid-процессу. После сдвига нумерации PID suid-процессу отправляются сигналы SIGSEGV и SIGCONT, после чего отправляется SIGKILL и циклично запускаются новые процессы для достижения того же PID, что и у suid-процесса.

Что касается systemd-coredump, то, с одной стороны, проведение атаки на него проще, так как нет необходимости заменять suid-процесс на процесс в отдельном пространстве пользователя и достаточно добиться совпадения AT_UID и AT_EUID. С другой стороны, systemd-coredump написан на языке Си и запускается достаточно быстро, что даёт меньше времени для подмены, в отличие от apport, который написан на Python и в процессе инициализации грузит различные pyc-файлы. Подобная проблема решается искусственным замедлением systemd-coredump - при вызове suid-файла передаётся очень большое число аргументов командной строки, что создаёт нужную задержку, возникающую во время разбора /proc/pid/cmdline.

В процессе анализа уязвимостей исследователи также выявили, что systemd-coredump при настройке вызова не указывает в /proc/sys/kernel/core_pattern флаг "%d", что позволяет атакующему вызвать аварийное завершение фоновых процессов, выполняемых с правами root и ответвляющих другие процессы с изменением идентификатора пользователя на непривилегированного пользователя, под которым совершается атака. Подобная возможность позволяет совершить атаку не только на setuid-приложения, но и на такие процессы, как sshd-session (OpenSSH), sd-pam (systemd) и cron, для получения осевших в их памяти конфиденциальных данных, таких как закрытые ключи, хэши паролей из /etc/shadow, канареечные метки из стека и данные для обхода рандомизации адресного пространства (ASLR).

Проследить за публикацией обновлений пакетов в дистрибутивах можно на страницах: Debian, Ubuntu, RHEL, openSUSE, Fedora, Gentoo, Arch, ROSA, Arch. В качестве обходного пути блокирования уязвимостей предлагается отключить сохранение core-дампов для suid-программ и сбрасывающих привилегии процессов, выставив параметр /proc/sys/fs/suid_dumpable в значение 0. Для полноценного устранения проблемы требуется внесение изменений в ядро Linux, реализующее возможность передачи информации об аварийно завершившемся процессе через механизм pidfd (pidfd связывается с конкретными процессами и в отличие от pid повторно не назначается).

  1. OpenNews: Уязвимость в systemd-coredump, позволяющая определить содержимое памяти suid-программ
  2. OpenNews: Критическая уязвимость в обработчике крахов приложений, применяемом в Ubuntu
  3. OpenNews: Уязвимость в CRI-O, позволяющая получить root-доступ к хост-окружению
  4. OpenNews: Уязвимости в утилите needrestart, позволяющие получить root-доступ в Ubuntu Server
  5. OpenNews: Выявлена возможность обхода ограничений доступа к "user namespace" в Ubuntu
Обсуждение (175 +16) | Тип: Проблемы безопасности |
·29.05.2025 Уязвимости в пакетах с Kea DHCP и cyrus-imapd, позволяющие повысить привилегии в системе (142 +7)
  В применяемых различными дистрибутивами конфигурациях DHCP-сервера Kea, развиваемого консорциумом ISC в качестве замены классического ISC DHCP, выявлены уязвимости, в некоторых ситуациях позволяющие локальному пользователю выполнить код с правами root или перезаписать любой файл в системе:
  • CVE-2025-32801 - позволяет локальному пользователю получить root-привилегии в системах, в которых Kea запускается под пользователем root, или получить полный контроль над сервером Kea в системах, запускающих Kea под пользователем с урезанными привилегиями. Атака осуществляется через обращение к REST API, предоставляемому сервисом kea-ctrl-agent и по умолчанию принимающему запросы через localhost:8000. В большинстве конфигураций REST API доступен для всех локальных пользователей системы без прохождения аутентификации.

    Эксплуатация осуществляется через отправку команды set-config, позволяющей управлять настройками всех сервисов Kea. Среди прочего команда может использоваться для изменения параметра "hooks-libraries", влияющего на загрузку дополнительных библиотек-обработчиков. Атакующий может добиться выполнения своего кода в контексте сервисов Kea через подстановку своей библиотеки, функция с атрибутом "constructor" из которой будет вызвана при открытии библиотеки функцией dlopen().

    
       curl -X POST -H "Content-Type: application/json" \
        -d '{ "command": "config-set", "arguments":
              { "Control-agent": {"hooks-libraries": [{"library": "/home/someuser/libexploit.so"}] }}}' \
        localhost:8000
    
  • CVE-2025-32802 - уязвимость даёт возможность использовать команду config-write в REST API для перезаписи любого файла в системе, насколько позволяют права пользователя, под которым выполняется Kea. Атакующий может контролировать записываемое содержимое, но данные записываются в формате JSON и должны включать корректные настройки Kea. Тем не менее, не исключается, что этого может быть достаточно для запуска команд с правами root через манипуляцию с файлами в каталоге /etc/profile.d.
    
       curl -X POST -H "Content-Type: application/json" \
        -d '{ "command": "config-write", "arguments": { "filename": "/etc/evil.conf" } }' \
        localhost:8000
    

    Отдельно упоминается несколько сценариев использования команды config-write для изменения настроек Kea. Например, можно перенаправить лог файлы в произвольное место файловой системы, организовать спуфинг управляющих UNIX-сокетов сервисов или блокировать работу Kea.

  • CVE-2025-32803 - логи (/var/log/kea*.log), а также файлы /var/lib/kea/*.cvs, содержащие информацию о привязке IP-адресов (DHCP lease) и сопутствующие данные, доступны всем на чтение.

Запуск Kea с правами root практикуется в дистрибутивах Arch Linux, Gentoo, openSUSE Tumbleweed (до 23 мая), FreeBSD, NetBSD (pkgsrc) и OpenBSD. В Debian, Ubuntu и Fedora сервис запускался под отдельным непривилегированным пользователем. В Gentoo пакет с Kea доступен только в unstable-репозитории для архитектуры amd64. В Ubuntu, в отличие от других систем, сервис kea-ctrl-agent запускался только в случае указания в настройках доступа к REST API по паролю. Проследить за публикацией обновлений пакетов в дистрибутивах можно на страницах: Debian, Ubuntu, RHEL, openSUSE, Fedora, Gentoo, ALT Linux, Arch, FreeBSD, OpenBSD и NetBSD.

Дополнительно можно отметить уязвимость (CVE-2025-23394), проявляющуюся в пакете с IMAP-сервером Cyrus, поставляемом проектом openSUSE в репозиториях Tumbleweed и Factory. Уязвимость даёт возможность локальному пользователю поднять привилегии с пользователя cyrus до root. Уязвимости присвоен критический уровень опасности (9.8 из 10), но он необоснованно завышен, так как для атаки требуется наличие прав cyrus, которые можно получить через эксплуатацию какой-то иной уязвимости в cyrus-imapd.

Проблема вызвана ошибкой при работе с символическими ссылками в скрипте daily-backup.sh, специфичном для дистрибутивов SUSE/openSUSE. Суть уязвимости в том, что скрипт daily-backup.sh запускается с правами root, но производит запись в каталог /var/lib/imap, в котором может создавать файлы непривилегированный пользователь cyrus. Атака сводится к созданию символической ссылки, указывающей на системный файл (например, можно создать символическую ссылку /var/lib/imap/mailboxes.txt, указывающую на /etc/shadow). Уязвимость устранена в версии пакета cyrus-imapd 3.8.4-2.1.

  1. OpenNews: Опубликован DHCP-сервер Kea 1.6, развиваемый консорциумом ISC
  2. OpenNews: Удаленный запуск кода злоумышленником в Cyrus IMAP
  3. OpenNews: Критическая уязвимость в конфигурациях Postfix, использующих SASL-библиотеку Cyrus
  4. OpenNews: FastMail продолжит развитие Cyrus IMAP после сворачивания разработки в CMU
  5. OpenNews: Уязвимости в Cyrus IMAPd, Spring Framework, rsyslog, CUPS, OpenTTD, Wireshark, Tomcat, librsvg и QEMU
Обсуждение (142 +7) | Тип: Проблемы безопасности |
Следующая страница (раньше) >>



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру