Выпуск SVT-AV1 4.0, кодировщика для формата видео AV1
Опубликован выпуск библиотеки SVT-AV1 4.0.0 (Scalable Video Technology AV1) c реализациями кодировщика и декодировщика формата кодирования видео AV1, для ускорения которых задействованы присутствующие в процессорах x86_64 и ARM расширения для аппаратного распараллеливания вычислений. Проект создан компанией Intel в партнёрстве с Netflix с целью достижения уровня производительности, пригодного для перекодирования видео на лету и применения в сервисах, отдающих видео по запросу (VOD). В настоящее время разработка ведётся под эгидой альянса Open Media (AOMedia), курирующего развитие формата кодирования видео AV1. Ранее проект развивался в рамках проекта OpenVisualCloud, который также разрабатывает кодировщики SVT-HEVC и SVT-VP9. Код распространяется под лицензией BSD.
SVT-AV1 может быть собран для систем на базе любых архитектур, для которых имеется компилятор с поддержкой стандарта C99, но наилучшая производительность достигается на системах x86_64, для которых применяются ассемблерные оптимизации на базе инструкций SIMD (желательно наличие в CPU поддержки AVX2, но в качестве минимума достаточно и SSE2). Потребление памяти зависит от числа задействованных при кодировании процессорных ядер, регулируемых опцией "--lp". Из-за усложнения применяемых в AV1 алгоритмов, для кодирования данного формата требуется существенно больше ресурсов, чем для других форматов, например, штатный кодировщик от проекта AV1 требует в 5721, 5869 и 658 раз больше вычислений по сравнению с кодировщиками x264 (профиль "main"), x264 (профиль "high") и libvpx-vp9.
Среди изменений в новом выпуске SVT-AV1:
- Проведена оптимизация режимов кодирования одиночных кадров и изображений в формате AVIF. Для пресетов M0-M11 при включении параметра MS-SSIM (--tune 4) отмечено повышение скорости кодирования в 5-8 раз при сохранении уровня качеста. При оценке при помощи метода BD-Rate (Bjontegaard-Delta) отмечается повышение эффективности сжатия на 5-8% при том же уровне сложности.
- Проведена оптимизация компромиссов качество/скорость при кодировании в режиме "--rtc" (Real-Time Communications). Для пресетов M7-M11 наблюдается увеличение скорости на 5-15% при сохранении уровней качества.
- Проведена оптимизация компромиссов качество/скорость при кодировании в режиме случайного доступа (Random Access). Для пресетов M0-M7 отмечается ускорение на 10-25% без потери качества при использовании опции "--fast-decode=1|2).
- На системах ARM задействованы дополнительные оптимизации на базе расширений Neon и SVE2, позволившие на 5% повысить производительность кодирования потоков в низком разрешении с высокой глубиной цвета.
- Из форка SVT-AV1-PSY, сопровождение которого прекращено, завершён перенос расширенных возможностей для режима высокого визуального качества, включаемого при использовании настроек "--tune 0" (VQ, Video Quality) для видео и "--tune 3" (IQ, Image Quality) для изображений Avif.
- Реализован метод
психовизуального моделирования AC Bias, улучшающий сохранение детализации и шума от сенсора камеры.
- Улучшена поддержка S-кадров (Switch Frames), применяемых при переключении между потоками разного качества. Добавлена поддержка S-кадров в опциях настройки квантования (QP, Quantization Parameter) и порядка декодирования.
- Добавлена возможность применения режимов
IQ (Image Quality) и MS-SSIM (Multi-Scale Structural Similarity Index) при кодировании изображений и отдельных кадров.
- Внесены изменения в API, среди прочего нарушающие обратную совместимость.
Источник: https://www.opennet.ru/opennews/art.shtml?num=64676
Представлен смартфон NexPhone, совмещающий Android, Debian и Windows
Компания Nex Computer, в прошлом развивавшая dock-станцию NexDock для превращения Android-смартфона в ноутбук, анонсировала смартфон NexPhone. Компания вынашивала идею создания данного устройства с 2012 года и смогла реализовать проект только спустя 14 лет. В новом устройстве попытались совместить традиционный смартфон с переносной рабочей станцией, позволяющей получить полноценную среду рабочего стола при подключении смартфона к монитору, клавиатуре и мыши. NexPhone поставляется с платформой Android и примечателен наличием возможности запуска рабочих столов на базе Debian и Windows 11, которые доступны не только при подключении монитора, но и через штатный 6.58-дюймовый экран.
При подключении к стационарному монитору предлагается три варианта интерфейса: появившийся в ветке Android 16 многооконный интерфейс для больших экранов с панелью задач в стиле ChromeOS, среда рабочего стола на базе Debian GNU/Linux и окружение Windows 11.
Графическая среда на базе Debian вызывается непосредственно из интерфейса Android как отдельное приложение, поддерживает аппаратное ускорение графики и, судя по описанию, основана добавленной в Android 16 QPR2 возможности для запуска виртуальных машин с Linux и приложении Linux Terminal.
Windows 11 запускается в режиме двойной загрузки, что требует перезапуска устройства для перехода в среду Windows. Для отображения интерфейса Windows 11 на экране смартфона разработана специальная оболочка, а при подключении монитора выводится штатный интерфейс Windows.
NexPhone поставляется в защищённом пыле- и водонепроницаемом корпусе, соответствующем степеням защиты MIL-STD-810H, IP68 и IP69K. Устройство оснащено 6.58-дюймовым экраном (1080×2403, 120Hz), 12 ГБ ОЗУ, 256GB Flash + карта microSD, восьмиядерным процессором Qualcomm QCM6490, GPU Qualcomm Adreno 643, Wi-Fi 6E, Bluetooth 5.2 LE,
NFC, GPS/A-GPS, BeiDou, Galileo, GLONASS, Dual SIM, USB-C 3.1. Имеется три камеры: основная Sony IMX787 64MP (также применяется в Google Pixel 8 Pro и Pixel 9 Pro Fold), широкоугольная Samsung S5K3L6XX 13MP и селфи-камера Samsung S5K3J1SX 10MP. Аккумулятор 5000mAh Li-ion с поддержкой проводной 18W и беспроводной зарядки. Размер 173×82.6×13.1 мм, вес 256 гр.
Для подключения монитора, клавиатуры, мыши и периферийных устройств в комплект входит USB-C хаб с переходником для HDMI. Также поддерживается использование беспроводных клавиатуры и мыши по Bluetooth с прямым подключением монитора через порт USB-C.
В настоящее время проект находится на стадии запуска массового производства. Поступление NexPhone в продажу запланировано на третий квартал 2026 года по цене $549.
Источник: https://www.opennet.ru/opennews/art.shtml?num=64678
Выпуск сервисного менеджера s6-rc 0.6
Доступен выпуск сервисного менеджера s6-rc 0.6.0.0, предназначенного для управления запуском скриптов инициализации и сервисов. Поддерживается отслеживание дерева зависимостей и автоматический запуск или завершение сервисов для достижения указанного состояния. Инструментарий s6-rc может применяться как в системах инициализации, так и для организации запуска произвольных сервисов в привязке к событиям, отражающим изменение состояния системы. Система поддерживает скрипты инициализации, совместимые с sysv-init, и может импортировать информацию о зависимостях из sysv-rc или OpenRC. Код написан на языке Си и распространяется под лицензией ISC.
Сервисный менеджер s6-rc включает набор утилит для запуска и остановки длительно функционирующих процессов (демонов) или сразу завершаемых скриптов инициализации. В процессе работы обеспечивается параллельный запуск не пересекающихся между собой сервисов и гарантируется повторяющаяся при разных запусках последовательность выполнения скриптов. Все изменения состояния обрабатываются с учётом зависимостей, например, при запуске какого-то сервиса будут автоматически запущены необходимые для его работы зависимости, а при остановке - остановлены и зависимые сервисы.
В отличие от других сервисных менеджеров s6-rc поддерживает упреждающее (в offline-режиме) построение графа зависимостей для имеющегося набора сервисов, что позволяет выполнить ресурсоёмкий анализ зависимостей отдельно, а не во время загрузки или изменения состояния. При этом система не является монолитной и разбита на серию отдельных и заменяемых модулей, каждый из которых в соответствии с философией Unix решает только определённую задачу. Проект s6-rc придерживается философии минимализма (не содержит ничего лишнего) и потребляет минимум ресурсов.
Вместо уровней запуска (runlevel) в s6-rc предлагается концепция наборов (bundles), позволяющая группировать сервисы по произвольным признакам и решаемым задачам. Для повышения эффективности работы используется скомпилированная БД зависимостей, создаваемая утилитой s6-rc-compile на основе содержимого каталогов с файлами для запуска/остановки сервисов. Для разбора и манипуляций с БД предлагаются утилиты s6-rc-db и s6-rc-update.
В новой версии добавлены коллекции утилит s6-rc-repo-* и s6-rc-set-* для управления репозиториями с определениями сервисов; обеспечена поддержка разделяемых библиотек на платформе macOS; добавлена опция "--bootdb" для настройки на этапе сборки загрузочной базы данных с информацией о сервисах и зависимостями между ними; в утилиту s6-rc-compile добавлена опция "-v2".
Проектом также развиваются сопутствующие пакеты, дополняющие s6-rc:
- s6 - утилиты для отслеживания работы процессов и управления процессами (аналог daemontools и runit). Поддерживаются такие возможности как
перезапуск процессов после их аварийного завершения, запуск обработчика (активация сервиса) при обращении к сетевому порту, журналирование событий (замена syslogd) и контролируемое предоставление дополнительных привилегий (аналог sudo).
- s6-linux-init - реализация init-процесса для операционных систем на базе ядра Linux, применяемого для создания систем инициализации, в которых для управления сервисами и скриптами используются пакеты s6 и s6-rc.
- s6-networking - набор утилит для создания сетевых сервисов, похожий на
ucspi.
- s6-frontend - обвязка для воссоздания функциональности daemontools и runit поверх s6.
- s6-portable-utils - набор типовых Unix-утилит, таких как cut, chmod, ls, sort и grep, оптимизированных для потребления минимальных ресурсов и поставляемых под лицензией ISC.
- s6-linux-utils - набор утилит, привязанных к Linux, таких как chroot,
freeramdisk, logwatch, mount и swapon.
- mdevd - менеджер событий (аналог udevd), предназначенный для обработки горячего подключения устройств. По конфигурации mdevd совместим с mdev из состава Busybox.
- bcnm - сетевой конфигуратор с возможностями для настройки Wi-Fi на стороне клиента.
- execline - язык написания сценариев.
- skalibs - библиотека для создания безопасных системных приложений на языке Си.
- s6-dns - набор клиентских библиотек и утилит, заменяющих типовые DNS-утилиты из BIND и djbdns.
- dnsfunnel - перенаправляет локальные DNS-запросы на внешний сервер (DNS forwarder).
- shibari - простой DNS-сервер.
- tipidee - HTTP-сервер с поддержкой HTTP/1.1.
Источник: https://www.opennet.ru/opennews/art.shtml?num=64677
Представлена ФС DAXFS, похожая на ramfs и tmpfs, но работающая в обход страничного кэша
Конг Ванг (Cong Wang), сопровождающий подсистему управления трафиком (TC, Traffic Control) в ядре Linux и развивающий проект Multikernel, представил в списке разработчиков ядра Linux новую файловую систему DAXFS. DAXFS использует для хранения данных оперативную память, работает в режиме только для чтения и напоминает по функциональности урезанные файловые системы ramfs и tmpfs. Модуль ядра с реализацией DAXFS, а также утилита mkdaxfs для создания ФС опубликованы под лицензией GPLv2. После рецензирования рассматривается возможность интеграции DAXFS в основной состав ядра.
Ключевой особенностью новой ФС является задействование подсистемы DAX (Direct Access) для работы в обход страничного кэша и прямого обращения к разделяемой физической памяти. В ramfs и tmpfs содержимое сохраняется в страничном кэше, что при использовании одной ФС в нескольких контейнерах или ядрах, запущенных при помощи технологии Multikernel, приводит размещению нескольких копий данных в физической памяти. Наполнение ramfs и tmpfs также требует выполнения лишних операций копирования без возможности выполнить маппинг существующей области памяти.
Прямой доступ к памяти в DAXFS позволяет исключить лишние операции копирования и организовать работу в обход традиционного стека ввода/вывода на базе блочных устройств и механизмов буферизации, а также избавиться от фрагментации выделения памяти при совместном использовании одной ФС в разных контейнерах и multikernel-ядрах. DAXFS работает в режиме Zero-Copy и напрямую отдаёт содержимое файлов из памяти без лишнего дублирования данных в страничном кэше и с возможностью маппинга непрерывных областей физической памяти в каждый экземпляр контейнера или ядра. Дополнительно поддерживается использование API dma-buf для использования памяти, экспортируемой GPU, FPGA/SmartNIC или CXL-устройствами.
ФС работает в режиме только для чтения и инициализируется через загрузку в память предварительно подготовленного образа ФС, что упрощает реализацию, позволяет избавиться от выполнения операций выделения памяти во время работы и исключает усложнённые механизмы управления устройством.
Ключевой областью использования DAXFS называется применение совместно с технологией Multikernel, позволяющей на одном физическом компьютере выполнять несколько независимых экземпляров ядра Linux, которые имеют прямой доступ к аппаратным ресурсам и могут использоваться для запуска нескольких изолированных системных окружений.
DAXFS также может применяться для организации совместного доступа нескольких контейнеров или ядер к базовому системному образу, размещённому в разделяемой памяти; снижению накладных расходов при обращении к информации в памяти аппаратных ускорителей; организации обращения к памяти с нескольких хостов без сетевого ввода-вывода или к постоянной памяти, используя устройства на базе шины CXL (Compute Express Link).
Источник: https://www.opennet.ru/opennews/art.shtml?num=64674
Выпуск компилятора языка D 2.112
Опубликован релиз DMD 2.112, эталонного компилятора для языка D. Код компилятора распространяется под свободной лицензией BSL (Boost Software License). Поддерживаются системы Linux, Windows, macOS и FreeBSD.
Язык D использует статическую типизацию, обладает синтаксисом, схожим с C/C++, и обеспечивает производительность компилируемых языков. Язык D также заимствует некоторые возможности динамических языков, полезные для повышения эффективности разработки и обеспечения безопасности. Например, имеется поддержка: ассоциативных массивов, косвенного определения типов, автоматического управления памятью, средств параллельного программирования, шаблонов, компонентов для метапрограммирования. Опционально доступен сборщик мусора. В программах на языке D можно использовать библиотеки на языке C, а также некоторые библиотеки на C++ и Objective-C.
Среди изменений в выпуске 2.112:
- Операции над Ассоциативным массивом (хэшмап) реализованы через шаблоны.
- Битовые поля включены в язык и теперь не нужно использовать отдельный "-preview=bitfields".
- Висящие операторы "else", указанные без выделения блока фигурными скобками, теперь будет выдавать ошибку вместо предупреждения:
int i, j;
if (i)
if (j)
return 1;
else // Error: else is dangling, add { } after condition `if (i)`
return 2;
- Добавлен новый ключ "-extI" для указания внешних путей импорта, который аналогичен параметру пути импорта (-I), за исключением указания на то, что найденный с его помощью модуль находится вне компилируемого в данный момент исполняемого файла. В Windows он используется, когда параметр переопределения dllimport установлен на любое значение, кроме "none", чтобы принудительно импортировать символы внешнего модуля с помощью DllImport.
- Добавлены модули для C-файлов. Подобно расширению "__import", ключевое слово "__module" переносит объявление модулей из языка D в язык C. Это особенно полезно, когда необходимо импортировать несколько C-файлов с одинаковым именем (например, hello/utils.c и world/utils.c), поскольку оба файла должны быть импортированы с помощью import utils, когда они указаны в командной строке, что приводит к конфликтам.
--hello/utils.c:
#if __IMPORTC__
__module hello.utils;
#endif
int sqr(int x) { return x * x; }
--world/utils.c:
#if __IMPORTC__
__module world.utils;
#endif
int max(int a, int b) { return a > b ? a : b; }
--app.d:
import hello.utils;
import world.utils;
static assert(sqr(3) == 9);
static assert(max(3, 5) == 5);
- Объявлено устаревшим неявное преобразование целых чисел в присваивании значений типа "int op= float".
Это сделано для предотвращения потенциальных ошибок, когда присваивание "op=" неявно обрезает правую часть выражения от ненулевого значения до нуля.
uint a;
float b = 0.1;
a += b; // Deprecation: `uint += float` is performing truncating conversion
- В runtime добавлены несколько новых шаблонных реализаций.
- Исправлены ошибки связанные с недокументированным изменением в ABI macOS 15.4.
- С-макросы теперь преобразуются в шаблоны при работе "ImportC":
import core.sys.posix.stdlib;
import core.sys.posix.unistd;
extern(C) int main()
{
int status, pid = vfork();
if (pid == 0)
{
// ...
return 0;
}
waitpid(pid, &status, 0);
if (WIFEXITED(status))
{
// ...
}
return 0;
}
- В стандартной библиотеке реализована функция "lazyCache", которая предоставляет механизм кэширования диапазонов с отложенной оценкой. В отличие от cache, который немедленно оценивает элементы диапазона во время его создания, lazyCache откладывает оценку до тех пор, пока элементы не будут явно запрошены.
auto result = iota(-4, 5).map!(a => tuple(a, expensiveComputation(a)))().lazyCache();
// No computations performed at this point
auto firstElement = result.front;
// First element is now evaluated
- Улучшена обратная совместимость "getrandom()" на старых версиях Linux и других системах.
- "std.uni" обновлена до поддержки Unicode 17.
- В "std.uuid" добавлена поддержка uuid v7 .
- Новый API для "std.conv", где появились три функции "writeText", "writeWText" и "writeDText".
- В пакетный менеджер dub добавлена опция "-dest и ключ frameworks.
--Было:
lflags "-framework" "Cocoa"
--Теперь можно:
frameworks "Cocoa" "OpenGL"
Дополнительно можно отметить разработку ряда интересных проектов на языке D:
- В области разработки игр (GameDev) были следующие обновления: в dvn, движок для создания визуальных новелл, добавлены примеры использования. В порт движка Godot добавлена экспериментальная поддержка экспорта в Web. В Steam выпущена игра The Art of Reflection, реализованная с использованием технологий D и DirectX на собственном движке.
- В области веб-разработки развивается легковесный планировщик файберов photon, который показал высокие результаты в тесте производительности TechEmpower и вошёл в топ 10 результатов по нескольким тестам (Plaintest, JSON). Данный движок был интегрирован в популярный веб-фреймворк Vibe.D, в результате чего удалось добиться прироста производительности без изменения кода веб-приложений.
- После анонса о начале разработки нового сборщика мусора на конференции Dconf (видео1, видео2), данное обновление вошло в новый релиз. Новый GC также можно попробовать установить в качестве отдельного пакета. На данный момент поддерживается архитектура x86_64 для OC Linux и Windows. Продолжается работа над поддержкой macOS и других архитектур.
Источник: https://www.opennet.ru/opennews/art.shtml?num=64671
Обновление графического редактора GIMP 3.0.8
Представлен выпуск графического редактора GIMP 3.0.8. Готовые сборки опубликованы для Linux (AppImage, Snap и Flatpak для архитектур x86 и ARM64), macOS и Windows. Основное внимание при подготовке версии 3.0.8 уделено исправлению ошибок и регрессивных изменений. Новая функциональность будет предложена в ветке GIMP 3.2, в которой появится поддержка слоёв-ссылок (Link layer) и векторных слоёв (Vector layer), а также расширеной поддержки цветовой модели CMYK и возможностей для управления цветом.
Среди изменений в GIMP 3.0.8:
- Из ветки 3.2 бэкпортированы оптимизации для повышения производительность загрузки шрифтов, которые позволили сократить время запуска GIMP при наличии большого числа шрифтов в системе и решить проблемы с отрисовкой шрифтов в изображениях, когда изображение в формате XCF загружено до того как загрузились все шрифты.
- В дополнение к команде gimp-console-3.0 реализована поддержка флага "--no-interface" для выполнения операций в консольном режиме. Добавлена информация о флаге "--show-debug-menu".
- Решены проблемы, возникавшие при экспорте WEBP-изображений, загрузке цветовых профилей в Windows, экспорте XCF-файлов в режиме совместимости с GIMP 2.10, импорте формата SVG.
- Устранено аварийное завершение при использовании фильтра Equalize с некоторыми изображениями.
- Исправлен ошибочный вывод всплывающей панели поиска.
- Решены проблемы с отображением текстур в панелях Navigation и Selection Editor при тёмном режиме оформления, выравниванием кнопок в инструменте Transform и показом неприменимых операций заливки слоёв.
- В режиме недеструктивного редактирования налажено копирование и вставка слоёв и изображений с прикреплёнными фильтрами.
- Обеспечено корректное масштабирование пиктограмм в заголовках диалогов при изменении размера пиктограмм в настройках.
- Продолжена работа по задействованию в интерфейсе виджета Spin Scale.
- Улучшено определение каталога с настройками и плагинами при поставке в формате flatpak.
- Из ветки 3.2 перенесены изменения API для плагинов, касающиеся функций gimp_cairo_surface_get_buffer(), gimp_config_set_xcf_version() и gimp_config_get_xcf_version().
- Улучшена поддержка macOS, среди прочего решены проблемы с выставлением фокуса при выводе диалогов и налажено открытие файлов
EPS и PS.
- Обновлена версия цветового движка babl 0.1.120.
- Устранено 8 уязвимостей. Три уязвиости приводят к переполнению буфера или целочисленному переполнению при разборе изображений в форматах
PSP,
LBM и
PNM.
Потенциально данные уязвимости могут быть эксплуатированы для выполнения кода при открытии в GIMP специально оформленных файлов.
Информация о 5 уязвимостях (1,
2,
3,
4,
5) пока не раскрыта.
Источник: https://www.opennet.ru/opennews/art.shtml?num=64673
Выпуск стандартных Си-библиотек Glibc 2.43 и newlib 4.6.0
После шести месяцев разработки опубликован релиз системной библиотеки GNU C Library 2.43 (glibc), которая полностью следует требованиям стандартов ISO C23 и POSIX.1-2024. В создании нового выпуска приняли участие 69 разработчиков.
Из реализованных в Glibc 2.43 улучшений можно отметить:
- Добавлена экспериментальная возможность сборки компилятором Clang, которая пока доступна только для платформ aarch64-linux-gnu и x86_64-linux-gnu при использовании runtime, совместимого с libgcc. Для сборки Glibc требуется как минимум версия Clang 18.
- Для систем Linux добавлена функция mseal(), позволяющая процессам выставлять блокировку на изменение определённых частей своего адресного пространства.
- Для систем Linux добавлена функция openat2(), в отличие от функции openat() поддерживающая набор дополнительных флагов для ограничения разрешения файлового пути (запрет пересечения точек монтирования, символических ссылок, magic-ссылок (/proc/PID/fd), компонентов "../").
- Добавлены функции free_sized, free_aligned_sized, memset_explicit и memalignment, появившиеся в стандарте C23.
- В соответствии со стандартом C23 вызов assert определён как макрос с переменным числом аргументов, поддерживающий выражения с запятой внутри инициализатора.
- В соответствии со стандартом C23 функции bsearch, memchr, strchr, strpbrk, strrchr, strstr, wcschr, wcspbrk, wcsrchr, wcsstr и wmemchr, возвращающие указатели на входные массивы, переопределены как макросы, возвращающие указатель на тип с квалификатором "const", если входной аргумент является указателем на тип с квалификатором "const".
- В заголовочный файл math.h добавлены определения типов long_double_t, _Float32_t, _Float64_t и _Float128_t, появившихся в стандарте C23.
- Добавлены опциональные режимы исчисления времени TIME_MONOTONIC (постоянно увеличивающееся время, не зависящее от изменения системных часов), TIME_ACTIVE и TIME_THREAD_ACTIVE (время активного выполнения процесса или потока) для использования в функции timespec_get.
- Из проекта CORE-MATH перенесены оптимизированные варианты математических функций acosh, asinh,
atanh, erf, erfc, lgamma и tgamma.
- Добавлены оптимизированные реализации функций fma, fmaf, remainder, remaindef, frexpf, frexp, frexpl (binary128) и frexpl (intel96).
- Повышена производительность математических функций acosf, acoshf, asinhf, atan2f, atanhf, coshf, fmodf, lgammaf/lgammaf_r, log10f, remainderf, sinhf, sqrtf, tgammaf, y0/j0, y1/j1 и yn/jn, благодаря удалению кода обработки ошибок SVID (вызов пользовательской функции matherr при ошибке) для новых сборок (для сохранения совместимости с уже собранными программами они оставлены в режиме compat).
- На системах x86 добавлена поддержка процессоров Intel Nova Lake и Wildcat Lake.
- На системах AArch64 в функции malloc по умолчанию включена поддержка больших страниц памяти (transparent huge pages) размером 2MB (параметр ibc.malloc.hugetlb теперь выставлен в 1). В функции clone() реализовано отключение состояния ZA (Z-Array) на CPU с поддержкой расширения SME (Scalable Matrix Extension).
- Для систем AArch64, поддерживающих расширение BTI (Branch Target Identification), добавлена настройка glibc.cpu.aarch64_bti, позволяющая принудительно активировать BTI для всех исполняемых файлов и библиотек. BTI обеспечивает блокирование переходов на произвольные участки кода для противодействия созданию гаджетов в эксплоитах, использующих приёмы возвратно-ориентированного программирования.
- На системах AArch64, поддерживающих одно из расширений для защиты ветвления (Branch Target Identification или Guarded Control Stack), разрешено использование переменной окружения "LD_DEBUG=security" для вывода компоновщиком предупреждений при загрузке исполняемых файлов и библиотек, не поддерживающих данные расширения.
- Для систем AArch64 добавлены векторные варианты функций exp2m1, exp10m1, log10p1, log2p1 и rsqrt.
- Для архитектуры RISC-V добавлена оптимизированная реализация функции memset, использующая расширение RVV (RISC-V Vector).
- В тестовом наборе значительно расширена проверка многопоточности и функций scanf, strerror и strsignal.
- Данные кодировок, информация о типах символов и таблицы транслитерации обновлены для поддержки спецификации Unicode 17.0.0.
- В реализации функциональности LD_PROFILE прекращено использование каталога по умолчанию (/var/tmp) для записи данных профилирования. Для сохранения подобных данных теперь требуется явное определение для них каталога через переменную окружения LD_PROFILE_OUTPUT.
- Устранены уязвимости:
Кроме того, после года разработки проект Cygwin опубликовал выпуск стандартной Си-библиотеки newlib 4.6.0, развиваемой инженерами из компании Red Hat. Библиотека нацелена на предоставление компактной реализации стандартной Си-библиотеки (libc), пригодной для использования на встраиваемых системах c небольшим объёмом постоянного хранилища и оперативной памяти. Код проекта написан на языке Си и распространяется под лицензией LGPLv2.
В новой версии newlib:
- Расширена поддержка спецификации POSIX.1-2024.
- Повышена производительность функций memcpy, mempcpy и memmove.
- Добавлена опция "--enable-newlib-hw-misaligned-access".
- Проведена оптимизация архитектуры RISC-V функций серии mem* и str*.
- Переработан код обработки локалей, который избавлен от глобальной переменной global_locale_string в пользу отдельных переменных locale_string для каждого объекта локали с типом locale_t.
- Добавлена поддержка новой платформы m68k-atari-elf.
- Из FreeBSD-библиотеки gdtoa перенесён код strtorQ.c, который задействован для реализации поддержки 128-разрядного типа "long double" в функции strtold.
- Данные кодировок обновлены до Unicode 17.0.
Источник: https://www.opennet.ru/opennews/art.shtml?num=64670
В инфраструктуре OSS Fuzz реализована поддержка проектов на языке Lua
В инфраструктуру для непрерывного фаззинг-тестирования OSS-Fuzz добавлена возможность тестирования проектов, написанных на языке Lua, в дополнение к ранее поддерживаемым языкам C/C++, Go, Swift, Rust, Python, JavaScript и Java. Интеграция реализована с помощью проекта luzer, развивающего специализированный инструментарий для фаззинг-тестирования кода на языке Lua и расширений для Lua, написанных на C/C++.
Проект использует библиотеку libFuzzer и может применяться совместно с инструментами AddressSanitizer, MemorySanitizer, LeakSanitizer, ThreadSanitizer и Undefined Behavior Sanitizer, позволяющих на основе выявленных в процессе фаззинг-тестирования проблем, определять наличие типовых уязвимостей, вызванных переполнениями буфера, целочисленными переполнениями, обращением к неинициализированным и освобождённым областям, утечками памяти, разыменованием указателей и проблемами с установкой блокировок. Код проекта доступен под лицензией ISC.
В процессе работы luzer перебирает возможные комбинации входных данных и генерирует отчёт о всех выявленных сбоях и неперехваченных исключениях. Например, при проверке в luzer библиотеки разбора формата MsgPack antirez/lua-cmsgpack было выявлено, что данные с большим количеством массивов могут привести к переполнению стека.
В рамках проекта lunapark инструментарий luzer применяется для тестирования PUC Rio Lua, трассирующего компилятора LuaJIT, высокопроизводительной СУБД и сервера приложений Tarantool, а также для тестирования сторонних Lua-модулей.
Разработчики открытых проектов могут добавить свои репозитории для тестирования, подготовив шаблон фаззинг-тестирования и отправив специальную заявку через pull-запрос. При обнаружении ошибок, разработчикам автоматически отправляется уведомление и создаётся приватная заявка на исправление (чтобы исключить преждевременной утечки сведений об уязвимостях, тикет создаётся в системе отслеживания ошибок с ограниченным доступом). OSS Fuzz отслеживает состояние исправления ошибки и сам закрывает тикет, если он перестал воспроизводиться. Информация о проблеме становится публично доступной спустя 7 дней после исправления или спустя 90 дней с момента выявления ошибки, если проблема остаётся не исправленной.
Источник: https://www.opennet.ru/opennews/art.shtml?num=64668
Доступен пакетный менеджер GNU Guix 1.5 и дистрибутив на его основе
После более трёх лет разработки состоялся релиз пакетного менеджера GNU Guix 1.5 и построенного на его основе дистрибутива GNU/Linux - Guix System. В дальнейшем новые релизы GNU Guix решено выпускать раз в год. Для загрузки сформированы образы для установки на USB Flash (972 МБ) и использования в системах виртуализации (1.4 ГБ). Поддерживается работа на архитектурах i686, x86_64, Power9, armv7, riscv64 и aarch64.
Дистрибутив допускает установку как в качестве обособленной ОС в системах виртуализации, в контейнерах и на обычном оборудовании, так и запуск в уже установленных дистрибутивах GNU/Linux, выступая в роли платформы для развёртывания приложений. Пользователю предоставляются такие функции, как учёт зависимостей, воспроизводимая сборка, работа без root, откат на прошлые версии в случае проблем, управление конфигурацией и клонирование окружений (создание точной копии программного окружения на других компьютерах).
Основные новшества:
- Добавлена экспериментальная поддержка ядра GNU Hurd (x86_64-gnu). В инсталлятор добавлена опция для использования Hurd вместо ядра Linux.
- Добавлена поддержка архитектуры RISC-V (riscv64-linux).
- Сеанс GNOME обновлён до выпуска GNOME 46 (в прошлом релизе поставлялся GNOME 42) и переведён на использование по умолчанию Wayland. Расширена модульность сервиса gnome-desktop-service-type, в котором теперь можно настраивать список устанавливаемых по умолчанию приложений GNOME.
- Добавлен новый тип сервисов plasma-desktop-service-type для формирования окружения со средой рабочего стола KDE Plasma 6.5.
- Предоставлена возможность запуска фонового процесса Guix без привилегий root. При установке в дистрибутивах, отличных Guix System, по умолчанию задействован режим работы без прав root (rootless). В существующих установках данный режим можно активировать выставлением
"(privileged? #f)" в guix-configuration. Режим реализован с использованием пространства имён идентификаторов пользователей (user namespace) и профилей AppArmor.
- В команду "guix graph" добавлены бэкенды для GraphML и CycloneDX JSON, что позволяет использовать её для генерации полноценных SBOM (Software Bill of Material).
- В команду "guix shell" добавлены опции "--nesting" для использования Guix в контейнере и "--emulate-fhs" для запуска приложений с использованием структуры файловой системы, соответствующей спецификации FHS (Filesystem Hierarchy Standard).
- В команду "guix pack" добавлены бэкенды для создания пакетов в форматах RPM и AppImages, которые можно использовать в других дистрибутивах без Guix.
- Реализована команда "guix locate" для поиска пакетов, в которых присутствует указанный файл.
- Задействован новый выпуск системы инициализации GNU Shepherd 1.0, в котором появилась поддержка сервисов, периодически запускающих команды или код на языке Scheme по указанному расписанию. Добавлена возможность перезапуска ядра Linux с использованием механизма kexec. Реализованы новые сервисы log-rotation (ротация и удаление устаревших логов), system-log (замена syslogd), timer (запуск команд в указанное время) и transient (запуска команд в фоне). В Guix сервисы system-log и log-rotation задействованы вместо syslogd и
Rottlog.
- Реализована полная поддержка раскрутки (bootstrap) компиляторов Zig и Mono из исходного кода.
- Набор "setuid-programs" заменён на "privileged-programs" в спецификации "operating-system" (вместо suid-флага для получения привилегий задействованы Linux capabilities).
- Добавлено около 40 новых системных сервисов, среди которых Forgejo Runner, RabbitMQ, iwd и dhcpcd.
- Обновлены версии программ в 8911 пакетах, добавлено 12525 новых пакетов. Среди прочего обновлены версии GNOME 46.10, KDE Plasma 6.5, linux-libre 6.17.12, MATE 1.28.2, Xfce 4.20.0, lxde 0.99.3, xorg-server 21.1.21, GCC 15.2.0, LLVM 21.1.8, GIMP 3.0.4, glibc 2.41, go 1.25.3, Librewolf 140, icecat 140.6.0-gnu1 (firefox), icedtea 3.19.0, inkscape 1.3.2, julia 1.8.5, libreoffice 25.2.5.2, openjdk 25, perl 5.36.0, python 3.11.14, racket 8.18, rust 1.85.1, r 4.5.2,
sbcl 2.5.8.
Напомним, что пакетный менеджер GNU Guix основан на наработках проекта Nix и кроме типичных функций управления пакетами поддерживает такие возможности, как выполнение транзакционных обновлений, возможность отката обновлений, работа без получения привилегий суперпользователя, поддержка привязанных к отдельным пользователям профилей, возможность одновременной установки нескольких версий одной программы, средства уборки мусора (выявление и удаление неиспользуемых версий пакетов). Для определения сценариев сборки приложений и правил формирования пакетов предлагается использовать специализированный высокоуровневый предметно-ориентированный язык и компоненты Guile Scheme API, позволяющие выполнять все операции по управлению пакетами на функциональном языке программирования Scheme.
Поддерживается возможность использования пакетов, подготовленных для пакетного менеджера Nix и размещённых в репозитории
Nixpkgs. Кроме операций с пакетами возможно создание сценариев для управления конфигурацией приложений. При сборке пакета автоматически загружаются и собираются все связанные с ним зависимости. Возможна как загрузка готовых бинарных пакетов из репозитория, так и сборка из исходных текстов со всеми зависимостями. Реализованы средства для поддержания версий установленных программ в актуальном состоянии через организацию установки обновлений из внешнего репозитория.
Сборочное окружение для пакетов формируется в виде контейнера, содержащего все необходимые для работы приложений компоненты, что позволяет сформировать набор пакетов, способный работать без оглядки на состав базового системного окружения дистрибутива, в котором Guix используется в качестве надстройки. Между пакетами Guix возможно определение зависимостей, при этом для поиска наличия уже установленных зависимостей используется сканирование хэшей-идентификаторов в директории установленных пакетов. Пакеты устанавливаются в отдельное дерево директорий или поддиректорию в каталоге пользователя, что позволяет обеспечить его параллельное сосуществование с другими пакетными менеджерами и обеспечить поддержку различных дистрибутивов. Например, пакет устанавливается как /nix/store/452a4978f3b1b428064a2b64a0c6f41-firefox-147.0.1/, где "452a49..." является уникальным идентификатором пакета, используемым для контроля зависимостей.
Дистрибутив включает только свободные компоненты и поставляется с ядром GNU Linux-Libre, очищенным от несвободных элементов бинарных прошивок. Для сборки применяется GCC 15.2. В качестве системы инициализации используется сервисный менеджер GNU Shepherd (бывший dmd), развиваемый как альтернатива SysV-init с поддержкой зависимостей. Управляющий демон и утилиты Shepherd написаны на языке Guile (одна из реализаций языка Scheme), который также используется и для определения параметров запуска сервисов. Базовый образ поддерживает работу в консольном режиме, но для установки подготовлено 29932 готовых пакетов, среди которых и компоненты графического стека, оконные и композитные менеджеры, рабочие столы GNOME, KDE и Xfce, а также подборка графических приложений.
Источник: https://www.opennet.ru/opennews/art.shtml?num=64666
Выпуск Wine 11.1. В Wine Staging добавлена поддержка установщика Adobe Photoshop 2025
Состоялся экспериментальный выпуск открытой реализации Win32 API - Wine 11.1. С момента выпуска 11.0 было закрыто 22 отчёта об ошибках и внесено 209 изменений.
Напомним, что начиная с ветки 2.x проект Wine перешёл на схему нумерации версий, в которой каждый стабильный релиз приводит к увеличению первой цифры в номере версии (10.0.0, 11.0.0), а обновления к стабильным релизам выпускаются с изменением третьей цифры (11.0.1, 11.0.2, 11.0.3). Экспериментальные версии, публикуемые в процессе подготовки следующего значительного релиза, выпускаются с изменением второй цифры (11.1, 11.2, 11.3). Через год на основе экспериментальных выпусков Wine 11.x будет сформирован стабильный релиз 12.0.0.
Наиболее важные изменения:
- В наборе библиотек WindowsCodecs расширена поддержка пиксельных форматов. Обеспечено преобразование индексированных форматов с 8-битами на канал в представление с 24 битами на канал, а также преобразование между форматами 32bpp RGBA и 64bpp RGBA.
- В библиотеке MSADO (ActiveX Data Objects) повышена производительность поиска столбцов в БД. Реализованы функции _Connection:{get,put}_ConnectionTimeout, WrapDSOandSession, IRowset, IRowsetExactScroll:GetExactPosition, _Recordset::Seek.
- В winewayland налажена поддержка механизма VRR (Variable Refresh Rate), позволяющего адаптивно менять частоту обновления монитора для обеспечения плавности и отсутствия разрывов во время игр и показа видео. Решены проблемы с отображением пиктограмм в окружениях на базе Wayland.
- В сервис netprofm, отвечающий за обнаружение, сохранение и управление сетевыми подключениями, добавлена поддержка IPv6.
- В ncrypt добавлена поддержка алгоритма ECDSA_P256.
- Закрыты отчёты об ошибках, связанные с работой приложений: SureThing CD Labeler, Personal Ancestral File 5 (PAF 5), Mathearbeit G 5.6, PDFsam, Microsoft Edge, Camerabag Pro 2025.2, iTunes 12.9.3, Ubisoft Connect, FastStone Image Viewer.
- Закрыты отчёты об ошибках, связанные с работой игр: Project Cars 2, SnowRunner, Sacred Gold 2.28 ASE, GOG GALAXY, Genshin Impact.
Кроме того, в ближайшие часы будет сформирован выпуск проекта Wine Staging 11.1, предоставляющего расширенные сборки Wine, включающие не полностью готовые или рискованные патчи, пока непригодные для принятия в основную ветку Wine. Новая версия примечательная интеграцией набора изменений, реализующих функциональность библиотек mshtml и msxml3, необходимую для запуска инсталлятора пакетов Adobe Photoshop 2021-2025, Adobe Premiere Pro 2025 и других продуктов Adobe Creative Cloud. Отдельно подготовлены готовые сборки варианта Wine, собранного с предложенными патчами. После установки в целом Adobe Photoshop работает, но отмечаются отдельные проблемы, такие как невозможность перетаскивать элементы в режиме Drag&Drop в окружениях на базе Wayland.
Источник: https://www.opennet.ru/opennews/art.shtml?num=64665
Проект Singularity развивает открытый руткит, обходящий SELinux, Netfilter, LKRG и eBPF
Матеус Алвес (Matheus Alves), исследователь безопасности, специализирующийся на вредоносном ПО, опубликовал обновление проекта Singularity, развивающего открытый руткит для ядра Linux, распространяемый под лицензией MIT. Целью проекта является демонстрация методов, позволяющих скрыть своё присутствие после получения root-доступа и сохранить возможность скрытого выполнения привилегированных операций. Предполагается, что Singularity может быть полезен исследователям безопасности для тестирования и разработки утилит обнаружения и блокирования руткитов.
Руткит оформлен в виде модуля для ядер Linux 6.x и использует механизм ftrace для незаметного перехвата системных вызовов без изменения точек входа в системные вызовы и без модификации функций ядра. Singularity поддерживает скрытие своего присутствия в системе, а также скрытие заданных атакующим процессов и связанных с ними файлов и сетевой активности. Для удобства исследователей функциональность руткита разделена на модули.
Помимо типовых методов маскировки присутствия в системе, таких как скрытие необходимых процессов, файлов, каталогов и модулей ядра, в Singularity реализовано несколько продвинутых методов обхода механизмов защиты и затруднения обнаружения специализированными сканерами руткитов, такими как Falco, ghostscan, tracee, unhide, chkrootkit и rkhunter.
Среди прочего, Singularity может скрывать свою активность от инструментов, использующих eBPF, удалять блокировки eBPF, препятствовать загрузке модулей ядра, противостоять анализу ввода/вывода через подсистему io_uring, а также обходить проверки целостности, осуществляемые модулем LKRG (Linux Kernel Runtime Guard).
В Singularity присутствует reverse shell, предоставляющий привилегированный удалённый доступ к системе через отправку ICMP-пакетов, а также обработчики, дающие возможность добиться скрытия процессов или повышения привилегий в системе через определённые манипуляции с сигналами и переменными окружения. Например, для скрытия процесса из /proc и вывода утилит, таких как ps, можно выполнить "kill -59 PID_процесса, а для повышения привилегий выставить переменную окружения "MAGIC=mtz".
Руткит скрывает трафик reverse shell от сетевых анализаторов и позволяет обходить обработчики SELinux, срабатывающие на ICMP.
Singularity также включает возможности для скрытия определённых сетевых соединений из таблиц /proc/net/nf_conntrack, netlink-обработчиков SOCK_DIAG/NETFILTER и утилит, подобных netstat, ss, lsof, tcpdump и wireshark. Доступны обработчики для чистки сообщений аудита и вывода в логи (klogctl, syslog, systemd-journal, /sys/kernel/debug/tracing/, dmesg). Имеются фильтры для противостояния анализаторам памяти, таким как Volatility, использующим /proc/kcore, /proc/kallsyms и /proc/vmallocinfo, а также возможности фильтрации прямого обращения к блочным устройствам для предотвращения низкоуровневого анализа содержимого ФС.
<iframe src="https://www.youtube.com/embed/ByEp137w3Ks?si=VkUhHYitWFypOuNM">
Источник: https://www.opennet.ru/opennews/art.shtml?num=64663
На соревновании Pwn2Own Automotive 2026 продемонстрировано 66 уязвимостей автомобильных систем
Подведены итоги трёх дней соревнований Pwn2Own Automotive 2026, проведённых на конференции Automotive World в Токио. На соревнованиях были продемонстрированы 66 ранее неизвестных уязвимостей (0-day) в автомобильных информационно-развлекательных платформах, операционных системах и устройствах зарядки электромобилей. При проведении атак использовались самые свежие прошивки и операционные системы со всеми доступными обновлениями и в конфигурации по умолчанию.
Суммарный размер выплаченных вознаграждений составил 955 тысяч долларов США. Наиболее успешная команда Fuzzware.io сумела заработать на соревнованиях 213 тысячи долларов США. Обладатели второго места (Team DDOS) получили 95 тысяч долларов, а третьего (Synacktiv) - 85 тысяч долларов.
В ходе соревнований продемонстрированы следующие атаки:
- Взлом окружения на базе дистрибутива Automotive Grade Linux ($4000 за эксплуатацию цепочки из трёх уязвимостей, связанных с чтением из области вне буфера, исчерпанием свободной памяти и переполнением буфера).
- 12 взломов информационно-развлекательной системы на базе платформы Alpine iLX-511 ($20000, 2 по $10000 и $5000 за эксплуатацию уязвимостей, приводящих к переполнению буфера; $10000, 2 по $5000 и 4 по $2500 за уязвимость, позволяющую получить доступ к опасному методу; $10000 за уязвимость, приводящую к подстановке команд).
- 12 взломов информационно-развлекательной системы Kenwood DNR1007XR ($20000 и $10000 за уязвимости, вызванные переполнением буфера; $8000 за эксплоит, использующий ранее известную, но не устранённую проблему с жёстко прописанными учётными данными, в сочетании с некорректными правами доступа к важному ресурсу и уязвимостью, приводящую к подстановке команд; $4000 за эксплоит, использующий ранее известные, но не устранённые проблемы с состоянием гонки и некорректными правами доступа; $8000 и 3 по $2500 за эксплуатацию уже известной уязвимости, оставшейся неисправленной; $8000 за эксплуатацию цепочки из 3 уязимостей - жёстко прописанные учётными данными, некорректно выставленные права доступа и отсутствие проверки символической ссылки; $6000, $5000 и $4000 за уязвимости, приводящие к подстановке команд).
- 4 взлома информационно-развлекательной системы Sony XAV-9500ES ($20000 за эксплоит, использующий цепочку из трёх ошибок; 3 по $10000 за эксплуатацию выхода за границу буфера).
- Взлом информационно-развлекательной системы автомобиля Tesla при подключении через USB-порт ($35000 за эксплоит, использующий утечку информации и переполнение буфера).
- 10 взломов зарядной станции Grizzl-E Smart 40A ($40000 за выявление жёстко прописанных в прошивке учётных данных и отсутствие проверки целостности загружаемого кода; $25000 и $10000 за уязвимость, приводящую к обходу аутентификации; $10000 за уязвимость, приводящую к переполнению буфера; $22500, $20000, 3 по $15000 и
$5000 за эксплоиты, использующие цепочки из 3 или 2 ошибок).
- 7 взломов зарядной станции Phoenix Contact CHARX SEC-3150 ($50000 за эксплоит, использующий подстановку команд и состояние гонки; $50000, $20000 $19250 и $6750 за эксплоиты, использующие цепочки из 3, 5 и 6 ошибок; $20000 за эксплуатацию уязвимостей, позволивших обойти аутентификацию и повысить свои привилегии; $15000 за эксплоит, использующий цепочку из 3 ошибок).
- 4 взлома зарядной станции Autel MaxiCharger AC Elite Home 40A ($50000, $20000 и $10000 за уязвимости, позволившие обойти аутентификацию и проверку цифровой подписи; $30000 за уязвимость, приводящую к переполнению буфера).
- 4 взлома зарядной станции ChargePoint Home Flex CPH50-K ($40000, 2 по $30000 и $16750 за уязвимости, допускающие подстановку команд, и отсутствие должной обработки символических ссылок).
- 4 взлома зарядной станции Alpitronic HYC50 ($60000 за эксплуатацию уязвимости, приводящей к переполнению буфера; $40000 за уязвимость, позволяющую получить доступ к опасному методу; $20000 за уязвимость, вызванную состоянием гонки; $20000)
Кроме вышеотмеченных успешных атак, 9 попыток эксплуатации уязвимостей завершились неудачей, во всех случаях из-за того, что команды не успели уложиться в отведённое для атаки ограниченное время. Неудачными оказались попытки взлома устройств Kenwood DNR1007XR, Alpine iLX-F511, Autel MaxiCharger AC Elite Home 40A, EMPORIA Pro Charger Level 2, ChargePoint Home Flex, Sony XAV-9500ES и Grizzl-E Smart 40A.
В соответствии с условиями конкурса детальная информация о всех продемонстрированных 0-day уязвимостях будет опубликована только через 90 дней, которые даются на подготовку производителями обновлений с устранением уязвимостей.
Источник: https://www.opennet.ru/opennews/art.shtml?num=64662
Выпуск Rust 1.93. Проекты Rex, Fjall 3 и Arti 1.9.0
Опубликован релиз языка программирования Rust 1.93, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).
Методы работы с памятью в Rust избавляют разработчика от ошибок при манипулировании указателями и защищают от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Для распространения библиотек, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo. Для размещения библиотек поддерживается репозиторий crates.io.
Безопасная работа с памятью обеспечивается в Rust во время компиляции через проверку ссылок, отслеживание владения объектами, учёт времени жизни объектов (области видимости) и оценку корректности доступа к памяти во время выполнения кода. Rust также предоставляет средства для защиты от целочисленных переполнений, требует обязательной инициализации значений переменных перед использованием, лучше обрабатывает ошибки в стандартной библиотеке, применяет концепцию неизменяемости (immutable) ссылок и переменных по умолчанию, предлагает сильную статическую типизацию для минимизации логических ошибок.
Основные новшества:
- Встроенная в поставку Rust стандартная си-библиотека Musl, используемая при статической компоновке для целевых платформ "*-linux-musl" (aarch64-unknown-linux-musl, x86_64-unknown-linux-musl, powerpc64le-unknown-linux-musl и т.п.) на системах без Musl, обновлена до версии 1.2.5. Минимально поддерживаемая версия Musl при динамической компоновке также поднята до выпуска 1.2.5. Ранее в Rust использовалась версия Musl 1.2.3, в которой имелись проблемы в реализации DNS-резолвера. В версии Musl 1.2.4 в DNS-резолвер была добавлена возможность отправки запроса по TCP в случае неудачного обращения по UDP, что решило проблему с запросом больших DNS-записей и наладило совместимость с рекурсивными DNS-серверами, не поддерживающими отдачу части результата в обрезанных UDP-ответах. В версии Musl 1.2.5 в DNS-резолвере реализована обработка ответов с длинными последовательностями CNAME и решена проблема, из-за которой отбрасывались некоторые большие ответы, передаваемые через TCP.
- Стандартная библиотека переработана для решения проблем с
реентерабельностью при использовании в глобальных аллокаторах памяти, написанных на Rust, макроса std::thread_local! и функции std::thread::current, приводивших к бесконечной рекурсии. Для исключения ситуации, когда std::thread_local! и std::thread::current при попытке выделения памяти вызывали тот же аллокатор в котором используются, в них теперь напрямую применяется системный механизм выделения памяти.
- Внутри блоков "asm!" с ассемблерным кодом разрешено использование атрибутов "cfg", что, например, позволяет управлять задействованием расширенных наборов команд CPU в контексте отдельных выражений внутри asm-блока (ранее атрибуты "cfg" могли задаваться только для asm-блока целиком).
asm!( // или global_asm! или naked_asm!
"nop",
#[cfg(target_feature = "sse2")]
"nop",
// ...
#[cfg(target_feature = "sse2")]
a = const 123, // only used on sse2
);
- В разряд стабильных переведена новая порция API, в том числе стабилизированы методы и реализации типажей:
- Целевая платформа "riscv64a23-unknown-linux-gnu" переведена на второй уровень поддержки, который подразумевает гарантию сборки, но отсутствие гарантий при прохождении тестового набора.
Дополнительно можно отметить несколько связанных с Rust проектов:
- Для ядра Linux развивается фреймворк Rex, позволяющий создавать дополнения для ядра Linux на языке Rust, которые можно использовать для расширения функциональности ядра вместо eBPF. Rex предоставляет те же гарантии безопасности, что и eBPF, но использует для изоляции и обеспечения безопасности возможности языка Rust и легковесный Runtime.
Для подобных программ не применяется верификатор, а программы компилируются в нативный код компилятором Rust.
В Rex-программах допускается использование подмножества языка Rust, предоставляющего гарантии безопасности. В текущем виде поддерживается 5 типов программ
eBPF: kprobe, perf_event, tracepoint, xdp и tc. Имеется возможность вызывать вспомогательные функции eBPF, взаимодействовать с map-структурами eBPF, управлять ресурсами ядра, обрабатывать исключения и использовать обвязки и абстракции над структурами ядра.
- Доступен выпуск Fjall 3, написанного на Rust встраиваемого хранилища, работающего с данными в формате ключ-значение. Хранение данных производится в форме лога c использованием LSM-дерева (Log-Structured-Merge), как в RocksDB, при котором изменения записываются через добавление данных в конец файла. Для обращения к БД предлагается API в стиле BTreeMap. Поддерживаются такие возможности, как пространства имён, прямой и обратный поиск по диапазонам, встроенное сжатие, сериализируемые транзакции, раздельное хранение ключей и связанных с ними очень больших значений, автоматическое фоновое обслуживание БД. Код открыт под лицензией Apache 2.0.
- Проект Tor опубликовал выпуск Arti 1.9.0, реализации инструментария Tor, написанной на языке Rust. Когда код Arti достигнет уровня, способного полностью заменить вариант на Си, разработчики Tor намерены придать Arti статус основной реализации Tor и постепенно прекратить сопровождение реализации на Си. В новой версии продолжена реализация функциональности для релеев и серверов директорий (Directory Authority), улучшена поддержка работы с динамически назначаемыми портами (proxy.socks_listen = "auto"), добавлен экспериментальный API для управления ключами для onion-сервисов.
Источник: https://www.opennet.ru/opennews/art.shtml?num=64660
Представлена плата Arduino UNO Q с 4ГБ ОЗУ и 32ГБ eMMC
Проект Arduino, который в прошлом году поглотила компания Qualcomm, объявил о доступности нового варианта платы UNO Q, поставляемого с 4ГБ ОЗУ и eMMC-накопителем, размером 32ГБ. Стоимость UNO Q с 4ГБ ОЗУ и 32ГБ eMMC составляет 59 долларов. Для сравнения вариант с 2 ГБ ОЗУ и 16ГБ eMMC продаётся за 44 доллара.
Новая комплектация позволяет подключить к устройству клавиатуру, мышь и монитор, и использовать плату в качестве персонального компьютера с графическим окружением на базе типовых дистрибутивов Linux. Наличие аппаратного AI-ускорителя и DSP также даёт возможность применять плату для решения более серьёзных задач машинного обучения, компьютерного зрения, робототехники и обработки звука, чем те, которые можно было задействовать на плате с 2 ГБ ОЗУ. В качестве дистрибутива рекомендуется использовать Debian GNU/Linux.
Оба варианта платы поставляются с процессором Qualcomm Dragonwing QRB2210 и микроконтроллером STM32U585. Процессор QRB2210 имеет 4 ядра Cortex-A53 (2.0 GHz), оснащён GPU Adreno 702 (с поддержкой OpenGL ES 3.1, Vulkan 1.1 и OpenCL 2.0 и аппаратными декодировщиками H.264, H.265 и VP9) и двухядерным DSP c функциями ускорителя выполнения AI-моделей и обработки звука.
Микроконтроллер STM32U585 включает ядро Arm Cortex-M33 160 MHz с поддержкой технологии TrustZone, DSP и FPU, и может использоваться для управления дополнительным оборудование в режиме реального времени. Плата оснащена USB-C, Wi-Fi 2.4/5 GHz, Bluetooth 5.1. Форм-фактор платы, коннекторы и поддержка периферийных устройств аналогичны модели Arduino Uno.
Источник: https://www.opennet.ru/opennews/art.shtml?num=64656
Mozilla начала формирование rpm-пакетов с ночными сборками Firefox
Разработчики из компании Mozilla объявили о создании официального репозитория с rpm-пакетами, позволяющими установить ночные сборки Firefox в openSUSE, SUSE, Fedora, RHEL, CentOS и различных RHEL-подобных дистрибутивах. Подобный репозиторий с deb-пакетами для Debian и Ubuntu предоставляется с 2023 года.
Использование rpm-репозитория позволяет задействовать штатные для дистрибутивов возможности для установки и обновления пакетов. При сборке пакетов в компиляторе включены дополнительные оптимизации, а также флаги для усиления безопасности. Публикация сборок интегрирована в основной процесс подготовки релизов Firefox. В состав включён .desktop-файл для размещения ярлыка на рабочем столе и в меню дистрибутива.
Для установки ночных сборок Firefox из репозитория можно использовать команды:
Fedora:
sudo dnf config-manager addrepo --id=mozilla --set=baseurl=https://packages.mozilla.org/rpm/firefox --set=gpgcheck=0 --set=repo_gpgcheck=0
sudo dnf makecache --refresh
sudo dnf install firefox-nightly
openSUSE, SUSE Linux:
sudo zypper ar -G https://packages.mozilla.org/rpm/firefox mozilla
sudo zypper refresh
sudo zypper install firefox-nightly
RHEL, CentOS, Rocky Linux, Alma Linux, Oracle Linux
sudo tee /etc/yum.repos.d/mozilla.repo > /dev/null ‹ EOF
[mozilla]
name=Mozilla Packages
baseurl=https://packages.mozilla.org/rpm/firefox
enabled=1
repo_gpgcheck=0
gpgcheck=0
EOF
sudo dnf makecache --refresh
sudo dnf install firefox-nightly
Источник: https://www.opennet.ru/opennews/art.shtml?num=64658
Уязвимость в GitLab, позволяющая обойти двухфакторную аутентификацию
Опубликованы корректирующие обновления платформы для организации совместной разработки GitLab - 18.8.2, 18.7.2, 18.6.4, в которых устранена уязвимость (CVE-2026-0723), позволяющая обойти проверку при двухфакторной аутентификации. Для совершения атаки злоумышленник должен знать идентификатор учётных данных жертвы. Уязвимость вызвана отсутствием должной проверки возвращаемого значения в сервисах аутентификации.
Кроме того, в новых версиях устранены ещё 4 уязвимости, две из которых помечены опасными. Данные проблемы приводят к отказу в обслуживании при отправки специально оформленных запросов к компоненту для интеграции с Jira Connect (CVE-2025-13927), API управления релизами (CVE-2025-13928) и SSH (CVE-2026-1102), а также к зацикливанию при созданию специально оформленного Wiki-документа (CVE-2025-13335).
Всем пользователям рекомендуется срочно установить обновление. Детали проблемы пока не раскрываются и станут доступны публично спустя 30 дней после публикации исправления. Сведения об уязвимостях переданы в GitLab в рамках действующей на HackerOne программы выплаты вознаграждений за обнаружение уязвимостей.
Источник: https://www.opennet.ru/opennews/art.shtml?num=64657
LLVM ввёл правила применения AI-инструментов. Curl свернул выплаты за уязвимости из-за AI
Разработчики проекта LLVM утвердили правила применения AI-инструментов при разработке. Необходимость регламентирования использования AI объясняется увеличением числа мусорных изменений, предлагаемых для включения в кодовую базу LLVM. Под мусорными подразумеваются изменения, сгенерированные AI-инструментами и отправленные как есть, без понимая сути, проверки и придерживаясь позиции "мэйнтейнер сам разберётся". Подобная активность создаёт повышенную нагрузку на сопровождающих и вынуждает их тратить время на разбор бесполезного кода.
При этом разработчики LLVM признают, что при должном использовании AI является полезным инструментом, ускоряющим разработку. Утверждённые в LLVM условия применения AI частично основаны на правилах, в прошлом году опубликованных проектом Fedora. Основная идея принятых правил в том, что разработчики не должны перекладывать на сопровождающих работу по рецензированию кода, созданного в AI-ассистентах.
В дополнение к упоминаемой в правилах Fedora ответственности за переданное изменение в правилах LLVM введено требование обязательного ручного рецензирования кода, сгенерированного в AI, перед тем как предложить изменение в проект. Кроме того, подготовивший изменения должен хорошо разбираться в коде и быть готовым ответить на связанные с ним вопросы. Рекомендуется вручную составлять описания к pull-запросам, а не доверять подготовку сопроводительного текста AI.
При передаче изменения, значительная часть которого сгенерирована AI-инструментами, в примечании к pull-запросу необходимо добавить сведения о применении AI, например, добавив тег "Assisted-by: название AI-ассистента". Запрещено использование автоматизированных AI-инструментов, таких как интегрированный с GitHub AI-агент @claude, выполняющих действия или отправляющих комментарии без участия человека.
Принятые правила распространяются не только на код в запросах на внесение изменений, но и на RFC-документы с предложением новой функциональности, сообщения об уязвимостях и ошибках, комментарии и отзывы к pull-запросам.
Дополнительно можно отметить решение Дэниела Cтенберга (Daniel Stenberg), автора утилиты для получения и отправки данных по сети curl, о прекращении действия программы выплаты денежных вознаграждений за раскрытие информации об уязвимостях в Curl. Выплата вознаграждений будет прекращена в конце января из-за обилия мусорных заявок, сгенерированных в AI-ассистентах и отправленных без проверки фактического наличия уязвимости.
Сообщается, что за первые две недели января было подано 20 заявок на получение вознаграждения, утверждающих о наличии уязвимостей. Разбор данных заявок показал, что ни в одной из них не выявлено реальных уязвимостей. Авторам отчётов об уязвимостях рекомендуется не сообщать о проблеме, если они не понимают её суть и не могут воспроизвести ошибку. Проверка подобных заявок отнимает много времени у команды, отвечающей за безопасность. Предполагается, что прекращение выплаты вознаграждений снизит мотивацию людей присылать мусорные и плохо проверенные отчёты об уязвимостях, независимо от того, сгенерированы они в AI или нет.
Источник: https://www.opennet.ru/opennews/art.shtml?num=64655
Обновление среды рабочего стола COSMIC 1.0.3
Компания System76, разрабатывающая Linux-дистрибутив Pop!_OS, опубликовала выпуск среды рабочего стола COSMIC 1.0.3, а также объявила о доступности сформированного на прошлой неделе обновления 1.0.2. Пакеты с COSMIC 1.0.3 доступны в дистрибутиве Pop!_OS 24.04 и в ближайшее время ожидаются в Fedora, NixOS, Arch Linux, openSUSE, Serpent OS, Redox и CachyOS.
COSMIC развивается как универсальный проект, не привязанный к конкретному дистрибутиву и соответствующий спецификациям Freedesktop.
Для построения интерфейса в COSMIC задействована библиотека Iced, которая использует безопасные типы, модульную архитектуру и модель реактивного программирования, а также предлагает архитектуру, привычную для разработчиков, знакомых с языком декларативного построения интерфейсов Elm. Предоставляется несколько движков отрисовки, поддерживающих Vulkan, Metal, DX12, OpenGL 2.1+ и OpenGL ES 2.0+. Разработчикам предлагается готовый набор виджетов, возможность создавать асинхронные обработчики и использовать адаптивную компоновку элементов интерфейса в зависимости от размера окна и экрана.
Помимо использования языка Rust из особенностей COSMIC выделяются режимы гибридной мозаичной компоновки окон и стекового закрепления окон (группировка окон по аналогии со вкладками в браузере), которые могут включаться в привязке к виртуальным рабочим столам. Проектом также разрабатывается композитный сервер cosmic-comp на базе Wayland.
Основные изменения в выпусках 1.0.1, 1.0.2 и 1.0.3:
- Реализована поддержка скругления углов для всех окон, а не только для приложений COSMIC. Добавлена возможность отображения теней для окон, среди прочего и при мозаичной компоновке. Для выбора вида углов и теней окон в настройки внешнего вида добавлена секция "Settings > Desktop > Appearance > Window shadow and corners".
- В композитном сервере реализована активация окон X11-клиентами, работающими через XWayland, что позволяет индикаторам в системном лотке переключать фокус на окна в других виртуальных рабочих столах. Размер пиктограмм для X11-приложений адаптирован для выставленного уровня масштабирования.
- В файловом менеджере добавлена функция открытия нескольких каталогов в отдельных вкладках. Добавлена опция для переноса времени создания и изменения файла при копировании. Реализована возможность ввода сетевых путей в панели. Добавлено автодополнение ввода пути в панели нажатием клавиши Tab или Shift-Tab. Добавлен диалог подтверждения операции очистки корзины.
- В мультимедийном проигрывателе cosmic-player обеспечено отключение звука при показе миниатюр с изображением кадра, соответствующего выбранной позиции на полосе прокрутки.
- В конфигураторе реализована функция быстрой активации поиска - начало набора на клавиатуре приводит к появлению строки поиска в любом разделе конфигуратора.
Добавлена возможность применения тем оформления в формате RON (Rusty Object Notation) через интерфейс командной строки.
На страницу настройки комбинаций клавиш добавлен подраздел с параметрами для людей с ограниченными возможностями. Добавлен комбинация Super+Alt+S для активации экранного ридера. Включена по умолчанию симуляция клика касанием к тачпаду. Добавлена поддержка VPN-соединений, требующих двухфакторной аутентификации.
- В эмуляторе терминала реализована загрузка паролей в память только при открытии страницы работы с паролями и удаление паролей из памяти при её закрытии. Добавлена поддержка выделения содержимого кликом с удержанием клавиши Shift.
- В интерфейсе начальной настройки (COSMIC Initial Setup) добавлена поддержка систем с несколькими мониторами и активирован по умолчанию экранный ридер.
- В менеджере приложений (COSMIC Store) появилась опция для очистки данных Flatpak-приложений после их удаления.
- В интерфейсе переключения виртуальных рабочих столов реализована зацикленная прокрутка при использовании колеса мыши, аналогичная поведению апплета переключения рабочих столов на панели. Улучшена скорость прокрутки эскизов рабочих столов при помощи тачпада.
- В текстовом редакторе добавлена поддержка выделения текста комбинацией Shift+клик.
- В программе для создания скриншотов обеспечено запоминание выделенной области экрана.
Источник: https://www.opennet.ru/opennews/art.shtml?num=64653
Выпуск СУБД MySQL 9.6.0
Компания Oracle сформировала новую ветку СУБД MySQL 9.6.0. Сборки MySQL Community Server 9.6.0 подготовлены для всех основных дистрибутивов Linux, FreeBSD, macOS и Windows. В соответствии с внедрённой в 2023 году моделью формирования релизов, MySQL 9.6 отнесён к веткам "Innovation". Innovation-ветки рекомендованы для тех, кто хочет раньше получать доступ к новой функциональности, публикуются каждые 3 месяца и поддерживаются только до публикации следующего значительного релиза (например, после появления ветки 9.6 прекращена поддержка ветки 9.5). В дальнейшем планируют сформировать LTS-релиз 9.7, рекомендованный для внедрений, которым необходима предсказуемость и длительное сохранение неизменного поведения. Следом за LTS-выпуском будет сформирована новая Innovation-ветка - MySQL 10.0.
Список значимых изменений в MySQL 9.6 полностью повторяет отчёт об изменениях в MySQL 9.5. В нём также упоминается отмеченное ранее изменение поведения
параметра "innodb_log_writer_threads", изменение значения по умолчанию парамтера "binlog_transaction_dependency_history_size", объявление устаревшим метода аутентификации SCRAM-SHA-1 и прекращение поддержки переменных "group_replication_allow_local_lower_version_join" и "replica_parallel_type". Общий список исправлений отличается и содержит следующие заметные изменения:
- Переработана система аудита, в которой реализована модульная подсистема Audit Log, позволяющая отдельно устанавливать и управлять различными компонентами для ведения лога аудита, а также упрощающая настройку формата логов, размещения файлов аудита и параметров буферизации. Для изменения системной переменной audit_log_rotate_on_size system теперь требуются привилегии AUDIT_ADMIN.
- Задействована новая структура данных и новая встроенная библиотека функций для работы с наборами глобальных идентификаторов транзакций (GTID, Global Transaction ID), используемых при репликации. Новая реализация отличается более высокой производительностью и упрощением кода.
- В хранилище InnoDB повышена эффективность генерации уникальных идентификаторов rowid в таблицах без первичных ключей. Решена проблема с некорректным восстановлением состояния транзакций, которые на момент аварийного завершения имели статус "PREPARED".
- Добавлена новая опция "--container_aware", во время запуска включающая определение выставленных в контейнере ограничений на CPU и память.
- Расширены возможности по отладке репликации.
- SQL-функции MD5() и SHA1() выделены в отдельный компонент "classic_hashing", который можно отключить при желании блокирования использования небезопасных алгоритмов хэширования.
- Устранено 14 уязвимостей, из которых две могут быть эксплуатированы удалённо. Наиболее серьёзная проблема имеет критический уровень опасности (9.8) и присутствует в официальном Docker-образе c MySQL. Менее опасные уязвимости затрагивают OpenSSL, InnoDB, оптимизатор, DDL, парсер, Pluggable Auth и Thread Pooling.
Источник: https://www.opennet.ru/opennews/art.shtml?num=64652
Уязвимости в Java SE, MySQL, VirtualBox и других продуктах Oracle
Компания Oracle опубликовала плановый выпуск обновлений своих продуктов (Critical Patch Update), нацеленный на устранение критических проблем и уязвимостей. В январском обновлении устранено 337 уязвимостей.
Некоторые проблемы:
- 11 проблем с безопасностью в Java SE. Все уязвимости в Java SE могут быть эксплуатированы удалённо без проведения аутентификации и затрагивают окружения, допускающие выполнение не заслуживающего доверия кода. Наиболее опасные проблемы в Java SE имеют уровень опасности 7.5 и затрагивают JavaFX (WebKitGTK, libxslt), AWT и систему защиты. Уязвимости устранены в выпусках Java SE 25.0.2, 21.0.10, 17.0.18, 11.0.30, 8u481.
- 14 уязвимостей в сервере MySQL, из которых две могут быть эксплуатированы удалённо. Наиболее серьёзная проблема имеет критический уровень опасности (9.8) и присутствует в официальном Docker-образе c MySQL. Менее опасные уязвимости затрагивают OpenSSL, InnoDB, оптимизатор, DDL, парсер, Pluggable Auth и Thread Pooling.
Проблемы устранены в выпусках MySQL Community Server 9.6.0 и 8.0.45.
- 14 уязвимостей в VirtualBox, пять из которых помечены как опасные (8.2 из 10). Одна из уязвимостей может быть эксплуатирована удалённо. Детали о характере уязвимостей не раскрываются. Проблемы будут устранены в выпуске VirtualBox 7.2.6, который ожидается в течение дня.
- 4 уязвимости в Solaris, которые затрагивают драйверы, ядро и файловую систему (максимальный уровень опасности 5.8 из 10). Уязвимости устранены в обновлении Solaris 11.4 SRU89. В новой версии Solaris также обновлены версии пакетов
Wireshark 4.6.2,
Firefox 140.6.0esr,
Thunderbird 140.6.0esr,
Unbound 1.24.2,
Apache httpd 2.4.66,
OpenSSH 10.2,
Django 5.2.9 и
squid 7.3.
Источник: https://www.opennet.ru/opennews/art.shtml?num=64651
Выпуск браузера Pale Moon 34.0.0
Опубликован релиз web-браузера Pale Moon 34.0.0, ответвившегося от кодовой базы Firefox для обеспечения более высокой эффективности работы, сохранения классического интерфейса, минимизации потребления памяти и предоставления дополнительных возможностей по настройке. Сборки Pale Moon формируются для Windows и Linux (x86_64). Код проекта распространяется под лицензией MPLv2 (Mozilla Public License).
Проект придерживается классической организации интерфейса, без перехода к интегрированным в Firefox 29 и 57 интерфейсам Australis и Photon, и с предоставлением широких возможностей кастомизации. Из удалённых компонентов можно отметить DRM, Social API, WebRTC, PDF-просмотрщик, Сrash Reporter, код для сбора статистики, средства для родительского контроля и людей с ограниченными возможностями. По сравнению с Firefox, в браузер возвращена поддержка расширений, использующих XUL, и сохранена возможность применения как полноценных, так и легковесных тем оформления.
Основные изменения:
- Обновлена тема оформления, применяемая по умолчанию в Windows. Обеспечена интеграция оформления с Windows 11 и улучшена поддержка тёмных акцентных цветов.
- Реализован объект WeakRef для определения слабых ссылок (weak reference) на объекты JavaScript, позволяющие сохранить ссылку на объект, но не блокирующие удаление связанного объекта сборщиком мусора.
- Добавлен метод URL.canParse(), упрощающий разбор и проверку корректности URL.
- Добавлены CSS-свойства inset-block и inset-inline.
- Добавлена настройка "privacy.forgetaboutsite.clearPasswords" для очистки паролей при вызове функции очистки информации о сайте в менеджере полномочий.
- Генератор псевдослучайных чисел в JavaScript переведён на алгоритм Xoroshiro128+.
- Возвращена поддержка каскадных слоёв CSS (@layer) и CSS-функции color-mix.
- Решена проблема с сайтами, использующими CSS-свойство "overflow-x: clip" без выставления "overflow-y".
- Добавлена поддержка CSS-свойства "appearance".
- Обновлены версии NSS 3.90.9, ICU 78.1, Unicode 17 и expat 2.7.3.
- Добавлена поддержка сборки на оборудовании LoongArch64, Sparc64 и Mac PowerPC.
- Добавлена поддержка запуска во FreeBSD 15.
- Возвращена возможность выполнения NPAPI-плагинов внутри основного процесса.
- Повышена стабильность JavaScript-движка IonMonkey на ARM и Mac SoC.
- Linux-сборки с GTK теперь всегда собираются с gio, поддержка gconf удалена.
Источник: https://www.opennet.ru/opennews/art.shtml?num=64650
Уязвимость в telnetd, позволяющая подключиться с правами root без аутентификации
В сервере telnetd из набора GNU InetUtils выявлена уязвимость, позволяющая подключиться под любым пользователем, включая пользователя root, без проверки пароля. CVE-идентификатор пока не присвоен. Уязвимость проявляется начиная с версии InetUtils 1.9.3 (2015 год) и остаётся неисправленной в актуальном выпуске 2.7.0. Исправление доступно в форме патчей (1, 2).
Проблема вызвана тем, что для проверки пароля процесс telnetd вызывает утилиту "/usr/bin/login", передавая в качестве аргумента имя пользователя, указанного клиентом при подключении к серверу. Утилита "login" поддерживает опцию "-f", позволяющую осуществить вход без выполнения аутентификации (подразумевается, что эта опция используется, когда пользователь уже прошёл проверку). Таким образом, если добиться подстановки опции "-f" в имени пользователя, можно подключиться без проверки пароля.
При обычном подключении использовать имя пользователя вида "-f root" не получится, но в telnet имеется режим автоматического подключения, активируемый опцией "-a". В данном режиме имя пользователя берётся не из командной строки, а передаётся через переменную окружения USER. При вызове утилиты login значение данной переменной окружения подставлялось без дополнительной проверки и без экранирования спецсимволов. Таким образом, для подключения под пользователем root достаточно выставить в переменную окружения USER значение "-f root" и подключиться к telnet-серверу, указав опцию "-a":
$ USER='-f root' telnet -a имя_сервера
Приведшее к уязвимости изменение было добавлено в код telnetd в марте 2015 года и было связано с устранением проблемы, не позволявшей определить имя пользователя в режиме autologin без аутентификации в Kerberos. В качестве решения была добавлена поддержка передачи имени пользователя для режима autologin через переменную окружения, но проверку корректности имени пользователя из переменной окружения добавить забыли.
Источник: https://www.opennet.ru/opennews/art.shtml?num=64649
Выпуск Electron 40, платформы создания приложений на базе движка Chromium
Представлен релиз платформы Electron 40.0.0, предоставляющей самодостаточный фреймворк для разработки многоплатформенных пользовательских приложений, использующий в качестве основы компоненты Chromium, V8 и Node.js.
Среди изменений в новом выпуске:
- Обновлены версии браузерного движка Chromium 144, платформы Node.js 24.11.1 и JavaScript-движка V8 14.4 (в прошлой ветке использовались Chromium 142, Node.js 22.20.0 и V8 14.2).
- Добавлена поддержка признака завершения дочернего процесса "memory-eviction", применяемого при завершении процесса для предотвращения исчерпания свободной памяти в системе (OOM, out-of-memory).
- В режиме отрисовки в буфер (Offscreen Rendering) появилась поддержка вывода в формате RGBAF16 с цветовым пространством scRGB HDR .
- Добавлен метод app.isHardwareAccelerationEnabled() для проверки включения аппаратного ускорения.
- В API net.request добавлена опция bypassCustomProtocolHandlers для игнорирования вызова дополнительных обработчиков протокола.
- Добавлены методы для выборочного включения средств для людей с ограниченными возможностями.
- Добавлена возможность импорта внешних текстур в виде объекта VideoFrame, представляющего видеокадр.
- На платформе Linux появилась возможность использования свойства systemPreferences.getAccentColor для получения информации о системных
акцентных цветах, применяемых для выделения активных элементов, а также цвета границы активного окна.
- Добавлена поддержка предоставления доступа к API File System, ограниченного текущим сеансом.
- Добавлена поддержка динамической загрузки ESM-модулей в предварительно загружаемых скриптах (preload), для которых отключена изоляция контекста (contextIsolation = false).
- Объявлена устаревшей возможность доступа к API Сlipboard из процессов, выполняющих отрисовку.
Платформа Electron позволяет создавать любые графические приложения с использованием браузерных технологий, логика работы которых определяется на JavaScript, HTML и CSS, а функциональность может быть расширена через систему дополнений. Разработчикам доступны модули Node.js, а также расширенный API для формирования нативных диалогов, интеграции приложений, создания контекстных меню, интеграции с системой вывода уведомлений, манипуляции окнами, взаимодействия с подсистемами Chromium.
В отличие от web-приложений, программы на базе Electron поставляются в виде самодостаточных исполняемых файлов, не привязанных к браузеру. При этом разработчику не нужно заботиться о портировании приложения для различных платформ, Electron обеспечит возможность сборки для всех систем, поддерживаемых в Chromium. Electron также предоставляет средства для организации автоматической доставки и установки обновлений (обновления можно доставлять как с отдельного сервера, так и напрямую с GitHub).
Из программ, построенных на базе платформы Electron можно отметить редакторы Atom и Visual Studio Code, почтовый клиент Mailspring, инструментарий для работы с Git GitKraken, систему ведения блогов WordPress Desktop, BitTorrent-клиент WebTorrent Desktop, а также официальные клиенты к таким сервисам, как Signal, Slack, Basecamp, Twitch, Ghost, Wire, Wrike и Discord. Всего в каталоге программ Electron представлено 612 приложений. Для упрощения разработки новых приложений подготовлен набор типовых демонстрационных приложений, включающих примеры кода для решения различных задач.
Источник: https://www.opennet.ru/opennews/art.shtml?num=64648
Выпуск дистрибутива MX Linux 25.1
Опубликован релиз легковесного дистрибутива MX Linux 25.1, созданного в результате совместной работы сообществ, образовавшихся вокруг проектов antiX и MEPIS. Выпуск основан на пакетной базе Debian с улучшениями от проекта antiX и пакетами из собственного репозитория. В дистрибутиве на выбор можно использовать системы инициализации sysVinit и systemd. Поставляются собственные инструменты для настройки и развёртывания системы. Для загрузки доступны 64-разрядные сборки (x86_64) с рабочим столом Xfce (2.8 ГБ), а сборки с рабочим столом KDE (3.3 ГБ) и сборки (2.3 ГБ) с оконным менеджером Fluxbox.
В новом выпуске:
- Осуществлена синхронизация с пакетной базой Debian 13.3. Ядро Linux обновлено до версии 6.12.
- Обновлены сборки с расширенной поддержкой оборудования (AHS), которые поставляются с Xfce, ядром 6.18 c патчами от проекта liquorix и Мesa 25.3.3.
- Возобновлено формирование совмещённых iso-образов, в которых на выбор доступны системы инициализации systemd и sysVinit. В Live-сборках пользователь может выбрать желаемую систему инициализации в загрузочном меню.
Источник: https://www.opennet.ru/opennews/art.shtml?num=64647
Выпуск Cozystack 0.40, открытой PaaS-платформы на базе Kubernetes
Доступен выпуск свободной PaaS-платформы Cozystack 0.40, построенной на базе Kubernetes. Проект нацелен на предоставление готовой платформы для хостинг-провайдеров и фреймворка для построения частных и публичных облаков. Платформа устанавливается напрямую на серверы и охватывает все аспекты подготовки инфраструктуры для предоставления управляемых сервисов. Cozystack позволяет запускать и предоставлять кластеры Kubernetes, базы данных и виртуальные машины. Код платформы доступен на GitHub и распространяется под лицензией Apache-2.0.
В качестве базового стека технологий используется Talos Linux и Flux CD. Образы с системой, ядром и необходимыми модулями формируются заранее, и обновляются атомарно, что позволяет обойтись без таких компонентов как dkms и пакетный менеджер, и гарантировать стабильную работу. Предоставляется простой метод установки в пустом дата-центре с помощью PXE и debian-подобного установщика talos-bootstrap. В рамках платформы можно по клику разворачивать Kafka, FerretDB, PostgreSQL, Cilium, Grafana, Victoria Metrics и другие сервисы.
Платформа включает свободную реализацию сетевой инфраструктуры (fabric) на базе Kube-OVN, и использует Cilium для организации сервисной сети, MetalLB для анонса сервисов наружу. Хранилище реализовано на LINSTOR, где предлагается использование ZFS в качестве базового слоя для хранилища и DRBD для репликации. Имеется преднастроенный стек мониторинга на базе VictoriaMetrics и Grafana. Для запуска виртуальных машин используется технология KubeVirt, которая позволяет запускать классические виртуальные машины прямо в контейнерах Kubernetes и уже имеет все необходимые интеграции с Cluster API для запуска управляемых Kubernetes-кластеров внутри "железного" Kubernetes-кластера.
В новом выпуске:
- Добавлен планировщик LINSTOR для оптимального размещения pod-ов.
Собственный "scheduler extender" для Kubernetes работает совместно со стандартным планировщиком Kubernetes и помогает оптимально размещать pod-ы на узлах с хранилищем LINSTOR. Когда pod запрашивает том LINSTOR, планировщик узнает у контроллера LINSTOR, на каких узлах есть локальные реплики нужных томов. Приоритет отдаётся узлам, где данные уже присутствуют, что минимизирует сетевой трафик и повышает I/O-производительность. Дополнительно реализован admission-вебхук, который автоматически направляет pod-ы, использующие CSI-тома LINSTOR, на собственный планировщик, обеспечивая бесшовную интеграцию без ручной настройки.
- Хранилище SeaweedFS
SeaweedFS обновлено до версии 4.05, в которой проведена оптимизация S3-трафика (traffic locality): запросы теперь уходят на ближайшие серверы, что сокращает задержки и ускоряет работу хранилища. Также появился новый admin-компонент с веб-интерфейсом и поддержкой авторизации, и worker-ы для выполнения распределённых задач. В Grafana добавлены продвинутые дашборды, позволяющие следить за bucket-ами, вызовами API и производительностью. Добавлена поддержка TLS-сертификатов для компонентов admin и worker.
- Механизм valuesFrom из FluxCD заменил lookup-функции в Helm-чартах. Такое архитектурное улучшение обеспечивает более чистую передачу параметров и устраняет необходимость в контроллерах принудительной синхронизации (reconciliation). Конфигурация из ConfigMaps и ссылок на сервисы теперь централизованно управляется через ключ cozystack-values в каждом пространстве имён.
- В компонента для интеграции с LINSTOR реализована поддержка функции auto-diskful, переводящей бездисковые (diskless) узлы в дисковые (diskful), если те удерживают ресурсы DRBD в состоянии Primary более 30 минут.
- Внедрены системы автоматического управления версиями для PostgreSQL, Kubernetes, MariaDB и Redis, которые отслеживают обновления в апстрим-репозиториях и предоставляют механизмы автоматического обновления версий.
Источник: https://www.opennet.ru/opennews/art.shtml?num=64640
Проект по созданию открытого квантового компьютера
Некоммерческая организация Open Quantum Design (OQD), учреждённая исследователями из Института квантовых вычислений университета Ватерлоо (Канада), разрабатывает первый открытый квантовый компьютер. Рабочий прототип открытого квантового компьютера развивается как совместный проект, аккумулирующий ресурсы, знания и опыт групп исследователей из различных университетов, некоммерческих организаций и частных компаний, специализирующихся на разработках в области квантовых вычислений.
Отмечается, что совместная работа даёт возможность ускорить достижение результата, способствует разностороннему рассмотрению путей решения проблем и позволяет принять участие в работе даже небольшим командам, не обладающим ресурсами для самостоятельных исследований в области квантовых систем. Все компоненты проекта, включая эмулятор квантового компьютера и стек для разработки приложений, распространяются на GitHub под лицензией Apache. Проектом также создан сайт с документацией.
Аппаратная реализация квантового компьютера находится на стадии сборки и тестирования. Схемы и проектные файлы, необходимые для сборки аналогичной системы, будут открыты в соответствии с принципами Open Hardware под лицензией близкой к Apache 2.0. При разработке задействованы наработки существующих открытых проектов в области квантовой физики, таких как платформа для проведения экспериментов с квантовыми системами ARTIQ (Advanced Real-Time Infrastructure for Quantum physics) и аппаратные решения от сообщества Sinara.
Для работы над проектом сформировано шесть рабочих групп, занимающихся программным стеком (компилятор для квантового компьютера, трансляторы высокоуровневых алгоритмов, утилиты для оценки производительности и верификации корректности работы), методами коррекции ошибок и снижения влияния шумов в квантовых системах, разработкой моделей для симуляции, написанием обучающих материалов, разработкой AI-технологий для оптимизации и генерации квантовых алгоритмов, созданием интерфейса для удалённого проведения экспериментов с квантовым компьютером.
В аппаратной реализации развивается система квантовых вычислений на ионных ловушках (Ion Trap), в которой атомы выступают в роли кубитов.
В разрабатываемом квантовом компьютере ионы изолируются от внешней среды в вакууме при помощи электромагнитных полей и переводятся в квантовое состояние путём охлаждения до температур близких к абсолютному нулю. Состояние ионов меняется при помощи лазерных импульсов, а состояние кубита определяется по интенсивности свечения иона под воздействием лазерного луча. Развиваются прототипы на ионах
иттербия (171Yb+) и бария (138Ba+), в которых планируют реализовать 30-50 и 16 кубитов.
Источник: https://www.opennet.ru/opennews/art.shtml?num=64646
Плагин к KWin для использования KDE в виртуальной реальности
Для композитного менеджера KWin предложен экспериментальный плагин, превращающий KDE в среду рабочего стола для систем виртуальной реальности. Плагин позволяет формировать интерфейс не на физическом мониторе, а в форме виртуальных экранов в 3D-пространстве, работа с которым осуществляется через очки дополненной реальности или 3D-шлемы.
Поддерживается работа с плавающими окнами, совмещение физических и виртуальных экранов, произвольное позиционирование экранов в 3D-пространстве, управление при помощи клавиатуры без необходимости использования мыши или VR-контроллеров, режим отслеживания положения пользователя. Для отрисовки задействован модуль Qt Quick 3D Xr, завязанный на runtime OpenXR. В качестве runtime опробована платформа Monado в сочетании с очками дополненной реальности Rokid Max и HP G2, а также сервер WiVRn c 3D-шлемом Quest 3.
Для организации ввода реализовано устройство KwinVrInputDevice, позволяющее перемещать указатель по аналогии с мышью, но не ограничиваясь границами области вывода. Для размещения окон в 3D-пространстве задействованы штатные возможности KWin, немного изменённые для всплывающих окон и расширенные возможностью перемещать окна за пределы области вывода. Для работы требуется применение патчей к Qt и XWayland. Большинство патчей уже приняты в кодовую базу Qt и войдут в состав выпусков 6.10.2 и 6.11, не перенесёнными остаются только 4 патча.
Источник: https://www.opennet.ru/opennews/art.shtml?num=64644
В базовую систему NetBSD вернули компилятор языка Fortran
20 лет назад, когда был выпущен gcc4, компилятор g77 был заменён на gfortran. Однако из-за некоторых возникших с ним проблем он был исключён из базового образа NetBSD. Благодаря недавно внесённым изменениям в NetBSD-current, gfortran теперь снова поставляется в базовом образе операционной системы. В скором будущем планируют добавить соответствующие переменные в pkgsrc для компиляции программ с использованием этого системного компилятора, без необходимости установки пакета gcc12 из репозитория pkgsrc.
Источник: https://www.opennet.ru/opennews/art.shtml?num=64642