Уязвимость в OpenH264, позволяющая выполнить код при декодировании видео
В проекте OpenH264, развивающем открытую реализацию видеокодека H.264, выявлена уязвимость (CVE-2025-27091), потенциально способная привести к выполнению кода при декодировании специально оформленного видео. Проблема проявляется в режимах SVC (Scalable Video Coding) и AVC (Advanced Video Coding), и вызвана состоянием гонки, приводящем к записи данных за пределы выделенного буфера. Уязвимость устранена в выпуске OpenH264 2.6.0. Проследить за появлением обновлений в дистрибутивах можно на следующих страницах: Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD.
Библиотека OpenH264 создана и сопровождается компанией Cisco и примечательная тем, что позволяет использовать технологии сжатия видео H.264 в сторонних продуктах без ограничений и отчислений, так как компания Cisco выступает лицензиатом организации MPEG-LA. Право на использование запатентованных технологий сжатия видео передаётся только для сборок, которые распространяются компанией Cisco, например, загружены с сайта Cisco. Подобная особенность используется в Firefox, openSUSE и Fedora для легального использования кодека H.264 - дистрибутивы поставляют мета-пакет, а Firefox включает плагин, которые содержат код для загрузки готовой сборки OpenH264 с сайта ciscobinary.openh264.org.
Источник: https://www.opennet.ru/opennews/art.shtml?num=62775
Выпуск labwc 0.8.3, композитного сервера для Wayland
Опубликован выпуск проекта labwc 0.8.3 (Lab Wayland Compositor), развивающего композитный сервер для Wayland с возможностями, напоминающими оконный менеджер Openbox (проект преподносится как попытка создания альтернативы Openbox для Wayland). Из особенностей labwc упоминается минимализм, компактная реализация, широкие возможности настройки и высокая производительность. Анимированные эффекты, градиенты и пиктограммы, за исключением кнопок для окон, не поддерживаются принципиально. Код проекта написан на языке Си и распространяется под лицензией GPLv2.
В качестве основы используется библиотека wlroots, развиваемая разработчиками пользовательского окружения Sway и предоставляющая базовые функции для организации работы композитного менеджера на базе Wayland. Возможно подключение надстроек с реализацией таких функций, как создание скриншотов, отображение обоев на рабочем столе, размещение панели и меню. Для запуска X11-приложений в окружении на базе протокола Wayland поддерживается использование DDX-компонента XWayland. Тема оформления, базовое меню и горячие клавиши настраиваются через файлы конфигурации в формате xml. Имеется встроенная поддержка экранов с высокой плотностью пикселей (HiDPI).
Помимо встроенного корневого меню, настраиваемого через файл menu.xml, можно подключить сторонние реализации меню приложений, такие как bemenu, fuzzel и wofi. В качестве панели можно использовать Waybar, sfwbar, Yambar или LavaLauncher. Для управления подключением мониторов и изменением их параметров предлагается использовать wlr-randr или kanshi. Блокировка экрана осуществляется при помощи swaylock.
В новой версии:
- Добавлена поддержка Wayland-протокола ext-workspace, предназначенного для реализации виртуальных рабочих столов и событий с информацией о состоянии рабочих столов.
- Улучшена реализация меню. Добавлена возможность размещения пиктограмм в меню. Реализована поддержка всплывающих меню верхнего уровня для динамического формирования меню.
- Внесено много исправлений, нацеленных на увеличение производительности и повышения удобства работы.
- В файл конфигурации добавлены новые настройки "‹core›‹autoEnableOutputs›", "‹resize›‹cornerRange›", "‹resize›‹minimumArea›" и "‹theme›‹fallbackAppIcon›".
- Добавлена клавиатурная комбинация Alt-Shift-Tab для перехода к прошлому окну.

Источник: https://www.opennet.ru/opennews/art.shtml?num=62773
Выпуск Wine 10.1 и Vkd3d 1.15
Опубликован экспериментальный выпуск открытой реализации Win32 API - Wine 10.2. С момента выпуска 10.1 было закрыто 20 отчётов об ошибках и внесено 269 изменений.
Наиболее важные изменения:
- Встроенный пакет Vkd3d с реализацией Direct3D 12 обновлён до версии 1.15.
- Добавлена поддержка настройки приоритетов потоков.
- Реализована возможность динамического включения режима Wow64 (64-bit Windows-on-Windows), позволяющего выполнять 32-разрядные Windows-приложения в 64-разрядных Unix-системах.
- Продолжена разработка драйвера для Bluetooth.
- Закрыты отчёты об ошибках, связанные с работой приложений: Wordpad,
cmd.
- Закрыты отчёты об ошибках, связанные с работой игр: Cyberpunk 2077, Final Fantasy XI Online, Guild Wars, MSWT Kart 2004, YOU and ME and HER, Myst, Sekiro: Shadows Die Twice.
Дополнительно можно отметить выпуск пакета vkd3d 1.15 с реализацией Direct3D 12, работающей через трансляцию вызовов в графический API Vulkan. В состав пакета входят библиотеки libvkd3d с реализаций Direct3D 12, libvkd3d-shader c транслятором 4 и 5 модели шейдеров и libvkd3d-utils с функциями для упрощения портирования приложений Direct3D 12, а также набор демонстрационных примеров, включая порт glxgears на Direct3D 12. Код проекта распространяется под лицензией LGPLv2.1.
В новой версии в компиляторе языка шейдеров HLSL продолжена реализация поддержки тесселяционных шейдеров и улучшено определение перезагрузки функций. В libvkd3d добавлена функция vkd3d_queue_signal_on_cpu(). Для HLSL реализованы встроенные функции
GatherCmp(),
GatherCmpAlpha(), GatherCmpBlue(), GatherCmpGreen(), GatherCmpRed(),
InterlockedAdd(), InterlockedAnd(), InterlockedCompareExchange(), InterlockedCompareStore(), InterlockedExchange(), InterlockedMax(), InterlockedMin(), InterlockedOr(), InterlockedXor()
и isinf().
Источник: https://www.opennet.ru/opennews/art.shtml?num=62772
В загрузчике GRUB2 выявлена 21 уязвимость
Опубликованы сведения о 21 уязвимости в загрузчике GRUB2, большинство из которых приводят к переполнению буфера и могут использоваться для обхода механизма верифицированной загрузки UEFI Secure Boot. Проблемы пока устранены только в виде патча. Статус устранения уязвимостей в дистрибутивах можно оценить на данных страницах: Debian, Ubuntu, SUSE, RHEL, Fedora. Для устранения проблем в GRUB2 недостаточно просто обновить пакет, требуется также сформировать новые внутренние цифровые подписи и обновлять инсталляторы, загрузчики, пакеты с ядром, fwupd-прошивки и shim-прослойку.
Выявленные уязвимости:
- CVE-2024-45774: запись за границу буфера при разборе специально оформленных JPEG-изображений.
- CVE-2024-45776, CVE-2024-45777: целочисленные переполнения при чтении специально оформленных mo-файлов, приводящие к записи за пределы буфера.
- CVE-2024-45778, CVE-2024-45779: целочисленные переполнения при работе с повреждённой файловой системой BFS, приводящие к переполнению буфера.
- CVE-2024-45780: целочисленное переполнение при обработке специально оформленных tar-архивов, приводящее к записи за пределы буфера.
- CVE-2024-45781, CVE-2025-0677: переполнения буфера при работе с повреждённой файловой системой UFS.
- CVE-2024-45782, CVE-2025-1125: переполнения буфера при монтировании специально оформленного раздела HFS.
- CVE-2025-0622: обращение к памяти после её освобождения при манипуляциях с модулями, может привести к выполнению кода атакующего.
- CVE-2025-0624: переполнение буфера при сетевой загрузке.
- CVE-2025-0678: переполнения буфера при работе с повреждённой файловой системой Squash4.
- CVE-2025-0684: переполнения буфера при манипуляциях с символическими ссылками в ФС Reiserfs.
- CVE-2025-0685: переполнения буфера при манипуляциях с символическими ссылками в ФС JFS.
- CVE-2025-0685: переполнения буфера при манипуляциях с символическими ссылками в ФС ROMFS.
- CVE-2025-0689: переполнения буфера при работе со специально модифицированным разделом UDF.
- CVE-2025-0690: переполнения буфера при получении специально оформленных данных с клавиатуры.
- CVE-2025-1118: обход режима изоляции Lockdown и извлечение произвольного содержимого памяти через выполнение команды dump.
- CVE-2024-45775: отсутствие проверки ошибки при выделении памяти при разборе переданных аргументов может привести к повреждению данных IVT
(Interrupt Vector Table).
- CVE-2024-45783: доступ по нулевому указателю при монтировании некорректной ФС HFS+.
В большинстве Linux-дистрибутивов для верифицированной загрузки в режиме UEFI Secure Boot используется небольшая прослойка shim, заверенная цифровой подписью Microsoft. Данная прослойка верифицирует GRUB2 собственным сертификатом, что позволяет разработчикам дистрибутивов не заверять каждое обновление ядра и GRUB в Microsoft. Уязвимости в GRUB2 позволяют добиться выполнения своего кода на этапе после успешной верификации shim, но до загрузки операционной системы, вклинившись в цепочку доверия при активном режиме Secure Boot и получив полный контроль за дальнейшим процессом загрузки, например, для загрузки другой ОС, модификации компонентов операционной системы и обхода защиты Lockdown.
Для блокирования уязвимости без отзыва цифровой подписи дистрибутивы могут использовать механизм SBAT (UEFI Secure Boot Advanced Targeting), поддержка которого реализована для GRUB2, shim и fwupd в большинстве популярных дистрибутивов Linux. SBAT разработан совместно с Microsoft и подразумевает добавление в исполняемые файлы компонентов UEFI дополнительных метаданных, которые включают информацию о производителе, продукте, компоненте и версии. Указанные метаданные заверяются цифровой подписью и могут отдельно включаться в списки разрешённых или запрещённых компонентов для UEFI Secure Boot.
SBAT позволяет блокировать использование цифровой подписи для отдельных номеров версий компонентов без необходимости отзыва ключей для Secure Boot. Блокирование уязвимостей через SBAT не требует использования списка отозванных сертификатов UEFI (dbx), а производится на уровне замены внутреннего ключа для формирования подписей и обновления GRUB2, shim и других поставляемых дистрибутивами загрузочных артефактов. До внедрения SBAT, обновление списка отозванных сертификатов (dbx, UEFI Revocation List) было обязательным условием полного блокирования уязвимости, так как атакующий, независимо от используемой операционной системы, мог для компрометации UEFI Secure Boot использовать загрузочный носитель со старой уязвимой версией GRUB2, заверенной цифровой подписью.
Источник: https://www.opennet.ru/opennews/art.shtml?num=62771
Обновление почтового сервера Exim 4.98.1 с устранением уязвимости
Доступен корректирующий выпуск почтового сервера Exim 4.98.1, в котором устранена уязвимость (CVE-2025-26794), позволяющая осуществить подстановку SQL-кода во внутреннюю БД (Hints DB), используемую для хранения информации о состоянии доставки сообщений.
Уязвимость проявляется только в выпуске Exim 4.98 при сборке с опцией "_USE_SQLITE_", включающей использование СУБД SQLite для хранения Hints DB (включено, если при запуске "exim -bV" выводится "Hints DB: Using sqlite3"). Для эксплуатации уязвимости также требуется включение в файле конфигурации SMTP-команды ETRN ("acl_smtp_etrn" должно быть выставлено в "accept") и включение использования сериализации ETRN ("smtp_etrn_serialize" должно быть выставлено в "true").
Источник: https://www.opennet.ru/opennews/art.shtml?num=62770
Релиз языка программирования Rust 2024 (1.85)
Опубликован релиз языка программирования общего назначения Rust 1.85, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Кроме штатного номера версии 1.85 выпуск обозначен как Rust 2024, что знаменует стабилизацию изменений, предложенных за последние три года. Редакция языка "Rust 2024" станет основой для наращивания функциональности в последующие три года, по аналогии с тем, как выпуск Rust 2021 стал базисом для развития языка в прошедшие три года.
Для сохранения совместимости разработчики могут использовать в своих программах метки "2015", "2018", "2021" и "2024", позволяющие привязать программы к срезам состояния языка, соответствующим выбранным редакциям Rust. Редакции были введены для разделения несовместимых изменений и настраиваются в метаданных cargo-пакетов через поле "edition" в секции "[package]".
Например, редакция "2021" включает стабилизированную на конец 2021 года функциональность и охватывает все дальнейшие изменения, не нарушающие совместимость. Редакция "2024" дополнительно включает нарушающие совместимость новшества, предложенные в текущем выпуске 1.85 и утверждённые для реализации в будущем. Кроме самого языка редакции также учитывают состояние инструментария и документации.
Для автоматической адаптации кода к новой редакции языка может использоваться команда "cargo fix".
Основные несовместимости, зафиксированные в Rust 2024:
- Изменено поведение при захвате параметров в "impl Trait", если не используется новый синтаксис "use‹..›", определяющий информацию о скрытых типах. В Rust 2024 если "use‹..›" не используется все параметры в области видимости неявно захватываются. Если необходимо ограничить захват параметров, следует использовать "use‹..›", например, "impl Trait + use<'x, T>" указывает, что в скрытом типе разрешено использовать только параметры "x" и "T".
- В выражениях "if let" изменена область видимости временных значений, полученных в результате выполнения выражения.
При выполнении "if let $pat = $expr { .. } else { .. }" временные значения, полученные в блоке $expr, теперь будут удалены до переключения на блок "else", а не после обработки "else { .. }".
- Изменена область видимости временных значениях в хвостовых выражениях, завершающих выполнение функции, блока или замыкания. Подобные значения теперь сбрасываются до локальных переменных (раньше они могли сохраняться дольше, чем сам блок и определённые в нём локальные переменные).
- Запрещены некоторые неоднозначно трактуемые разработчиками варианты применения mut, ref, ref mut, & и &mut в шаблонах, например, вместо "let [x, mut y] = &[(), ()];" следует писать "let &[ref x, mut y] = &[(), ()];".
- Блоки "extern" обязательно должны помечаться ключевым словом "unsafe".
- Атрибуты export_name, link_section и no_mangle должны помечаться ключевым словом "unsafe".
- Включено по молчанию предупреждение "unsafe_op_in_unsafe_fn" для проверки обрамления блоками "unsafe {}" кода, используемого в unsafe-функциях.
- Запрещено выставлять ссылки на элементы, определённые как "static mut".
- Lint-проверка "never_type_fallback_flowing_into_unsafe" по умолчанию переключена в режим "deny".
- В спецификатор "expr" добавлена поддержка выражений "const" и "_".
- Lint-проверка "missing_fragment_specifier" переведена в режим вывода ошибки.
- Зарезервировано ключевое слово "gen", которое в будущем планируют использовать для генераторов.
- Зарезервирован стиль определения строк '#"foo"#' и токены '##'.
- В стандартной библиотеке в число автоматически импортируемых типажей добавлены Future и IntoFuture. В структуру "Box‹[T]›"добавлен типаж IntoIterator. Помечены ключевым словом unsafe функции std::env::set_var, std::env::remove_var и std::os::unix::process::CommandExt::before_exec.
- В пакетном менеджере Cargo включён по умолчанию новый механизм обработки зависимостей, выбирающий версии зависимых компонентов с учётом совместимости с версиями компилятора Rust, заявленными как минимально поддерживаемые проектом (MSRV, Minimum Supported Rust Version). Удалены некоторые устаревшие ключи в Cargo.toml. В зависимости
запрещено использование режима "default-features = false", если она унаследована от пакета со значением "default-features = true" или без параметра "default-features".
- В Rustdoc тесты doctest объединены в один исполняемый файл.
При включении doctest через "include_str!" файловый путь теперь вычисляется относительно Markdown-файла, а не файла с кодом.
- В Rustfmt предложена концепция редакций стиля форматирования. Изменена логика сортировки идентификаторов.
Новшества Rust 1.85:
- Добавлена поддержка асинхронно выполняемых замыканий, определяемых в форме "async || {}" и работающих по аналогии с асинхронным вызовом функций (async fn).
- Добавлен атрибут "#[diagnostic::do_not_recommend]", при котором компилятор не будет показывать аннотированные реализации типажей в диагностических сообщениях.
- Предоставлена возможность использования типажей FromIterator и Extend с кортежами, содержащими до 12 элементов - начиная с "(T,)" и заканчивая "(T1, T2, .., T11, T12)".
- В разряд стабильных переведена новая порция API, в том числе стабилизированы методы и реализации типажей:
- Признак "const" применён в функциях:
- Реализован второй уровень поддержки платформы powerpc64le-unknown-linux-musl. Второй уровень поддержки подразумевает гарантию сборки.
Язык Rust сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки). Методы работы с памятью в Rust избавляют разработчика от ошибок при манипулировании указателями и защищают от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п.
Безопасная работа с памятью обеспечивается в Rust во время компиляции через проверку ссылок, отслеживание владения объектами, учёт времени жизни объектов (области видимости) и оценку корректности доступа к памяти во время выполнения кода. Rust также предоставляет средства для защиты от целочисленных переполнений, требует обязательной инициализации значений переменных перед использованием, лучше обрабатывает ошибки в стандартной библиотеке, применяет концепцию неизменяемости (immutable) ссылок и переменных по умолчанию, предлагает сильную статическую типизацию для минимизации логических ошибок.
Источник: https://www.opennet.ru/opennews/art.shtml?num=62769
Выпуск САПР KiCad 9.0
После года разработки опубликован релиз свободной системы автоматизированного проектирования печатных плат KiCad 9.0.0. Это третий значительный выпуск, сформированный после перехода проекта под крыло организации Linux Foundation. Сборки подготовлены для различных дистрибутивов Linux, Windows и macOS. Код написан на C++ с использованием библиотеки wxWidgets и распространяется под лицензией GPLv3.
KiCad предоставляет средства для редактирования электрических схем и печатных плат, 3D-визуализации платы, работы с библиотекой элементов электрических цепей, манипуляций с шаблонами в формате Gerber, симуляции работы электронных схем, редактирования печатных плат и управления проектами. Проектом также предоставляются библиотеки электронных компонентов, посадочных мест и 3D-моделей. По сведению некоторых производителей печатных плат, около 15% заказов поступает с предоставлением схем, подготовленных в KiCad.
Среди изменений в новом выпуске:
- Добавлена поддержка "Списков заданий" (Jobsets), позволяющих создавать файлы с предварительно определёнными операциями над схемами и печатными платами, которые можно использовать повторно для воспроизведения типовых действий разными пользователями. Списки заданий можно выполнять как через GUI, так и из командной строки.
- Реализована поддержка встраивания различных элементов в схемы, распайки и посадочные места, вместо привязки к внешним файлам. Изменение позволяет создавать самодостаточные файлы проектов, не зависящие от сторонних файлов, таких как файлы со шрифтами и 3D-моделями.
- В редакторах схем и печатных плат реализована поддержка инструмента "Кривая Безье". Ранее соединения на базе кривых Безье можно было только импортировать и редактировать, а теперь их можно создавать с нуля.
- Добавлена поддержка многоканального проектирования (Multi-channel design), позволяющего на основе имеющейся раскладки элементов печатных плат создавать новые каналы с аналогичным размещением и разводкой элементов.
- Добавлена поддержка классов компонентов (Component classes), позволяющих группировать различные символы и посадочные места в классы, к которым могут применяться собственные правила проектирования.
- В редакторы схем, символов и посадочные мест добавлена поддержка редактирования таблиц.
- Добавлена возможность определения собственных ошибок и предупреждений ERС (Electrical Rules Check) и DRC (Design Rules Check).
- Добавлена поддержка привязки к колесу мыши различных действий в редакторах печатных плат, схем, символов и посадочных мест.
- Улучшения в редакторах схем и символов.
- Появилась возможность выделения объектов на основе заданных фильтров.
- Добавлен инструмент для синхронизации выводов листа и иерархических меток.
- Добавлена поддержка блоков проектирования схем для создания библиотек повторно используемых элементов схем.
- Добавлен новый класс для выделения соединительных дорожек цветом.
- Улучшения в редакторах печатных плат и посадочных мест:
- Добавлен менеджер зон, позволяющий просматривать и настраивать зоны без редактирования отдельных зон.
- Улучшены операции тентирования верхних и нижних слёв.
- Добавлен пресеты пар медных слоев и возможность быстрого переключения между пресетами.
- Добавлен инструмент для изменения форм.
- Добавлена возможность создания контактных площадок PTH с различной формой медных площадок в разных слоях.
- Добавлены режимы интерактивного позиционирования объектов и прямой манипуляции объектами. Предоставлена возможность перемещения разом нескольких дорожек.
- Добавлена поддержка экспорта 3D-моделей в форматах XAO, STL, BREP и PLY.
Источник: https://www.opennet.ru/opennews/art.shtml?num=62768
Выпуск среды рабочего стола Orbitiny 2
Представлен второй выпуск среды рабочего стола Orbitiny Desktop, написанной с нуля с использованием фреймворка Qt. Проект пытается совместить некоторые инновационные идеи, которые раньше не встречались в пользовательских окружениях, с традиционными элементами, такими как панель, меню и размещение пиктограмм на рабочем столе. Код написан на языке C++ и распространяется под лицензией GPL. С особенностями Orbitiny можно ознакомиться в тексте прошлого анонса.
В новой версии предложен новый конфигуратор (Control Panel), в котором полностью переделано оформление, добавлена боковая панель и встроены функции поиска. Началось формирование бинарных сборок.
Источник: https://www.opennet.ru/opennews/art.shtml?num=62767
Gentoo представил официальные загрузочные образы в формате QCOW2
Разработчики проекта Gentoo объявили о формировании официальных загрузочных образов в формате QCOW2, позволяющих получить полностью работающее системное окружение, готовое к запуску в виртуальных машинах. Образы обновляются раз в неделю, что позволяет использовать их для оценки текущего состояния дистрибутива. Ранее проектом распространялись только установочные образы и Live-сборка для загрузки с USB-устройств.
Предложено два варианта: образ без сетевых сервисов с пустым паролем root и образ сетевыми сервисами, заблокироанными учётными записями и поддержкой настройки через "cloud-init". Первый вариант предназначен для быстрого ознакомления и тестирования дистрибутива на локальной системе, а второй вариант для развёртывания в облачных окружениях. В качестве файловой системы используется XFS.
Образы формируются для архитектур amd64 (x86-64) и arm64 (aarch64), и поддерживают загрузку на системах с EFI (BIOS не поддерживается). В планах публикация образов для архитектур riscv64 и loongarch64. На основе доступных образов можно создавать загрузочные носители, используя команду "qemu-img convert" для преобразования формата qcow2 в дисковый образ.
Источник: https://www.opennet.ru/opennews/art.shtml?num=62766
Обновление Shotstars 2.1, инструмента для отслеживания убывающих звёзд на GitHub
Обновлён инструмент Shotstars 2.1, решающий проблему с отслеживанием исчезновения "звёзд" у проектов на GitHub. Штатные возможности GitHub не предоставляют пользователям информацию по убывающим "звёздам" в проекте и позволяют получить сведения только по их прибавлению. Проект написан на языке Python и распространяется под лицензией GPLv3+
Изменения:
- Добавлена поддержка Python 3.14.
- Ослаблены зависимости от версий Python-библиотек.
- Изменён формат таблицы "история сканирований": добавлен столбец "звезды", создан бэкап ранее сканируемых проектов, таблица очищена, добавлено оповещение пользователю о новом формате и о том, где искать бэкап.
- На Android/Termux в Shotstars из-за небольшого размера терминала реализован компактный режим отображения таблицы "история сканирований".
- В CLI- и HTML-отчёты добавлены новые метрики: размер репозитория и дата последнего обновления репозитория (в том числе определяется дата скрытых обновлений, что позволяет наблюдателю отследить переписываемые коммиты с поддельной датой).
- Для лучшей визуализации данных в HTML-отчёт добавлены смайлики.
- Пакет Shotstars устанавливается с помощью pip. Для пользователей, у которых не установлен Python, для Windows7+, GNU/Linux и Android/Termux (arm, aarch64) сформированы самодостаточные сборки ".bin/.exe", не требующие установки зависимостей. Добавлена
экспериментальная поддержка macOS.
Источник: https://www.opennet.ru/opennews/art.shtml?num=62765
Линус Торвальдс пояснил свою позицию в отношении приёма изменений на Rust
К обсуждению сопротивления мэйнтейнеров внедрению Rust в ядро подключился Линус Торвальдс, который пояснил, что никто не заставляет мэйнтейнеров изучать язык Rust, использовать код на Rust или принимать во внимание наличие в ядре кода на Rust. Мэйнтейнеры могут спокойно продолжать работать только с кодом на Си и никак не пересекаться с Rust. Но подобные сопровождающие не могут и влиять на то, как развивается Rust в ядре, например, не могут вмешиваться в организацию внешнего взаимодействия Rust-кода с кодом их подистемы.
Мэйнтейнеры, которые заинтересованы в продвижении Rust, могут быть вовлечены в разработку и тогда они получают возможность влиять на построение обвязок на Rust и могут принимать участие в сопровождении интерфейсов на Rust. Мэйнтейнеры, которые не хотят иметь дела с Rust, могут не беспокоиться о работе обвязок на Rust, но они не смогут и влиять на их разработку.
Таким образом, вокруг разработчиков, использующих только язык Си, формируется своеобразная защитная стена, ограждающая их от проблем, связанных с Rust и позволяющая не соприкасаться с Rust. Но эта стена работает в обе стороны, поэтому если разработчик не хочет иметь дело с Rust, он не получает возможность влиять на продвижение Rust. Иными словами: "никто не обязан иметь дело с Rust" не обозначает, что "каждый мэйнтейнер может наложить вето на любой код на Rust". Предполагается, что на деле деление мэйнтейнеров не будет столь радикальным и некоторые сопровождающие станут учитывать обвязки на Rust и сотрудничать с их разработчиками, но не слишком активно погружаясь в этот процесс.
Что касается ситуации с подтверждением Rust-обвязок над подсистемой DMA в обход мэйнтейнра, пытающегося заблокировать приём подобных обвязок, Линус раскритиковалдействия Кристофа Хелвига. По мнению Линуса, Кристоф превысил свои полномочия и попытался повлиять на код, который не затрагивал код подсистемы DMA, был реализован в отдельном подкаталоге и не влиял на код, за который отвечает Кристоф. Кристоф попытался контролировать то, для чего используется подсистема DMA и его действия можно сравнить с попыткой запрета использования DMA в каком-то драйвере, лишь потому, что ему не понравился этот драйвер.
Итог: несмотря на то, что сопровождающие отвечают за свой код, они не отвечают за то, как и кем используется результат работы этого кода.
Источник: https://www.opennet.ru/opennews/art.shtml?num=62764
Выпуск каталогизатора домашней библиотеки MyLibrary 3.2
Состоялся релиз каталогизатора домашней библиотеки MyLibrary 3.2. Код программы написан на языке программирования С++ и доступен (GitHub, GitFlic) под лицензией GPLv3. Графический интерфейс пользователя реализован с помощью библиотеки GTK4. Программа адаптирована для работы в операционных системах семейства Linux и Windows. Для пользователей Arch Linux в AUR доступен готовый сценарий сборки пакета. Для пользователей Windows доступен экспериментальный инсталлятор.
MyLibrary каталогизирует файлы книг в формате fb2, epub, pdf, djvu, как доступные напрямую, так и упакованные в архивы (zip, 7z, jar, cpio, iso, tar, tar.gz, tar.bz2, tar.xz, rar), и создаёт собственную базу данных, не изменяя исходные файлы и не меняя их положения. Контроль целостности коллекции и её изменений осуществляется за счёт создания базы данных хэш-сумм файлов и архивов.
Реализован поиск книг по различным критериям (фамилия, имя, отчество автора, название книги, серия, жанр) и их чтение через программу, по умолчанию установленную в системе для открытия соответствующих форматов файлов. При выборе книги отображаются аннотация и обложка книги, если таковые доступны. Поддерживается отображение списка файлов, входящих в коллекцию, и списка книг, входящих в конкретный файл.
Возможны различные операции с коллекцией: обновление (осуществляется проверка всей коллекции и сверка хэш-сумм доступных файлов), экспорт и импорт базы данных коллекции, добавление книг в коллекцию и удаление книг из коллекции, добавление в коллекцию папок с книгами, добавление в коллекцию архивов с книгами, копирование книг коллекции в произвольную папку, перемещение книг из коллекции в коллекцию. Доступно ручное редактирование записей о книгах в базе данных. Создан механизм закладок для быстрого доступа к книгам.
Значимые изменения:
- Добавлена обработка метаданных djvu-файлов.
- Добавлено окно настроек внешнего вида.
- Изменён формат базы данных закладок (совместимость со старым форматом
сохранена, однако пользователям рекомендуется пересоздать закладки
вручную).
- В окно закладок добавлена функция фильтрации отображаемых закладок.
- Исправлена регрессия, приводившая к невозможности сборки с версиями gtkmm старше 4.8.
- Обновлена иконка приложения.
- Другие небольшие изменения и исправления.
Возможности кастомизации внешнего вида:
Источник: https://www.opennet.ru/opennews/art.shtml?num=62751
Выпуск Ubuntu 24.04.2 LTS c обновлением графического стека и ядра Linux
Сформировано обновление дистрибутива Ubuntu 24.04.2 LTS, в которое включены изменения, связанные с улучшением поддержки оборудования, обновлением ядра Linux и графического стека, исправлением ошибок в инсталляторе и загрузчике. В состав также включены актуальные обновления для нескольких сотен пакетов, связанные с устранением уязвимостей и проблем, влияющих на стабильность. Одновременно представлены аналогичные обновления Kubuntu 24.04.2 LTS, Ubuntu Budgie 24.04.2 LTS, Ubuntu MATE 24.04.2 LTS,
Lubuntu 24.04.2 LTS, Ubuntu Kylin 24.04.2 LTS, Ubuntu Studio 24.04.2 LTS, Xubuntu 24.04.2 LTS, Edubuntu 24.04.2 LTS, Ubuntu Cinnamon 24.04.2 LTS
и Ubuntu Unity 24.04.2 LTS.
В состав выпуска включены некоторые улучшения, бэкпортированные из выпуска Ubuntu 24.10:
- Предложены пакеты с ядром Linux версии 6.11 (базовое ядро Ubuntu 24.04 - 6.8).
- Обновлены компоненты графического стека, включая Mesa 24.2 и libdrm 2.4.122, которые были протестированы в выпуске Ubuntu 24.10. Добавлены свежие версии видеодрайверов для чипов Intel, AMD и NVIDIA.
- Обновлены версии некоторых пакетов, таких как
BIND 9.18.30, GCC 14.2, LibreOffice 24.2.7, GNOME 46.3, gnome-control-center 46.5, cloud-init 24.4, ceph 19.2.0, snapd 2.66.1, .NET 8.0.11.
- Добавлена поддержка SoundWire для платформы AMD.
В сборках для рабочего стола (Ubuntu Desktop) новые ядро и графический стек предложены по умолчанию. Для серверных систем (Ubuntu Server) новое ядро добавлено в качестве опции в инсталляторе. Использовать новые сборки имеет смысл только для новых установок - системы, установленные ранее, могут получить все присутствующие в Ubuntu 24.04.2 изменения через штатную систему установки обновлений.
Напомним, что для поставки новых версий ядра и графического стека применяется rolling-модель поддержки обновлений, в соответствии с которой бэкпортированные ядра и драйверы будут поддерживаться только до выхода следующего корректирующего обновления LTS-ветки Ubuntu. Так, предложенное в нынешнем выпуске ядро Linux 6.11 будет поддерживаться до выхода Ubuntu 24.04.3, в котором будет предложено ядро из состава Ubuntu 24.04. Изначально поставляемое базовое ядро 6.8 будет поддерживаться в течение всего пятилетнего цикла сопровождения.
Для отката Ubuntu Desktop на базовое ядро 6.8 следует выполнить команду:
sudo apt install --install-recommends linux-generic
Для установки нового ядра в Ubuntu Server следует запустить:
sudo apt install --install-recommends linux-generic-hwe-24.04
Источник: https://www.opennet.ru/opennews/art.shtml?num=62761
Выпуск Netflow/IPFIX/sFlow коллектора Xenoeye 25.02
Опубликован релиз Netflow/IPFIX/sFlow коллектора Xenoeye 25.02. Коллектор позволяет собирать с различных сетевых устройств статистику о потоках трафика, передаваемую с использованием протоколов Netflow v5, v9, IPFIX и sFlow, обрабатывать данные, генерировать отчёты и строить графики. Ядро проекта написано на языке С, код распространяется под лицензией ISC.
Коллектор агрегирует сетевой трафик по выбранным полям и экспортирует данные в PostgreSQL. По этим данным можно строить отчеты, графики (используя gnuplot, скриптами на Python + Matplotlib) или дашборды в Grafana. Кроме этого, коллектор может запускать пользовательские скрипты при превышении порогов или при падении трафика ниже порогов.
Для подсчёта текущей скорости трафика используются скользящие средние. Механизм, отслеживающий превышение порогов, предназначен для оповещения о DoS/DDoS-атаках и запуске подавления с помощью BGP-анонсов (Flowspec или Blackhole). В комплекте с коллектором идет пример скрипта Telegram-робота, который может оповещать в мессенджер об аномалиях. Коллектор не требователен к ресурсам, он может обрабатывать трафик небольших сетей на Raspberry/Orange Pi или в виртуальной машине с 2-4Гб оперативной памяти.
Изменения в новой версии:
- Добавлена поддержка протокола sFlow, для которого реализована возможность парсить начинку (payload) сетевых пакетов и извлекать оттуда информацию о DNS и TLS (HTTPS) SNI. Хостеры и владельцы датацентров могут использовать данную возможность для борьбы с фишингом и оценки того, какие домены и сайты хостятся в сети.
- Добавлена поддержка вложенных/иерархических объектов мониторинга, позволяющих упростить некоторые конфигурации с большим количеством объектов и повысить производительность обработки по сравнению с "плоским" списком объектов мониторинга.
- Добавлена возможность классификации интерфейсов - трафик выбранных сетевых интерфейсов маршрутизаторов или коммутаторов можно игнорировать или обрабатывать специальным образом.
- Добавлена возможность следить не только за всплесками трафика, но и за падением ниже порогов, что может быть полезно для косвенного мониторинга отдельных серверов или сервисов.
- Добавлена возможность изменять пороги трафика без перезапуска коллектора. Механизм предназначен для ситуации, когда пользователи вычисляют пороги автоматически, исходя из статистики за предыдущие периоды, и периодически обновляют пороги в коллекторе.
- Добавлен LXC-контейнер для быстрого развёртывания и тестирования коллектора. В контейнер входит коллектор с предустановленными объектами мониторинга, PostgreSQL и Grafana.
Источник: https://www.opennet.ru/opennews/art.shtml?num=62757
Mozilla диверсифицирует бизнес и будет продвигать AI и платформу online-рекламы
Марк Сурман (Mark Surman), президент организации Mozilla Foundation, объявил о реорганизации управления проектом Mozilla и диверсификации путей получения доходов. Изменения объясняются желанием преодолеть препятствия, связанные с финансовым ростом и продвижением миссии проекта. Отмечается, что дальнейшее выживание Mozilla зависит одновременно от того, как проект укрепит Firefox, привлечёт новые источники дохода и расширит способы продвижения свой миссии.
В дополнение к браузеру Firefox, который останется основным направлением деятельности Mozilla, компания анонсировала три новых направления:
- Инвестирование в продвижение собственной платформы показа рекламы, заботящейся о конфиденциальности пользователей. Предполагается, что запуск рекламной платформы даст возможность увеличить доходы в ближайшее время.
- Развитие открытых технологий в области искусственного интеллекта, которые позволят компании сохранить актуальность по технологиям и выпускаемым продуктам в среднесрочной перспективе.
- Создание online-кампаний по сбору средств (fundraising), которые привлекут больше сторонников для сохранения проекта в долгосрочной перспективе.
Изменения в управлении сводятся к созданию нового управляющего органа Mozilla Leadership Council, в который войдут руководители всех организаций Mozilla, а также назначению новых председателей советов директоров организаций Mozilla Foundation, Mozilla Corporation и Mozilla.ai. Совет Mozilla Leadership Council создан для координации совместной работы организаций, образующих проект Mozilla. В совет вошли Mark Surman (президент) и Jane Silber (Mozilla.ai), Laura Chambers (Mozilla Corporation), Mohamed Nanabhay (Mozilla Ventures), Nabiha Syed (Mozilla Foundation) и Ryan Sipes (MZLA/Thunderbird).
Митчелл Бейкер (Mitchell Baker) покинула совет директоров Mozilla Corporation (Executive Chairwoman) и прекратила занимать пост его председателя. Новым председателем назначена Керри Купер (Kerry Cooper), которая была принята в совет директоров Mozilla Corporation два года назад, а до этого занимала связанные с маркетингом руководящие должности в компаниях Walmart.com, Rothy's и Choose Energy.
Председателем совета директоров Mozilla Foundation назначена Николь Вонг (Nicole Wong), юрист по вопросам конфиденциальности и интеллектуальной собственности, занимавшая руководящие должности в Google и Twitter. На пост председателем совета директоров Mozilla.ai утверждён Раффи Крикорян (Raffi Krikorian), возглавлявший лабораторию беспилотных автомобилей в Uber, занимавший пост вице-президента по разработке платформ в Twitter и являвшийся техническим директором организации Emerson Collective.
Источник: https://www.opennet.ru/opennews/art.shtml?num=62754
Мнение Грега Кроа-Хартмана и Кейса Кука о продвижении Rust в ядро Linux
Грег Кроа-Хартман (Greg Kroah-Hartman), отвечающий за поддержку стабильной ветки ядра Linux, высказался в поддержку разработки новых компонентов ядра на языке Rust. Как человек, через которого последние 15 лет проходит вся информация об ошибках и уязвимостях в ядре Linux, он утверждает, что большинство ошибок в ядре вызваны специфичными для языка Си мелкими краевыми случаями, которые полностью исключены в коде на языке Rust.
При использовании Rust можно будет оставить в прошлом такие проблемы, как обращение к памяти после её освобождения, выход на границу буфера (частично), некорректное освобождение ресурсов при обработке ошибок и забытые проверки возвращаемых кодов ошибок, что позволит мэйнтейнерам сосредоточиться на реальных ошибках, таких как состояния гонки и проблемы с логикой, а не рассеивать при рецензировании внимание по мелочам.
Уже имеющийся старый код на языке Си никуда не денется, а вот для нового кода и новых драйверов внедрение Rust позволит существенно поднять качество. Внедрение Rust также даст возможность структурировать внутренние программные интерфейсы ядра таким образом, что будут практически исключены ошибки использования внутреннего API - в ядре накопилось слишком много сложных и запутанных API, создающих большую нагрузку на мэйнтйнеров в их работе по проверке, что данные API используются правильно. В процессе развития Rust-обвязок у мэйнтейнеров появляется возможность переосмыслить и привести в порядок API, что принесёт пользу для всех, включая использующих язык Си.
Грег не считает Rust "серебряной пулей", которая позволит решить все проблемы в ядре, но данный язык точно поможет в огромном числе ситуаций. Поддержка Rust также удовлетворит потребность разработчиков драйверов, которые надеются получить инструмент, позволяющий писать код для их оборудования, исключая многие типы ошибок. Что касается, смешивания нескольких языков, Грег не видит в этом большой проблемы, по его мнению в прошлом разработчики ядра справлялись и с более серьёзными задачами, и нет повода отказываться от продвижения в ядро новых хороших идей, которые помогут обеспечить успех проекта на следующие 20+ лет.
К обсуждению также присоединился Кейс Кук (Kees Cook), бывший главный системный администратор kernel.org и лидер Ubuntu Security Team. Кейс уточнил, что речь не про переписывание уже имеющегося кода в ядре, а в предоставлении возможности использования Rust для создания новых драйверов и подсистем. Применение Rust для нового кода позволит не только снизить число ошибок при работе с памятью, но и сократить время разработки. Скорость разработки возрастает благодаря снижению трудозатрат на отладку и наличию в языке строгих гарантий, позволяющих выявлять ошибки на ранней стадии написания кода, ещё до начала тестирования продукта.
Эффективность тактики использования Rust для повышения качества нового кода уже продемонстрирована Google в платформе Android. Показано, что основным источником проблем с безопасностью является новый код и повышению его качества следует уделять основное внимание. Для старого кода наблюдается экспоненциальная зависимость безопасности от времени (например, 5-летний код в среднем имеет в 3.4 раза меньшую плотность уязвимостей, чем новый код).
Источник: https://www.opennet.ru/opennews/art.shtml?num=62756
OBS Studio и Fedora урегулировали конфликт
В результате встречи представителя OBS Studio с лидером Fedora и ответственными за поддержку Flatpak-пакетов в дистрибутиве, удалось наладить сотрудничество и найти пути решения проблем, устраивающие оба проекта. Требование о прекращении использования имени OBS Studio в сопровождаемом проектом Fedora flatpak-пакете отозвано. Fedora продолжит предлагать пользователям по умолчанию свой вариант flatpak-пакета с OBS Studio.
Проблема с поставкой версии Qt, приводящей к сбоям, будет решена переводом Flatpak-пакета Fedora на новый Flatpak runtime, использующий выпуск Qt 6.8.2, в котором регрессия устранена. Проблема с информированием пользователей об области ответственности и путях направления отчётов об ошибках в пакете также улажена. Дополнительно выделены ещё четыре проблемы в Flatpak-пакете Fedora, над устранением которых начали работать представители Fedora:
- Использование при выполнении OBS Studioв программного растеризатора llvmpipe вместо аппаратной ускоренной отрисовки.
- Аварийное завершение при переходе в режим использования протокола X11.
- Сбои в работе VLC Plugin при работе в изолированном окружении.
- Поставка сторонних плагинов во Flatpak-пакете Fedora.
Напомним, что разработчики системы потокового видеовещания OBS Studio потребовали прекратить использование в дистрибутиве Fedora любых элементов бренда OBS Studio, включая имя и логотип. Требование предъявлено после безуспешных попыток решить проблему с поставкой в Fedora некорректно работающего неофициального flatpak-пакета в форме, создающей у пользователей впечатление, что они используют официальный flatpak-пакет (разработчики OBS Studio распространяют через каталог Flathub собственный flatpak-пакет, но вместо него пользователям Fedora предоставляется другой вариант flatpak-пакета, сопровождаемый разработчиками Fedora и при установке являющийся более приоритетным).
Источник: https://www.opennet.ru/opennews/art.shtml?num=62755
Релиз Mesa 25.0, свободной реализации OpenGL и Vulkan
После трёх месяцев разработки опубликован релиз свободной реализации API OpenGL и Vulkan - Mesa 25.0.0. Первый выпуск ветки Mesa 25.0.0 имеет экспериментальный статус - после проведения окончательной стабилизации кода будет выпущена стабильная версия 25.0.1.
В Mesa 25.0 доступна поддержка графического API Vulkan 1.4 в драйверах ANV для GPU Intel, RADV для GPU AMD, NVK для GPU NVIDIA, Asahi для GPU Apple,
Turnip для GPU Qualcomm и в программном растеризаторе lavapipe (lvp).
В режиме эмулятора (vn) поддерживается API Vulkan 1.3, в драйвере PanVK для GPU ARM Mali - Vulkan 1.1, а в драйверах v3dv (GPU Broadcom VideoCore для Raspberry Pi 4+) и dzn (реализация Vulkan поверх Direct3D 12) - Vulkan 1.0.
В Mesa также обеспечивается полная поддержка OpenGL 4.6 для драйверов iris (GPU Intel Gen 8+), radeonsi (AMD), Crocus (старые GPU Intel Gen4-Gen7), zink, llvmpipe, virgl (виртуальный GPU Virgil3D для QEMU/KVM), freedreno (Qualcomm Adreno), d3d12 (прослойка для организации работы OpenGL поверх DirectX 12) и asahi (GPU AGX, используемый в чипах Apple M1 и M2). Поддержка OpenGL 4.5 доступна для GPU AMD (r600) и NVIDIA (nvc0). Поддержка OpenGL 3.3 присутствует в драйверах softpipe (программный растеризатор) и nv50 (NVIDIA NV50).
Основные новшества:
В Vulkan-драйверах ANV (Intel), RADV (AMD), NVK (NVIDIA), Asahi (Apple), PanVK (ARM Mali) и Turnip (Qualcomm), а также программном растеризаторе lavapipe (lvp) заявлена поддержка API Vulkan 1.4 (ранее поддерживалась версия Vulkan 1.3).
В Vulkan-драйвере RADV добавлена начальная поддержка GPU AMD RDNA4 (GFX12, серия AMD Radeon RX 9000).
Драйвер RadeonSI переведён на использование бэкенда компиляции шейдеров ACO, созданный компанией Valve в качестве альтернативы компилятору шейдеров LLVM. Бэкенд ACO нацелен на обеспечение генерации кода, насколько это возможно оптимального для шейдеров игровых приложений, а также на достижение очень высокой скорости компиляции. ACO написан на языке С++, разрабатывается с оглядкой на возможность применения для JIT-компиляции и использует быстрые для перебора структуры данных, избегая структур на основе указателей.
Добавлен драйвер amdgpu_virtio, позволяющий гостевой системе использовать OpenGL- и Vulkan-драйверы radeonsi, radeonsi_drv_video и radv, предоставляемые хост-окружением. Доступ осуществляется через VirtIO, что обеспечивает высокую производительность 3D-ускорения в виртуальной машине. Заявлено, что производительность amdgpu_virtio выше, чем при использовании драйверов virgl и venus, ранее разработанных для доступа к Vulkan и OpenGL из гостевых систем.
Расширены возможности OpenGL-драйвера Panfrost для GPU ARM Mali.
- Включён по умолчанию механизм "transaction elimination", отбрасывающий избыточные операции (например, отбрасываются операции перезаписи фрагментов, не изменившимися с прошлой отрисовки).
- Добавлена поддержка инкрементальной отрисовки, позволяющая снизить потребление памяти при рендеринге большого числа объектов за счёт раздельной обработки фрагментов (tile).
- Добавлена поддержка режима AFBC 32x8, применяемого для оптимизации работы с буфером вывода (scan-out buffer) в некоторых дисплейных контроллерах.
- Максимально поддерживаемая ширина и высота текстур увеличена с 8192 до 32768 пикселей.
- Добавлена поддержка режима текстурирования MTK_FMT_MOD_TILE_16L32S, при котором фрагментированные данные копируются во временный нефрагментированный буфер перед отрисовкой (используется для работы с аппаратными декодировщиками видео, присутствующими в SoC MediaTek).
В драйвер ANV (Intel) добавлена поддержка Vulkan-расширений для декодирования видео в формате AV1.
В Vulkan-драйвере PanVK для GPU ARM Mali на базе архитектуры V10, таких как Mali-G610 и Mali-G310, реализована поддержка API Vulkan 1.1 (ранее поддерживалась версия Vulkan 1.0). PanVK включён в список драйверов, доступных для использования в Mesa по умолчанию (ранее PanVK не отображался в списке драйверов и для его использования нужно было выставлять переменную окружения). На системах ARM сборка PanVK включена по умолчанию.
В драйвере PanVK реализованы Vulkan-расширения:
В драйвер RADV (AMD) добавлена поддержка Vulkan-расширений
VK_KHR_maintenance8 и VK_KHR_depth_clamp_zero_one.
В драйвер rusticl добавлена поддержка OpenCL-расширения cl_khr_depth_images.
Источник: https://www.opennet.ru/opennews/art.shtml?num=62752
Поддержка Firefox 115 ESR продлена до сентября 2025 года. Обновление Firefox 135.0.1
Компания Mozilla продлила сопровождение прошлой ESR-ветки Firefox 115 до сентября 2025 года (срок сопровождения истекал в марте). Firefox 115 является последней веткой, способной работать в операционных системах Windows 7, 8 и 8.1, и macOS 10.12, 10.13 и 10.14. Вероятно время жизни ветки Firefox 115 не ограничится сентябрём, так как в примечании к изменению упоминается, что в августе будет рассмотрен вопрос дополнительного продления сопровождения.
В соответствии c февральской статистикой Mozilla 7.8% пользователей Firefox продолжают использование Windows 7, несмотря на прекращение компанией Microsoft сопровождения данных операционных систем с января 2020 года. Полгода назад данный показатель составлял 10.5%, полтора года назад - 13.7%, а два с половиной года назад - 19.1%. В Google Chrome поддержка Windows 7 и Windows 8 была прекращена в феврале 2023 года, поэтому Firefox остаётся единственным значительным браузером с поддержкой Windows 7/8.
Дополнительно можно упомянуть корректирующий выпуск Firefox 135.0.1,
в котором устранена уязвимость (CVE-2025-1414), вызванная проблемами при работе с памятью. Потенциально данная уязвимость может привести к выполнению кода злоумышленника при открытии специально оформленных страниц. Также в новой версии исправлено несколько проблем, не связанных с безопасностью, таких как нарушение работы выпадающих меню на некоторых сайтах, сбои при прокрутке содержимого, невозможность восстановления закрытых окон и вкладок через меню History после обновления и нарушение работы поисковых движков, добавленных вручную.
Источник: https://www.opennet.ru/opennews/art.shtml?num=62749
Линус Торвальдс намерен включать связанные с Rust изменения в обход мэйнтейнеров
Кристоф Хелвиг (Christoph Hellwig), мэйнтейнер подсистем DMA, KVM, Slab Allocator и архитектуры PowerPC в ядре Linux, принципиально отказавшийся принимать в ядро Rust-обвязки для подсистемы DMA, подключился к обсуждению правил сопровождения Rust в составе ядра, опубликованных проектом Rust for Linux. По мнению Кристофа подобные правила бесполезны, пока они не согласованы с сообществом и не включены в документацию к ядру.
Кристоф также обратил внимание, что в правилах указана некорректная информация относительно того, что мэйнтейнеры могут самостоятельно принимать решения о включении в их подсистемы кода, связанного с Rust. По словам Кристофа, в личной беседе Линус Торвальд заявил, что он твёрдо намерен принять в ядро Rust-код, несмотря на возражения мэйнтейнеров. Таким образом разработчикам и мэйнтейнерам ядра теперь придётся иметь дело с Rust, независимо от того, хотят они этого или нет.
Кристоф также повторно сравнил распространение Rust-обвязок с раковой опухолью, которая расползётся на все подсистемы ядра и
приведёт к фрагментации. Из единого целого ядро превращается в проект, написанный на нескольких языках, без чёткого определения того, когда какой язык должен использоваться. По словам Кристофа, работа с подобной смешанной кодовой база стала для него худшим кошмаром, так как в подобных условиях постоянно происходит переписывание кода с одного языка на другой, а затем обратно.
При этом Кристоф просит пояснить ему цель внедрения Rust в ядро. Если цель в решении проблем с безопасностью, возникающих при низкоуровневой работе с памятью, то прежде всего требуется модернизация существующего кода. С учётом того, что сопровождающие болезненно реагируют даже на тривиальные вещи, такие как проверки на целочисленное переполнение, непонятно как можно преодолеть разрыв между одной частью ядра, не принимающей даже простые правила по обеспечению безопасности, и другой частью, придерживающейся соблюдения строгих правил. Если же цель в упрощении разработки драйверов, то введение поддержки ещё одного языка только добавит новой работы и увеличит нагрузку на без того перегруженных людей, поддерживающих инфраструктуру ядра в рабочем состоянии.
Что касается сторонников внедрения Rust в ядро, то ими называются следующие цели:
- Написание нового кода на языке Rust снизит риск ошибок при работе с памятью и состояний гонки, а также исключит некоторые логические ошибки.
- Мэйнтейнерам будет проще рецензировать изменения и проводить рефакторинг модулей с учётом гарантий, предоставляемых языком Rust.
- Наличие абстракций, использующих продвинутые возможности языка Rust, упростит создание новых драйверов и модулей.
- Поддержка современного языка привлечёт к разработке ядра новых участников.
- Применение возможностей инструментария Rust упростит выполнение требований к документированию кода. Например, в проекте Rust for Linux введено требование по обязательному документированию публичных API, требований к безопасности, unsafe-блоков и инвариантов типов.
Источник: https://www.opennet.ru/opennews/art.shtml?num=62748
Компания VK передаёт игровой движок Nau Engine на попечение сообщества
Разработчики открытого игрового движка NauEngine, основанного компанией VK, объявили о передаче проекта сообществу. Техническое сопровождение движка вместо VK теперь будет осуществлять Школа разработки видеоигр ИТМО, а экспертную поддержку обеспечит ассоциация АПРИОРИ. В анонсе передача проекта в руки сообщества преподносится как новый этап развития, связанный с переходом от коммерческой модели разработки к модели на основе привлечения независимого сообщества. Репозиторий проекта не обновлялся с момента публикации бета-версии в ноябре.
Судя по комментариям представителей проекта, данным изданию Коммерсант, дальнейшее развитие продукта будет зависить от сообщества, а интеграция с университетом ИТМО позволит развивать движок и обучать студентов разработке, а также использовать его как основу для научно-исследовательских работ. При этом пресс-служба VK заявила, что компания продолжит поддерживать движок, исходя из потребностей его дальнейшего развития. Директор Школы разработки видеоигр ИТМО считает, что в сообществе движок сможет развиваться более эффективно и разнопланово, чем при стандартной коммерческой разработке. По мнению представителей игровой индустрии движок Nau Engine оказался не востребован и все продолжают работать с Unreal Engine и Unity.
В качестве основы движка NauEngine используется система рендеринга, построенная с заимствованием компонентов из движка
Dagor Engine, открытого осенью прошлого года компанией Gaijin Entertainment. Код из движка Dagor был доработан, особенно в области управления ассетами. Вместо внутреннего языка шейдеров Dagor (dshl) задействован язык HLSL. Добавлена возможность условной компиляции шейдеров для динамического изменения материала поверхности. Переработана реализация техники физически корректного рендеринга (PBR). Для ассетов задействован формат USD (Universal Scene Description).
Для симуляции физических процессов задействована библиотека Jolt. Для построения графического интерфейса в играх применён инструментарий Cocos2dx и библиотека Dear ImGui. Сетевое взаимодействие в движке организовано при помощи UDP-транспорта GameNetworkingSockets и библиотеки ASIO. Для работы со звуком используется библиотека miniaudio. Для управления вводом используется библиотека gainput, а для импорта скелетной анимации проект ozz-animation. Для написания игровой логики предлагается использовать языки C++ и Lua, но дополнительно развивается подсистема агностического скриптинга, которая позволит применять различные языки программирования.
Вместе с движком развивается среда разработки игр NauEditor, включающая редактор трехмерной сцены, материалов, анимаций и визуальных эффектов (VFX). Интерфейс построен с использованием библиотеки Qt 6 и включает такие компоненты, как Project Browser (Браузер проекта), Viewport (Окно просмотра), Outliner (Структура сцены), Inspector (Инспектор) и Console (Консоль). Отдельно поставляется редактор интерфейса пользователя в играх (GUI Editor), основанный на библиотеке Cocos2dx.
Источник: https://www.opennet.ru/opennews/art.shtml?num=62743
Компания Valve опубликовала исходный код игр Half-Life 2 и Team Fortress 2
Компания Valve опубликовала исходный код инструментария "Source SDK 2013", предназначенного для создания модов к играм на базе движка Source. Публикация примечательна тем, что состав пакета включён исходный код игр Half-Life 2, Half-Life 2: Deathmatch и Team Fortress 2. Поддерживается сборка в Linux и Windows. Код распространяется под лицензией SOURCE 1 SDK, допускающей использование, копирование и модификацию кода, при условии, что результат распространяется бесплатно и не нарушает условия сервиса Steam.
Источник: https://www.opennet.ru/opennews/art.shtml?num=62747
openSUSE тестирует поддержку повторяемых сборок
Разработчики дистрибутива openSUSE сообщили об успехах проекта по обеспечению поддержки повторяемых сборок. В рамках проекта подготовлен концептуальный форк дистрибутива Reproducible-openSUSE (RBOS), для которого достигнута возможность сборки 100% идентичных бинарных пакетов на основе предлагаемого репозитория с исходными текстами, насчитывающего 3300 пакетов. В процессе работы над проектом подготовлено около 40 патчей (1, 2, 3), решающих проблемы с повторяемой пересборкой пакетов. Примерно половина из данных патчей уже передана в upstream-проекты. Сборки Reproducible-openSUSE пока рассчитаны только на тестирование и не рекомендованы для использования в рабочих системах, так как для них не формируются обновления с устранением уязвимостей.
Проект позволяют пользователю сформировать собственные сборки, побитово совпадающие с предлагаемыми для загрузки готовым сборкам, чтобы убедиться, что распространяемые в пакетах бинарные файлы собраны из предоставляемых исходных текстов и не содержат скрытых изменений. Возможность проверить тождественность бинарной сборки даёт возможность не полагаться лишь на доверие к сборочной инфраструктуре дистрибутива, компрометация компилятора или сборочного инструментария в которой может привести к подстановке скрытых закладок.
При формировании повторяемых сборок учитываются такие нюансы, как точное соответствие зависимостей, использование неизменного состава и версий сборочного инструментария, идентичный набор опций и настроек по умолчанию, сохранение порядка сборки файлов (применение тех же методов сортировки), отключение добавления компилятором непостоянной служебной информации, такой как случайные значения, ссылки на файловые пути и данные о дате и времени сборки. На воспроизводимость сборок также влияют ошибки и состояния гонки в инструментарии.
Источник: https://www.opennet.ru/opennews/art.shtml?num=62744
Обновление OpenSSH 9.9p1 с устранением возможности совершения MITM-атаки
Доступен корректирующий выпуск OpenSSH 9.9p1, в котором устранены две уязвимости, выявленные компанией Qualys. Продемонстрирован пример использования данных уязвимостей для совершения MITM-атаки, позволяющей при попытке подключения клиента к SSH-серверу, перенаправить трафик на собственный фиктивный сервер, обойти проверку хостовых ключей и создать у клиента видимость подключения к желаемому серверу (ssh-клиент примет хостовый ключ фиктивного сервера вместо ключа легитимного сервера).
Первая уязвимость (CVE-2025-26465) вызвана логической ошибкой в утилите ssh, позволяющей обойти проверку идентификации сервера и совершить MITM-атаку. Проблема проявляется начиная с выпуска OpenSSH 6.8p1 (декабрь 2014 г.) в конфигурациях с включённой настройкой VerifyHostKeyDNS. В базовой поставке OpenSSH данная опция по умолчанию отключена, но до марта 2023 года была включена в настройках ssh во FreeBSD.
Суть проблемы в том, что в коде функции verify_host_key_callback() при вызове функции verify_host_key() проверяется только код ошибки "-1", а другие коды, такие как "-2", игнорируются. В итоге функция verify_host_key_callback() может вернуть успешный код "0", несмотря на возврат ошибки "-2" функцией verify_host_key(). Код ошибки "-2" возвращается функцией verify_host_key() при нехватке памяти. Если создать условия, которые приведут к невозможности выделить память в функции verify_host_key(), SSH посчитает, что хостовый ключ был проверен успешно. Для создания таких условий подставной SSH-сервер атакующего, на который перенаправлен клиент, возвращает хостовый ключ максимально возможного размера (256KB), и одновременно эксплуатируется утечка памяти на стороне ssh-клиента.
Условия для создания утечки памяти достигаются благодаря второй уязвимости (CVE-2025-26466), затрагивающей как клиент ssh, так и сервер sshd, и эксплуатируемая без аутентификации. Уязвимость позволяет исчерпать доступную процессу память и создать высокую нагрузку на CPU через отправку большого числа пакетов SSH2_MSG_PING. В обработчике пакетов SSH2_MSG_PING имеется утечка памяти, проявляющаяся начиная с выпуска OpenSSH 9.5p1 (август 2023 г.). Утечка возникает из-за того, что на каждый поступающий 16-байтовый PING-пакет выделяется 256-байтовый буфер для формирования ответа, но данный буфер освобождается только после завершения согласования ключей. В качестве обходного пути защиты предлагается настроить ограничения при помощи директив LoginGraceTime, MaxStartups и PerSourcePenalties.
Источник: https://www.opennet.ru/opennews/art.shtml?num=62742
Опубликован почтовый сервер Postfix 3.10.0
После почти года разработки опубликован релиз новой стабильной ветки почтового сервера Postfix - 3.10.0. В то же время объявлено о прекращении поддержки ветки Postfix 3.6, выпущенной в начале 2021 года. Код проекта написан на языке Си и распространяется под лицензиями EPL 2.0 (Eclipse Public license) и IPL 1.0 (IBM Public License).
Postfix является одним из редких проектов, сочетающих одновременно высокую безопасность, надёжность и производительность, чего удалось добиться благодаря многопроцессой архитектуре, изолирующей отдельные обработчики, а также жёсткой политике оформления кода и аудита патчей. Для защиты от ошибок при работе с памятью в проекте используются защищённые варианты функции для выделения и освобождения памяти, а также набор абстрактных функций-обвязок для работы с буферами (проверяется выход за границы буфера и обращения к освобождённой памяти), файловыми операциями, форматирования вывода, буферизированного ввода/вывода и манипуляций со строками (включая возможности для работы со строками произвольного размера и автоматического изменения размера строк).
В соответствии с февральским автоматизированным опросом около 550 тысяч почтовых серверов, Postfix используется на 37.64% (год назад 36.81%) почтовых серверов, доля Exim составляет 56.03% (год назад 56.61%), Sendmail - 3.39% (3.60%), MailEnable - 1.80% (1.82%), MDaemon - 0.39% (0.40%), Microsoft Exchange - 0.19% (0.19%), OpenSMTPD - 0.10% (0.09%).
Основные новшества:
- Добавлена возможность использования в TLS криптоалгоирмов, стойких к подбору на квантовом компьютере. Для использования данных алгоритмов требуется использование ветки библиотеки OpenSSL 3.5, которая пока не вышла из стадии разработки. Для выбора постквантовых алгоритмов в Postfix не стали вводить новый синтаксис TLS-групп, а положились на настройки OpenSSL, которые будут использованы при установке параметров "tls_eecdh_auto_curves" и "tls_ffdhe_auto_groups" в пустые значения.
- Добавлена поддержка заголовка сообщений "TLS-Required: no" (RFC 8689), при котором доставка будет выполнена даже при невозможности реализовать выставленную в настройках политику безопасности TLS. При наличии данного заголовка SMTP-клиент работает в режиме "smtp_tls_security_level = may", т.е. не проверяет сертификат сервера
и может откатиться на соединение с передачей данных открытым текстом. В следующей значительной ветке Postfix намерены реализовать SMTP-расширение REQUIRETLS.
- Добавлена поддержка протокола TLS-RPT (Transport Layer Security Reporting), позволяющего отслеживать сбои при доставке сообщений, возникающие если не удаётся установить шифрованное соединение, предписанное использованием расширений DANE (DNS-based Authentication of Named Entities) или MTA-STS (MTA Strict Transport Security). Владелец почтового домена определяет в DNS параметры для TLS-RPT, после чего почтовые серверы будут отправлять отчёты с информацией об успешных и сбойных TLS-соединениях к MX-серверам, обслуживающим домен. Реализация основана на библиотеке libtlsrpt.
- Добавлена настройка "smtpd_hide_client_session = yes", отключающая вставку информации о сеансе клиента при подстановке SMTP-сервером заголовка "Received:".
Пример урезанного заголовка" "Received: by mail.example.com (Postfix) id postfix-queue-id for ‹user@example.com›; Day, dd Mon yyyy hh:mm:ss tz-offset (zone)".
- Добавлена возможность MIME-кодирования (RFC 2047) имён в генерируемых Postfix заголовках "From:", включающих не ASCII-символы. Предложенная схема кодирования позволяет обойтись без применения расширения SMTPUTF8 (RFC 6531), поддерживаемого не всеми приложениями. Результат MIME-кодирования выглядит как '"=?charset?Q?gibberish?=:'. Для определения исходной кодировки имён добавлен параметр
"full_name_encoding_charset", по умолчанию выставленный в значение utf8.
- Изменена логика обработки сбойных соединений при указании в настройках "mysql:" или "pgsql:" только одного сервера. Подобный сервер теперь воспринимается как балансировщик нагрузки и в случае единичного сбоя, повторный запрос отправляется сразу, без задержки в 60 секунд.
- В Milter реализовано отражение в логе информации с причиной помещения сообщения в карантин.
- В SMTP-сервере обеспечен вывод в лог идентификатора очереди или значения "NOQUEUE" при завершении соединения по таймауту, обрыву или превышению лимита на число ошибок. Процесс cleanup при этом выдаёт в лог "queueid: canceled" для сообщений с запущенной, но не завершённой, транзакцией.
- В клиенте Dovecot SASL при выводе в лог сообщений "Invalid authentication mechanism" теперь указывается механизм аутентификации, который не удалось использовать. SMTP-сервер при выводе в лог записей 'reject' теперь отображает значения настроек sasl_method, sasl_username и sasl_sender.
- Из-за изменения внутреннего протокола, используемого в агенте доставки, после обновления версии Postfix требуется перезапуск командой "postfix reload" или командами "postfix stop" и "postfix start". В противном случае в лог будет выведено предупреждение "unexpected attribute smtputf8 from xxx socket (expecting: sendopts)".
Источник: https://www.opennet.ru/opennews/art.shtml?num=62741
Инициатива по портированию Firеfox на GTK4
Спустя год после первой попытки портирования Firеfox на GTK4, предпринятой Мартином Странский (Martin Stransky), мэйнтейнером пакетов с Firefox в Fedora и RHEL, нашёлся энтузиаст продолживший развитие инициативы. Проект взял в свои руки Йенс Перссон (Jens Persson), соавтор приложения Panucci для воспроизведения подкастов и аудиокниг. Работа над портом ещё не завершена, но в репозитории проекта последние два месяца наблюдается активная работа по созданию прослойки с виджетами, реализованной на базе GTK4. В текущем виде работа сосредоточена только на использовании Wayland, а X11 пока не поддерживается.
Проект полностью совместим с официальным портом Firefox на базе GTK3 и развивается через создание альтернативной прослойки с виджетами, развиваемой параллельно с прослойкой для GTK3 и не меняющей связанные с ней компоненты. На текущем этапе развитие GTK4-порт Firеfox успешно собирается и запускается, решены проблемы с изменением размера окна. В планах решение проблем, связанных с обработкой ввода, а также добавление поддержки буфера обмена, режима drag&drop, диалогов для выбора файлов, цветов, Emoji и приложений-обработчиков.
Источник: https://www.opennet.ru/opennews/art.shtml?num=62740
SUSE и openSUSE рассматривают прекращение поддержки загрузки на системах с BIOS
Luboš Kocman, отвечающий за подготовку релизов openSUSE, сообщил, что компания SUSE рассматривает возможность прекращения поддержки загрузки с использованием BIOS, что приведёт к невозможности использования дистрибутивов SUSE и openSUSE на системах без поддержки UEFI. Желание прекратить поддержку BIOS объясняется тем, что начиная с выпусков SLES 16 и openSUSE Leap 16 cборка пакетов будет осуществляться для архитектуры x86-64-v2, которая охватывает расширения SSE3, SSE4_2, SSSE3, POPCNT, LAHF-SAHF и CMPXCHG16B.
Разработчики сомневаются, что в обиходе имеется оборудование, использующее архитектуру x86-64-v2, но не поддерживающее UEFI. Что касается систем виртуализации, для загрузки виртуальных машин в которых часто используется режим на основе BIOS, сообщается, что это не будет проблемой, так как KVM, Xen, VirtualBox и другие системы виртуализации могут эмулировать UEFI. Оборудование на базе платформ Intel поставляется с UEFI начиная с 2005 года. В 2020 году компания Intel прекратила поддержку BIOS в клиентских системах и платформах для датацентров.
Дистрибутив Fedora намеревался прекратить поддержку BIOS в 2020 и 2022 годах, но технический комитет проекта отклонил данные инициативы.
Источник: https://www.opennet.ru/opennews/art.shtml?num=62738
Выпуск Wayland-Protocols 1.41 с поддержкой управления цветом и HDR
Опубликован выпуск пакета wayland-protocols 1.41, содержащего набор протоколов и расширений, дополняющих базовый протокол Wayland и предоставляющих возможности, необходимые для построения композитных серверов и пользовательских окружений.
В новой версии в категорию "staging" добавлен протокол color-management, развиваемый с 2014 года и предлагающий возможности для управления цветом и поддержки расширенного динамического диапазона яркости (HDR, High Dynamic Range). При помощи добавленного расширения клиентские приложения могут получать информацию о связанных с цветопередачей свойствах устройств вывода и передавать композитному серверу данные о цветовых свойствах собственного контента. В композитном сервере данная информация может использоваться для автоматического управления цветом при отображении содержимого на различных устройствах вывода, например, для преобразования контента в предоставление, подходящее для отображения на HDR-мониторах. Для описания цветовых пространств используются профили ICC.
В настоящее время в состав wayland-protocols входят следующие стабильные протоколы, в которых обеспечивается обратная совместимость:
- "viewporter" - позволяет клиенту выполнять действия по масштабированию и обрезанию краёв поверхности на стороне сервера.
- "presentation-time" - обеспечивает отображение видео.
- "xdg-shell" - интерфейс создания и взаимодействия с поверхностями как с окнами, что позволяет их передвигать по экрану, сворачивать, разворачивать, изменять размер и т.д.
- "linux-dmabuf" - обеспечивает совместное использование нескольких видеокарт при помощи технологии DMA-BUF (позволяет создать wl_buffer на базе DMA-BUF).
- "tablet" - организация ввода с графических планшетов.
Протоколы, тестируемые в ветке "staging":
- drm-lease - предоставляет ресурсы, необходимые для формирования стереокартинки с разными буферами для левого и правого глаза при выводе на шлемы виртуальной реальности.
- "ext-session-lock" - определяет средства блокировки сеанса, например, во время работы хранителя экрана или вывода диалога аутентификации.
- "single-pixel-buffer" - позволяет создавать однопиксельные буферы, включающие четыре 32-разрядных значения RGBA.
- "xdg-activation" - позволяет передать фокус между разными поверхностями первого уровня (например, при помощи
xdg-activation одно приложение может переключить фокус на другое).
- content-type - позволяет клиентам передать композитному серверу сведения об отображаемом содержимом, которые могут использоваться для оптимизации поведения с учётом содержимого, например, выставлении специфичных DRM-свойств, таких как "content type". Заявлена поддержка следующих типов контента: none (нет сведений о типе данных), photo (вывод цифровых фото, требующий минимальной обработки), video (видео или анимация, требуется более точная синхронизация, чтобы исключить подтормаживания) и game (запуск игр, требуется вывод с минимальной задержкой).
- ext-idle-notify - даёт возможность композитным серверам передавать клиентам уведомления о неактивности пользователя, что может использоваться для активации дополнительных режимов энергосбережения после определённого времени неактивности.
- tearing-control - позволяет отключить в полноэкранных приложениях вертикальную синхронизацию (VSync) с кадровым гасящим импульсом, применяемую для защиты от появления разрывов при выводе (tearing). В мультимедийных приложениях появление артефактов из-за разрывов является нежелательным эффектом, но в игровых программах с артефактами можно смириться, если борьба с ними приводит к дополнительным задержкам.
- ext-foreign-toplevel-list - получение информации о поверхностях, размещённых на самом верхнем уровне (toplevel), которые позволяют организовать закрепление окон поверх другого содержимого, например, для подключения собственных панелей и переключателей окон.
- security-context - позволяет идентифицировать клиентов, использующих sandbox-изоляцию. Клиент может зарегистрировать новое подключение к композитному серверу на базе Wayland и прикрепить к нему контекст безопасности, после чего в соответствии с указанным контекстом безопасности композитный менеджер ограничит возможности, доступные для установленного соединения.
- cursor-shape - альтернативный способ настройки внешнего вида курсора, основанный на передаче серии изображений курсора вместо привязки к поверхности (wl_surface).
- "ext-transient-seat" - предназначен для создания временных независимых сеансов (seat), рассчитанных на использование вместе с виртуальными устройствами ввода. Например, при реализации возможности подключения к удалённому рабочему столу протокол позволяет создать для каждого пользователя отдельный сеанс с виртуальными клавиатурой и мышью.
- "xdg-toplevel-drag" - расширяет механизм "drag & drop" возможностью прикрепления окон верхнего уровня к операции перемещения, что может быть использовано, например, для организации перетаскивания мышью панелей инструментов или вкладок браузера. Новый протокол позволяет создавать отсоединяемые части окна, которые при перетаскивании из этого окна становятся новыми окнами и могут перемещаться поверх существующего окна перед повторным прикреплением.
- "xdg-dialog" - позволяет назначать поверхностям верхнего уровня признаки, специфичные для диалоговых окон, например, можно создавать модальные диалоги, которые блокируют взаимодействие пользователя с остальной частью интерфейса.
- "linux-drm-syncobj" - предоставляет инструменты для явной синхронизациии буферов при помощи объектов синхронизации DRM (Direct Rendering Manager). Предполагается, что в контексте синхронизации при отрисовке в буфер предложенный протокол позволит улучшить работу с драйверами на базе графических API Vulkan и OpenGL (реализация базируется на обработчиках в драйверах). Новый протокол даёт возможность убедиться, что операция отрисовки в буфер завершена до того, как композитный менеджер отобразит данный буфер.
- alpha-modifier, позволяющий клиентам менять уровень прозрачности поверхности и выносить операции по обеспечению прозрачности на сторону композитного сервера, который в свою очередь может переадресовать эти операции KMS.
- xdg-toplevel-icon - привязка пиктограммы к окну верхнего уровня.
-
ext-image-capture-source и ext-image-copy-capture - организация захвата контента, выводимого на экран.
- xdg-system-bell - позволяет выводить системный сигнал, который может использоваться, например, как предупреждение в эмуляторе терминалов. Форма вывода сигнала определяется на усмотрение композитного менеджера, это может быть не только звук, но визуальный отклик.
- fifo - реализует FIFO-механизм (первым пришёл - первым ушёл) обработки очереди обновления содержимого отображаемой поверхности. С практической стороны протокол позволяет при выводе использовать ожидание завершения вертикальной развёртки (vblank) вместо использования callback-вызовов при каждой готовности отобразить новый кадр, что решает проблему с высокой нагрузкой на GPU при использовании VSync.
- commit-timing - позволяет привязать ограничение времени к содержимому поверхности (композитный сервер должен отобразить изменение контента по возможности через указанное время, но не раньше).
- ext-data-control - позволяет привилегированным клиентам управлять обработкой данных, например, для реализации менеджеров буфера обмена.
- ext-workspace - реализует концепцию виртуальных рабочих столов и предлагает события с информацией о состоянии рабочих столов, а также возможности для активации и деактивации рабочих столов. Протокол может применяться для создания панелей и индикаторов, выводящих список доступных виртуальных рабочих столов и позволяющих переключаться между ними.
Протоколы, разрабатываемые в ветке "unstable":
- "fullscreen-shell" - управление работой в полноэкранном режиме.
- "input-method" - обработка методов ввода.
- "idle-inhibit" - блокировка запуска скринсейвера (экранной заставки).
- "input-timestamps" - временные метки для событий ввода.
- "keyboard-shortcuts-inhibit" - управление прикреплением клавиатурных комбинаций и горячих клавиш.
- "linux-explicit-synchronization" - специфичный для Linux механизм синхронизации буферов в привязке к поверхности.
- "pointer-gestures" - управление с сенсорных экранов.
- "pointer constraints" - ограничения указателей (блокировка).
- "primary-selection" - по аналогии с X11 обеспечивает работу первичного буфера обмена (primary selection), вставка информации из которого обычно осуществляется средней кнопкой мыши.
- "relative pointer events" - относительные события указателей.
- "text-input" - организация ввода текста.
- "xdg-foreign" - интерфейс взаимодействия с поверхностями "соседнего" клиента.
- "xdg-decoration" - отрисовка декораций окон на стороне сервера.
- "xdg-output" - дополнительные сведения о видеовыходе (используется для дробного масштабирования).
- "xwayland-keyboard-grab" - захват ввода в приложениях XWayland.
Все протоколы последовательно проходят фазы разработки, тестирования и стабилизации. После завершения стадии разработки (категория "unstable") протокол помещается в ветку "staging" и официально включается в состав набора wayland-protocols, а после завершения тестирования перемещается в категорию стабильных. Протоколы из категории "staging" уже можно применять в композитных серверах и клиентах, где требуется связанная с ними функциональность. В отличие от категории "unstable" в "staging" запрещено внесение изменений, нарушающих совместимость, но в случае выявление проблем и недоработок в ходе тестирования, не исключается замена новой значительной версией протокола или другим Wayland-расширением.
Для ускорения доведения протоколов до разработчиков и стимулирования ранней реализации в существующих проектах начиная с позапрошлого выпуска дополнительно была добавлена фаза "experimental", в которой допускается внесение изменений, нарушающих совместимость, и добавление "сырых" протоколов, которые можно постепенно доводить до должного уровня. Если для попадания протокола в фазу "staging" требуется сформировать команду поддержки и получить определённое число подтверждений (ACK) от участников рецензирования, то для попадания в "experimental" достаточно отсутствия возражений (NACK) в течение двухнедельного периода рецензирования.
Источник: https://www.opennet.ru/opennews/art.shtml?num=62737
Выпуск fheroes2 1.1.6, открытого движка Heroes of Might and Magic 2
Доступен выпуск проекта fheroes2 1.1.6 который воссоздаёт движок игры Heroes of Might and Magic II с нуля. Код проекта написан на C++ и распространяется под лицензией GPLv2. Для запуска игры требуются файлы с игровыми ресурсами, которые можно получить из оригинальной игры Heroes of Might and Magic II. В составе проекта поставляется скрипт для автоматической загрузки и извлечения ресурсов из демоверсии игры, которых достаточно для полноценной работы.
Основные изменения:
- Новые кнопки быстрого обмена армиями и артефактами.
- На все кнопки в игре добавлен эффект бликов.
- Новое меню выбора автоматической и мгновенной битвы в бою.
- В редакторе карт предложено новое меню системных настроек с кнопками возврата в меню и быстрого запуска текущей карты.
- Объект "событие" позволяет теперь при взаимодействии выдавать герою опыт или вторичный навык.
- В редакторе для пошаговой навигации по истории изменений реализованы новые кнопки "отменить" и "вернуть" .
- Подробная информация в редакторе о свойствах объекта по правому клику: количество существ в группах нейтралов, названия артефактов, общее количество обелисков карте и т.д.
Источник: https://www.opennet.ru/opennews/art.shtml?num=62736
Уязвимости в CPU AMD, позволяющие выполнить код на уровне SMM
Компания AMD объявила об устранении шести уязвимостей в процессорах AMD EPYC и AMD Ryzen. Три наиболее опасные уязвимости (CVE-2023-31342, CVE-2023-31343, CVE-2023-31345) потенциально позволяют выполнить свой код на уровне SMM (System Management Mode), имеющем более высокий приоритет, чем режим гипервизора и нулевое кольцо защиты. Компрометация SMM позволяет получить неограниченный доступ ко всей системной памяти и может использоваться для контроля за операционной системой. Уязвимости вызваны отсутствием должной проверки входных данных в обработчике SMM, что позволяет привилегированному атакующему перезаписать содержимое SMRAM. Подробности о методе атаки пока не приводятся.
Остальные уязвимости:
- CVE-2023-31352 - ошибка в прошивке механизма AMD SEV (Secure Encrypted Virtualization), применяемого в системах виртуализации для защиты виртуальных машин от вмешательства со стороны гипервизора или администратора хост-системы. По аналогии с исправленной в начале февраля уязвимостью, проблема позволяет администратору, имеющему доступ к хост-окружению, прочитать незашифрованное содержимое памяти, в котором потенциально могут находиться конфиденциальные данные гостевой системы.
- CVE-2023-20582 - возможность обойти проверки RMP (Reverse Map Table) при использовании расширения SEV-SNP (Secure Nested Paging), предназначенного для безопасной работы со вложенными таблицами страниц памяти. Атакующий с правами администратора может может создать условия для возникновения исключения (fault) в PTE (Page Table Entry) для обхода средств для защиты целостности памяти виртуальных машин.
- CVE-2023-20581 - ошибка управления доступом к IOMMU, позволяющая привилегированному атакующему обойти проверку RMP и нарушить целостность памяти гостевой системы.
Уязвимости проявляются в 3 и 4 поколениях серверных процессоров AMD EPYC, во встраиваемых CPU серий AMD EPYC 7003 и 9004, в AMD Ryzen Embedded R1000, R2000, 5000, 7000, V2000 и V3000, в
десктоп-сериях AMD Ryzen 3000, 4000, 5000, 7000 и 8000, а также в серии AMD Athlon 3000.
Источник: https://www.opennet.ru/opennews/art.shtml?num=62734
Опубликована AI-модель синтеза речи Zonos, поддерживающая клонирование голоса
Компания Zyphra опубликовала под лицензией Apache 2.0 первый бета-выпуск AI-модели для синтеза речи Zonos. Предлагаемый вместе с моделью инструментарий поддерживает функцию клонирования голоса, позволяющую синтезировать речь желаемым голосом, для воспроизведения которого модели достаточно предоставить 30-секундную эталонную запись речи говорящего. Поддерживается синтез на английском, японском, китайском, французском и немецком языках.
Модель охватывает 1.6 млрд параметров и обучена на 200 тысячах часов аудиозаписей. Поддерживается синтез монотонной (как в аудиокнигах) и эмоциональной речи (как в живом разговоре), а также синтез на основе заданного префикса (приводится аудиозапись с началом речи, на основе которой модель синтезирует продолжение по указанному тексту, воспроизводя исходные характеристики речи, например, продолжая говорить шёпотом).
На выходе генерируется звук с частотой дискретизации 44kHz. Поддерживается подстановка синтезируемых вставок для симуляции выступлений с несколькими говорящими или построения интерактивных диалогов, а также добавление меток для управления скоростью речи, тональностью и выражением эмоций, таких как радость, страх, печаль и гнев.
По заявлению разработчиков, по качеству генерируемой речи модель не уступает или превосходит все публично доступные открытые и коммерческие системы синтеза (в тестах приводится сравнение с ElevenLabs, Cartesia и FishSpeech). Из недостатков отмечается более высокая концентрация звуковых артефактов, таких как кашель, звук дыхания или скрипы, в начале или в конце формируемого звукового материала.
-
- Zonos.
-
- ElevenLabs.
-
- Cartesia.
-
- Fish Speech v1.5.
Для использования модели на своей системе подготовлен готовый к работе образ для системы Docker, в состав которого входит web-интерфейс для управления синтезом, основанный на платформе Gradio. Для начала работы достаточно установить образ командой "git clone https://github.com/Zyphra/Zonos.git; cd Zonos; docker compose up" и открыть в браузере страницу "http://localhost:7860". Для работы рекомендуется наличие GPU NVIDIA как минимум серии 3000 с 6 Гб видеопамяти. Производительность работы на системе с GPU RTX 4090 в два раза превышает возможности, необходимые для синтеза в режиме реального времени.
Источник: https://www.opennet.ru/opennews/art.shtml?num=62733
Заморозка изменений дискового формата в Bcachefs
Кент Оверстрит (Kent Overstreet), разработчик ФС Bcachefs, отправил pull-запрос с исправлениями в Bcachefs, предложенными для включения в ветку 6.14-rc3. Помимо информации об исправлениях в сообщении объявлено о стабилизации формата дисковых структур Bcachefs. Любые дальнейшие изменения формата будут отнесены к категории не обязательных и будут реализовываться в форме опциональных дополнений.
Из исправлений отмечается: улучшение работы в режиме только для чтения; устранение проблемы, приводящей к обращению к памяти после её освобождения (use after free); решение проблем c reflink-указателями в fsck; исправление обработки перезапуска транзакции.
Источник: https://www.opennet.ru/opennews/art.shtml?num=62731
Релиз утилит Btrfs-Progs 6.13
Представлен выпуск пакета Btrfs-Progs 6.13, включающего утилиты и библиотеки для работы с файловой системой Btrfs из пространства пользователя. В состав входит сводная утилита для администритования btrfs, утилита для создания разделов mkfs.btrfs, программа для проверки разделов fsck.btrfs, интерфейс для изменения параметров btrfstune, утилита для создания образов ФС btrfs-image и библиотека libbtrfsutil. Код написан на языке Си и распространяется под лицензией GPLv2.
Наиболее заметным изменением в новой версии стало добавление в утилиту mkfs опции "--compress", позволяющей использовать сжатие при генерации файловой системы с заполнением содержимого из указанной директории с файлами (при использовании опции "--rootdir"). По умолчанию при генерации файловой системы с заполнением сжатие отключено. Из алгоритмов сжатия поддерживаются lzo, zlib и zstd. Возможно указание уровня сжатия, например, "--compress=zlib:9".
В команду btrfs scrub добавлена опция "--limit" для ограничения пропускной способности процесса проверки. В утилиту btrfstune добавлена опция "--remove-simple-quota" для удаления структур, используемых для упрощённых квот (squota). До ветки 3.0 повышены требования к минимальной версии библиотеки Botan.
Источник: https://www.opennet.ru/opennews/art.shtml?num=62732
Обновление CADBase, платформы для обмена 3D-моделями и чертежами
Продолжается развитие платформы CADBase, предназначенной для хранения данных, связанных с инженерным делом и компьютерным дизайном. Основная задача платформы - обмен 3D-моделями, чертежами и сопутствующей информацией, такой как сопроводительная документация, каталоги с информацией о поставщиках, сертификаты, документы по стандартизации и классификации. Код написан на языке Rust и распространяется под лицензией MIT.
Среди изменений:
- Добавлены новые возможности для интеграции с проектами FreeCAD и Blender: предварительный просмотр изменений перед отправкой;
сохранение краткой информации об изменениях при обновлении данных; настройки принудительного обновления и отключения проверки вычисления хэша.
- Обновлён пользовательский интерфейс: добавлена поддержка Markdown-разметки; реализовано отображение сообщений об изменениях в информации о файлах; в верхней части страницы появился поиск по компонентам.
- Расширены возможности API: добавлен запрос component, позволяющий получить информацию о связанных с компонентам объектах платформы. Для компонентов и их модификаций добавлена поддержка сортировки по полям: name (наименование), actualStatusId (идентификатор статуса), createdAt (дата создания) и updatedAt (дата обновления). Расширен перечень запросов с поддержкой сортировки и разделения на несколько страниц.
Источник: https://www.opennet.ru/opennews/art.shtml?num=62730
В PostgreSQL устранена уязвимость, использованная при атаке на BeyondTrust
Сформированы корректирующие обновления для всех поддерживаемых веток PostgreSQL 17.3, 16.7, 15.11, 14.16 и 13.19, в которых исправлено более 70 ошибок и устранена уязвимость (CVE-2025-1094), в конце декабря задействованная в атаке на компанию BeyondTrust и Министерство финансов США. Проблема в PostgreSQL выявлена при анализе удалённой уязвимости (CVE-2024-12356) в сервисах BeyondTrust PRA (Privileged Remote Access) и BeyondTrust RS (Remote Support), при эксплуатации которой дополнительно была задействована ранее неизвестная (0-day) уязвимость в libpq.
В результате атаки злоумышленникам удалось получить ключ для доступа к API, применяемому для удалённого оказания услуг технической поддержки клиентам SaaS-сервисов BeyondTrust. Данный API был использован для сброса пароля и компрометации инфраструктуры Министерства финансов США, пользующегося продуктами BeyondTrust. В ходе атаки злоумышленники смогли загрузить конфиденциальные документы и получили доступ к рабочим станциям сотрудников министерства.
Уязвимость проявляется в библиотеке libpq, предоставляющей API для взаимодействия с СУБД из программ на языке Си (поверх библиотеки также реализованы библиотеки-обвязки для C++, Perl, PHP и Python). Проблема затрагивает приложения, использующие для экранирования спецсимволов и нейтрализации кавычек функции PQescapeLiteral(), PQescapeIdentifier(), PQescapeString() или PQescapeStringConn().
Атакующий может добиться подстановки своего SQL-кода, если получаемый извне текст перед использованием внутри SQL-запроса экранируется при помощи вышеотмеченных функций libpq. В приложениях BeyondTrust экранированные подобным образом запросы передавались через утилиту командной строки psql. Уязвимость вызвана отсутствием в функциях экранирования проверки корректности используемых в тексте Unicode-символов, что позволяет обойти нормализацию кавычек через указание некорректных многобайтовых последовательностей UTF-8.
Для эксплуатации уязвимость можно использовать некорректный UTF-8 символ, состоящий из байт 0xC0 и 0x27 ("└'"). Байт 0x27 в ASCII-кодировке соответствует одинарной кавычке ("'"), подлежащей экранированию. В коде экранирования сочетание байтов 0xC0 и 0x27 обрабатывается как один Unicode-символ. Соответственно, байт 0x27 в такой последовательности остаётся не экранирован, при том, что при обработке SQL-запроса в утилите psql он обрабатывается как кавычка.
При запуске SQL-запросов при помощи утилиты psql для организации выполнения произвольного кода можно использовать подстановку в строку команды "\!", предназначенной в psql для запуска произвольных программ. Например, для запуска на сервере утилиты "id" можно передать значение "hax\xC0'; \! id #". В примере ниже для экранирования вызывается PHP-скрипт dbquote, использующий PHP-функцию pg_escape_string, работающую поверх функции PQescapeString из libpq:
$ echo -e "hello \xC0'world'" | ./dbquote
'hello └'world'''
$ quoted=$(echo -e "hax\xC0'; \! id # " | ./dbquote)
$ echo "SELECT COUNT(1) FROM gw_sessions WHERE session_key = $quoted AND session_type = 'sdcust' AND (expiration IS NULL OR expiration>NOW())" | psql -e
SELECT COUNT(1) FROM gw_sessions WHERE session_key = 'hax└';
ERROR: invalid byte sequence for encoding "UTF8": 0xc0 0x27
uid=1000(myexamplecompany) gid=1000(myexamplecompany)
Источник: https://www.opennet.ru/opennews/art.shtml?num=62722
Выпуск Phosh 0.45.0, GNOME-окружения для смартфонов
Опубликован релиз Phosh 0.45, экранной оболочки для мобильных устройств, основанной на технологиях GNOME и библиотеке GTK. Окружение изначально развивалось компанией Purism в качестве аналога GNOME Shell для смартфона Librem 5, но затем вошло в число неофициальных проектов GNOME и используется в postmarketOS, Mobian, Droidian, некоторых прошивках для устройств Pine64 и редакции Fedora для смартфонов. Phosh использует композитный сервер Phoc, работающий поверх Wayland, а также собственную экранную клавиатуру squeekboard. Наработки проекта распространяются под лицензией GPLv3+.
В новом выпуске:
- Реализовано определение web-интерфейса для подключения пользователей к беспроводной сети (Captive portal) и открытие страницы аутентификации в браузере.
- В панель быстрых настроек добавлена кнопка для изменения уровня масштабирования экрана.
- Обеспечено создания эскизов для создаваемых скриншотов.
- Добавлена возможность удаления выбранного приложения непосредственно из интерфейса для навигации по установленным приложениям (app-grid).
- В сервер вывода уведомлений добавлена поддержка звука.
- Добавлена опция для управления автоматической установкой соединения.
- Стабилизирован API библиотеки libphosh. В libphosh предоставлена возможность скрытия нижней панели.
- Конфигуратор полностью перешёл от использования GtkDialog в пользу класса AdwEntryRow.
- В композитном сервере Phoc задействован API новой ветки библиотеки wlroots 0.18, при блокировке экрана использована возможность протокола xdg-shell для заморозки состояния окон, реализовано сглаживание вывода при масштабировании и переходных эффектах, расширены возможности для ведения отладочных логов, проведена общая модернизация кодовой базы.
- Обновлены версии зависимостей: wlroots 0.18.2, GNOME 47, Calls 48~beta.1, feedbackd 0.7.0, feedbackd-device-themes 0.4.0, callaudiod 0.1.10, wys 0.1.12 и mmsd-tng 2.6.2.
Источник: https://www.opennet.ru/opennews/art.shtml?num=62729