home tags events about login

opennet honked 28 Mar 2025 22:00 +0100

Выпуск дистрибутива для резервного копирования Rescuezilla 2.6

Доступен выпуск дистрибутива Rescuezilla 2.6, предназначенного для резервного копирования, восстановления систем после сбоев и диагностики различных аппаратных проблем. Дистрибутив построен на пакетной базе Ubuntu и продолжает развитие проекта "Redo Backup & Rescue", разработка которого была прекращена в 2012 году. Для загрузки предлагаются live-сборки для 32- и 64-разрядных систем x86 (1.3 ГБ) и deb-пакет для установки в Ubuntu.

Rescuezilla поддерживает резервное копирование и восстановление случайно удалённых файлов в разделах Linux, macOS и Windows. Выполняется автоматический поиск и подключение сетевых разделов, которые можно использовать для размещения резервных копий. Графический интерфейс основан на оболочке LXDE. Формат создаваемых резервных копий полностью совместим с дистрибутивом Clonezilla. При восстановлении поддерживается работа с образами Clonezilla, Redo Rescue, Foxclone и FSArchiver, а также с образами виртуальных машин в форматах VirtualBox VDI, VMWare VMDK, QEMU QCOW2, Hyper-V VHDx и .dd/.img.

В новой версии:

  • Обновлён пакет shim 1.58. Налажена загрузка на системах с включённым UEFI Secure Boot.
  • Сборки на базе Ubuntu 23.10 и Ubuntu 22.10 заменены сборкой на базе Ubuntu 24.10.
  • Обновлён инструментарий partclone 0.3.33.
  • Обновлён пакет для тестирования памяти memtest86+ 7.00.
  • Сборочное окружение переведено на использование Ubuntu 24.04.


Источник: https://www.opennet.ru/opennews/art.shtml?num=62971

opennet honked 28 Mar 2025 19:00 +0100

GitHub вводит лимит в сто тысяч репозиториев для одной организации

Компания GitHub объявила о введении ограничения в 100 тысяч репозиториев для одной учётной записи пользователя или организации. Ограничение вступит в силу 28 апреля. После преодоления рубежа в 50 тысяч репозиториев владельцу начнёт выводиться баннер с предупреждением, а на email администратора будет направлено уведомление. Изменение призвано недопустить замедления работы учётных записей с очень большим числом репозиториев, а также исключить их негативное влияние на инфраструктуру. При необходимости поддержания очень большого числа репозиториев рекомендовано разносить их на несколько организаций.

Источник: https://www.opennet.ru/opennews/art.shtml?num=62969

opennet honked 28 Mar 2025 15:00 +0100

Выявлена возможность обхода ограничений доступа к "user namespace" в Ubuntu

Исследователи безопасности из компании Qualys выявили три способа обхода применяемых в Ubuntu ограничений доступа к пространству имён идентификаторов пользователя (user namespace). Начиная с выпуска 23.10 в Ubuntu применяется дополнительный слой изоляции, не позволяющий обычным непривилегированным пользователям создавать "user namespace". Сам по себе доступ к "user namespace" не является уязвимостью и многие дистрибутивы предоставляют его из коробки, так как он требуется в системах контейнерной изоляции и используется для sendbox-ограничений (например применяется для sandbox-изоляции браузеров).

Пространства имён (namespace) в ядре Linux позволяют привязать к разным процессам разные представления ресурсов, например, процесс может быть помещён в окружение со своими точками монтирования, IPC, PID и сетевым стеком, которые не пересекаются с окружением других процессов. При помощи "user namespace" непривилегированный процесс в контексте изолированного контейнера может обращаться к подсистемам ядра, в обычных условиях требующих повышенных привилегий, но оставаться при этом непривилегированным вне контейнера.

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

В Ubuntu в качестве дополнительного уровня защиты была реализована гибридная схема, выборочно оставляющая некоторым программам возможность создавать "user namespace" при наличии профиля AppArmor с правилом "allow userns create" или прав CAP_SYS_ADMIN. Подобная защита позволяла уменьшить риск эксплуатации уязвимостей в подсистемах ядра (сократить поверхность атаки), но при этом сохранить возможность полноценной sendbox-изоляции в избранных приложениях.

Создание "user namespace" с привилегированным доступом внутри контейнера представляет угрозу только если в системе не установлены все доступные обновления и в ядре присутствует известная неисправленная уязвимость. Выявлено три способа обхода механизма ограничения доступа к "user namespace", позволяющих непривилегированному локальному пользователю создать "user namespace" c привилегиями администратора внутри, достаточными для выполнения эксплоитов, требующих прав CAP_SYS_ADMIN или CAP_NET_ADMIN:

  • Атакующий может использовать утилиту aa-exec, входящую в базовую поставку, для применения к себе имеющихся в системе профилей AppArmor, среди прочего и тех, что разрешают доступ к "user namespace". Например, можно применить к своему процессу профили от chrome, flatpak и trinity.
       $ aa-exec -p trinity -- unshare -U -r -m /bin/sh
    
  • Атакующий может запустить командную оболочку из пакета busybox, поставляемого по умолчанию и снабжённого профилем AppArmor, допускающим создание "user namespace".
       $ busybox sh
       ~$ /usr/bin/unshare -U -r -m /bin/sh
    
  • Атакущий может использовать переменную окружения LD_PRELOAD для загрузки своей библиотеки в контексте любой программы, имеющей AppArmor-профиль для доступа к "user namespace". Например, подобные права имеет файловый менеджер nautilus в Ubuntu Desktop.
       LD_PRELOAD=./shell.so /usr/bin/nautilus
    

Для блокирования найденных лазеек разработчики Ubuntu рекомендуют отключить возможность изменения профилей AppArmor утилитой aa-exec, выставив настройку "sysctl kernel.apparmor_restrict_unprivileged_unconfined=1". Также рекомендовано деактивировать профили AppArmor у приложений, имеющих доступ к "user namespace". В поставке по умолчанию подобные профили присутствуют у busybox и nautilus, а для проверки наличия отдельно установленных программ с подобными правами можно использовать команду "sudo aa-status --filter.mode=unconfined". Для отключения AppArmor-профилей busybox и nautilus (если не требуется использование утилит busybox с "user namespace" и можно обойтись без генерации миниатюр в nautilus) следует использовать команды:

   sudo ln -s /etc/apparmor.d/busybox /etc/apparmor.d/disable
   sudo apparmor_parser -R /etc/apparmor.d/busybox
   sudo ln -s /etc/apparmor.d/nautilus /etc/apparmor.d/disable
   sudo apparmor_parser -R /etc/apparmor.d/nautilus

Дополнительно можно отметить раскрытие сведений об уязвимости (CVE-2025-0927) в драйвере HFS+, позволяющей получить root-привилегии в системе. Проблема вызвана переполнением буфера, возникающем при обработке специально сформированных образов ФС. Для эксплуатации уязвимости требуется доступ к созданию "user namespace" или монтированию дисковых образов (например, пользователям Ubuntu с активным локальным сеансом polkit предоставляет право создания loop-устройств и монтирования блочных устройств, применяемые для автоподключения USB Flash). Проблема проявляется только в ядрах Linux до версии 6.12. Опубликован рабочий эксплоит, использование которого продемонстрировано в Ubuntu 22.04 с ядром 6.5.0-18-generic.

Источник: https://www.opennet.ru/opennews/art.shtml?num=62970

opennet honked 28 Mar 2025 12:00 +0100

Проект Organic Maps перенёс разработку с GitHub на Forgejo

Проект Organic Maps, развивающий мобильное приложение для автономной навигации с картографическими данными из OpenStreetMap, объявил о переносе разработки с GitHub на платформу Forgejo, развёрнутую на собственном сервере. Перенос выполнен после того, как администрация GitHub принудительно перевела GitHub-репозиторий в архивный режим из-за санкций в отношении одного из разработчиков. Добиться снятия блокировки удалось только вчера, т.е. спустя две недели с момента инцидента.

Проект Organic Maps является форком приложения MAPS.ME, созданным его изначальными авторами после продажи MAPS.ME компанией mail.ru компании Daegu Limited, которая перевела проект на проприетарную модель разработки. Код проекта Organic Maps распространяется под лицензией Apache 2.0. В ходе миграции на новую платформу перенесены: репозиторий с 54 тысячами коммитов, 9.5 тысяч сообщений (issues), 100 тысяч комментариев и 4.3 тысячи pull-запросов.

Платформа Forgejo является форком проекта Gitea, который в свою очередь ответвился от платформы Gogs. Ключевыми особенностями Forgejo является низкое потребление ресурсов (может использоваться в дешёвых VPS) и простой процесс установки. Предоставляются типовые возможности работы с проектами, такие как управление задачами, отслеживание проблем (issues), pull-запросы, wiki, средства для координации групп разработчиков, подготовка релизов, автоматизация размещения пакетов в репозиториях, управление правами доступа, сопряжение с платформами непрерывной интеграции, поиск кода, аутентификация через LDAP и OAuth, доступ к репозиторию по протоколам SSH и HTTP/HTTPS, подключение web-хуков для интеграции со Slack, Discord и другими сервисами, поддержка Git-хуков и Git LFS, инструменты для миграции и зеркалирования репозиториев.

Источник: https://www.opennet.ru/opennews/art.shtml?num=62967

opennet honked 28 Mar 2025 10:00 +0100

Бета-выпуск Ubuntu 25.04

Представлен бета-выпуск дистрибутива Ubuntu 25.04 "Plucky Puffin", после формирования которого произведена полная заморозка пакетной базы, и разработчики перешли к итоговому тестированию и исправлению ошибок. Релиз запланирован на 17 апреля и отнесён к промежуточным выпускам, обновления для которых формируются в течение 9 месяцев. Готовые тестовые образы созданы для Ubuntu, Ubuntu Server, Lubuntu, Kubuntu, Ubuntu Mate, Ubuntu Budgie, Ubuntu Studio, Xubuntu, UbuntuKylin (редакция для Китая), Ubuntu Unity, Edubuntu и Ubuntu Cinnamon.

Основные изменения:

  • Рабочий стол обновлён до выпуска GNOME 48, в котором реализована поддержка HDR, тройной буферизации, стековой компоновки уведомлений, глобальных сочетаний клавиш. Расширен конфигуратор. Добавлены оптимизации потребления памяти и производительности.
  • В Ubuntu Desktop вместо Evince для просмотра PDF задействована программа Papers (форк Evince, переведённый на GTK4 и частично переписанный на языке Rust).
  • По умолчанию задействована обвязка xdg-terminal-exec, упрощающая замену эмулятора терминала, вызываемого комбинацией клавиш Ctrl+Alt+T.
  • После сворачивания проекта Mozilla Location Service cервисы определения местоположения переведены на базу BeaconDB с информацией о размещении известных точек беспроводного доступа.
  • Отключено по умолчанию звуковое сопровождение запуска системы.
  • В инсталлятор в Ubuntu Desktop добавлен режим для замены существующих установок Ubuntu. При установке в режиме двойной загрузки, если в системе уже используются другие операционные системы, разрешена установка на шифрованные разделы и предоставлены расширенные настройки для дисковых разделов. Добавлена возможность установки Ubuntu на одном накопителе с Windows-системами, использующими шифрованные разделы на базе BitLocker.
  • Вместо публикации отдельных сборок, специфичных для каждого ARM64-устройства, дистрибутив перешёл к предоставлению одного общего ISO-образа Ubuntu Desktop для устройств на базе архитектуры ARM64. Образ можно использовать для установки на рабочих станциях с процессорами Ampere, ноутбуках с чипами Snapdragon и в виртуальных машинах на Mac-системах Apple Silicon.
  • Улучшены возможности для использования устройств на базе архитектуры ARM64 в качестве рабочих станций с графическим окружением. Добавлена поддержка новых устройств, например, на базе Qualcomm Snapdragon X Elite 13. Добавлены пакеты ubuntu-x1e-settings и qcom-firmware-extract.
  • В дополнение к initramfs-tools добавлена опциональная поддержка инструментария Dracut для формирования образов начального RAM-диска (initrd). В Ubuntu осеннем выпуске 25.10 инструментарий Dracut намерены задействовать по умолчанию. Из проблем с initramfs-tools, которые будут решены после перехода на Dracut, упомянуты: невозможность использования systemd в initrd, отсутствие поддержки NVMe over Fabric (NVM-oF), сложность сопровождения из-за раздельной работы с initrd и корневой ФС, стагнация разработки initramfs-tools и обилие кода на shell в initrd.
  • В репозиторий добавлен инструментарий crypto-config, предназначенный для работы с общим для всей системы профилем настроек, связанных с криптографией. В настоящее время доступны профили default, legacy и future.
  • Обновлены системные пакеты: ядро Linux 6.14, glibc 2.41, systemd 257.4, binutils 2.44, OpenSSL 3.4.1, GnuTLS 3.8.9, BlueZ 5.79, NetworkManager 1.52, Pipewire 1.2.7, Poppler 25.03, xdg-desktop-portal 1.20.
  • Обновлены средства для разработчиков: GCC 14.2, LLVM 20, Python 3.13.2, Go 1.24, Rust 1.84, .NET 9.0, PHP 8.4, Ruby 3.3, OpenJDK 24, PostgreSQL 17, Valkey (форк Redis) 8.0.2, MySQL 8.4.4, Qt 6.8.3.
  • Обновлены пользовательские приложения: GIMP 3.0, LibreOffice 25.2, Firefox 136, Thunderbird 128.
  • Обновлены серверные пакеты: Nginx 1.26.3, Apache httpd 2.4.63, OpenSSH 9.9, cloud-init 24.3.1, runc 1.2.5, Docker 27.5.1, Containerd 2.0.2, HAProxy 3.0.7, libvirt 10.10.0, ClamAV 1.4.2, OpenLDAP 2.6, QEMU 9.2.0, Squid 6.13, SSSD 2.10.1, Samba 4.21.
  • В Chrony для синхронизации времени по умолчанию задействованы серверы точного времени от проекта Ubuntu, использующие протокол NTS.
  • Командная оболочка Fish обновлена до ветки 4.0, переписанной на Rust.
  • На ноутбуках с GPU NVIDIA по умолчанию включён сервис nvidia-powerd, обеспечивающий поддержку механизма Dynamic Boost, позволяющего балансировать энергопотребление между CPU и GPU для повышения производительности.
  • Прекращено создание файла /run/utmp с данными о пользователях, в данный момент работающих в системе. Формат utmp, в котором задействовано 32-разрядное значение time_t, признан устаревшим из-за подверженности проблеме 2038 года. В следующем выпуске будет прекращена поддержка cgroup v1 и сервисов, запускаемых через скрипты в стиле System V init.
  • Инструментарий для настройки параметров сети обновлён до выпуска Netplan 1.1.2, в котором появилась возможность использования метода аутентификации "wpa-psk-sha256" в беспроводных сетях и добавлена поддержка параметра "routing-policy" в NetworkManager.
  • В сборки для плат Raspberry Pi добавлен стек для работы с камерами, основанный на libcamera 0.4 и libpisp. Для начальной настройки системы задействован пакет gnome-initial-setup, выполняемый при первом запуске. Утилиты libraspberry-bin заменены на raspi-utils. Обеспечена возможность загрузки по сети при помощи nbd-client.
  • Продолжена работа над атомарно обновляемым вариантом Ubuntu Core Desktop, использующим технологии Ubuntu Core и включающим только приложения, оформленные с использованием пакетов в формате Snap.
  • В Xubuntu задействован выпуск среды рабочего стола Xfce 4.20.
  • В Ubuntu Cinnamon предложена версия рабочего стола Cinnamon 6.4.8. Проведена чистка пакетов, в которых нет необходимости, позволившая немного сократить размер сборки. Улучшена тема оформления Yaru-Cinnamon. Добавлены тёмный и светлый варианты применяемых по умолчанию обоев рабочего стола.
  • В Ubntu Mate продолжает поставляться рабочий стол MATE 1.28.2.
  • В Lubuntu включён выпуск среды рабочего стола LXQt 2.1.0. Осуществлён переход с ветки Qt 6 на Qt 8. Значительно ускорена работа исталлятора, основанного на фреймворке Calamares.
  • В Ubuntu Studio по умолчанию использован рабочий стол KDE Plasma 6.3 и тёмный набор пиктограмм на панели. Обновлены версии программ, например, доступны Darktable 5.0.0, Ardour 8.12.0, Qtractor 1.5.3, Audacity 3.7.3, digiKam 8.5.0, Kdenlive 24.12.3, Krita 5.2.9 и GIMP 3.0.0.
  • В Kubuntu задействованы выпуски KDE Plasma 6.3, Qt 6.8, KDE Frameworks 6.12.0, KDE Gear 24.12.3. По умолчанию предложен сеанс на базе Wayland, а поддержка X11 реализована в форме опции.


Источник: https://www.opennet.ru/opennews/art.shtml?num=62966

opennet honked 27 Mar 2025 21:00 +0100

Утечка пользовательской базы списка рассылки автора сервиса HaveIBeenPwned

Трой Хант (Troy Hunt), известный деятель в области компьютерной безопасности, автор курсов по защите информации, создатель сервиса проверки скомпрометированных паролей "Have I Been Pwned?" и региональный директор Microsoft, раскрыл сведения об утечке базы пользователей собственного списка рассылки. История показательна тем, что даже признанные специалисты в области компьютерной безопасности могут стать жертвами типового фишинга при определённом стечении обстоятельств.

Трою пришло письмо от имени сервиса Mailchimp c предупреждением о приостановке работы его списка рассылки и необходимости выполнения определённых проверок. Трой перешёл по ссылке в письме, ввёл на открывшейся странице параметры учётной записи в Mailchimp, подтвердил запрос двухфакторной аутентификации и страница зависла...., а атакующие получить доступ к пользовательской базе его списка рассылки и выгрузили сведения об email и IP-адресах 16627 подписчиков. Примечательно, что в выгрузку вошли 7535 адресов пользователей, ранее отписавшихся от рассылки, но сервис Mailchimp сохранил их несмотря на отписку и включил в экспортируемые данные.

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

Вторым фактором стало то, что письмо вначале было просмотрено на iPhone с почтовым клиентом Outlook, который показал только имя отправителя и не отобразил email. Затем, когда письмо было повторно открыто утром на компьютере, Трой не стал перепроверять параметры и не обратил внимание на то, что письмо отправлено с подозрительного адреса "hr@group-f.be".

Текст был стилизован под стандартное сообщение Mailchimp и предупреждал об ограничении отправки рассылки из-за получения жалобы на спам. Информация была подана ровно в той мере, чтобы вызвать беспокойство, но не переусердствовать. В письме предлагалось проверить недавно отправленные рассылки и предпринять действия для разблокировки. По ссылке вместо mailchimp.com открылся сайт mailchimp-sso.com. Менеджер паролей 1Password автоматически не заполнил форму входа, но и это было проигнорировано. После зависания формы аутентификации Трой очнулся и перезашёл на реальный сайт Mailchimp, но было уже поздно - атакующие использовали захваченные учётные данные для получения токена для доступа к API и выполнили экспорт информации.

Источник: https://www.opennet.ru/opennews/art.shtml?num=62964

opennet honked 27 Mar 2025 20:00 +0100

Компания LG опубликовала платформу webOS Open Source Edition 2.28

Представлен выпуск открытой платформы webOS Open Source Edition 2.28, которая может применяться на различных портативных устройствах, платах и автомобильных информационно-развлекательных системах. Эталонные готовые сборки сформированы для платы Raspberry Pi 4 и системы виртуализации VirtualBox. Платформа развивается в публичном репозитории под лицензией Apache 2.0, а разработку курирует сообщество, придерживаясь совместной модели управления разработкой. В новой версии осуществлён переход на платформу Yocto 5.0, обновлены браузерные компоненты Enact и задействована ветка библиотеки Qt 6.8.

Платформа webOS была изначально разработана компанией Palm в 2008 году и использовалась на смартфонах Palm Pre и Pixie. В 2010 году после поглощения компании Palm платформа перешла в руки Hewlett-Packard, после чего HP пыталась использовать данную платформу в своих принтерах, планшетах, ноутбуках и ПК. В 2012 году компания HP анонсировала перевод webOS в независимый открытый проект и в 2013 году начала открытие исходных текстов его компонентов. В 2013 году платформа была выкуплена у Hewlett-Packard компанией LG и теперь применяется на более чем 70 миллионах телевизоров и потребительских устройств LG. В 2018 году был основан проект webOS Open Source Edition, через который компания LG попыталась вернуться к открытой модели разработки, привлечь других участников и расширить спектр поддерживаемых в webOS устройств.

Системное окружение webOS формируется с использованием инструментария и базовых пакетов OpenEmbedded, а также сборочной системы и набора метаданных от проекта Yocto. Ключевыми компонентами webOS являются менеджер системы и приложений (SAM, System and Application Manager), отвечающий за выполнение приложений и сервисов, и Luna Surface Manager (LSM), формирующий интерфейс пользователя. Компоненты написаны с использованием фреймворка Qt и браузерного движка Chromium.

Отрисовка осуществляется через композитный менеджер, применяющий протокол Wayland. Для разработки пользовательских приложений предлагается использовать web-технологии (CSS, HTML5 и JavaScript) и фреймворк Enact, основанный на React, но возможно и создание программ на С и C++ с интерфейсом на базе Qt. Пользовательская оболочка и встроенные графические приложения в основном реализованы как нативные программы, написанные с использованием технологии QML. По умолчанию предлагается оболочка Home Launcher, оптимизированная для управления с сенсорных экранов и предлагающая концепцию сменяющих друг друга карт (вместо окон).

Для хранения данных в структурированном виде с использованием формата JSON применяется хранилище DB8, использующее в качестве бэкенда БД LevelDB. Для инициализации используется bootd на основе systemd. Для обработки мультимедийного контента предлагаются подсистемы uMediaServer и Media Display Controller (MDC), в качестве звукового сервера применяется PulseAudio. Для автоматического обновления прошивки применяется OSTree и атомарная замена разделов (создаются два системных раздела, один из которых является активным, а второй используется для копирования обновления).

Источник: https://www.opennet.ru/opennews/art.shtml?num=62965

opennet honked 27 Mar 2025 19:00 +0100

Выпуск дистрибутива Q4OS 5.8, поставляемого с пользовательским окружением Trinity

Опубликован выпуск дистрибутива Q4OS 5.8, основанного на пакетной базе Debian и поставляемого с рабочими столами KDE Plasma 5 и Trinity (продолжает развитие кодовой базы KDE 3.5.x). Оба пользовательских окружения могут одновременно сосуществовать в одной системе, и пользователь может переключаться между ними. Дистрибутив позиционируется как нетребовательный к аппаратным ресурсам и предлагающий классическое оформление рабочего стола. Размер загрузочного образа 1.5 ГБ (x86_64).

В состав входит несколько приложений собственной разработки, включая 'Desktop Profiler' для быстрой установки тематических наборов ПО, 'Setup utility' для установки сторонних приложений, 'Software center' для установки дополнительных программ, 'Welcome Screen' для упрощения начальной настройки, Lookswitcher для быстрого переключения внешнего вида, скрипты для установки альтернативных окружений LXQt, Xfce и LXDE. Предоставляется приложение для установки дистрибутива в отдельный каталог Windows, что позволяет использовать дистрибутив параллельно с Windows без выделения для него отдельного дискового раздела.

В новом выпуске пакетная база обновлена до Debian 12.10 с ядром Linux 6.1.0-32. Установщик наборов приложений Desktop Profiler переписан для работы в многопоточном режиме и получил поддержку пакетов в формате Flatpak.

Отдельно энтузиастами развиваются сборки Q4OS с интерфейсом в стиле Windows XP и Windows 10.



Источник: https://www.opennet.ru/opennews/art.shtml?num=62963

opennet honked 27 Mar 2025 13:00 +0100

В Live-образах Debian 12 реализована поддержка повторяемых сборок

Разработчики проекта Debian объявили о реализации повторяемых сборок для всех официальных Live-образов Debian 12.10, а также для сборок всех значительных сред рабочего стола из репозиториев Debian 11, 12 и 13 (testing). Подготовлена инструкция, при помощи которой на основе доступных в репозитории исходных текстов пользователи могут сформировать свои Live-образы, на 100% идентичные на бинарном уровне с предоставляемыми проектом готовыми Live-образами.

Во всём репозитории Debian 12, насчитывающем 33223 исходных пакетов, поддержка повторяемых сборок достигла 96.9% для архитектуры x86_64 и 96.5% для архитектуры ARM64. В репозиториях Debian Testing уровень повторяемых сборок оценён в 96.5% для архитектуры ARM64 и 96.3% для x86_64 при пересборке 37322 исходных пакетов. Тест повторяемых сборок в репозитории Debian Testing провален для 819 пакетов (2.2%), а у 428 пакетов (1.1%) возникли общие проблемы при компиляции из исходного кода. Для сравнения в Arch Linux возможность повторяемой сборки реализована для 86.3% пакетов из репозиторев core и extra, насчитывающих 12800 пакетов. В репозитории openSUSE Factory, насчитывающем 15754 пакета, уровень повторяемых сборок составляет 98.24%.

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

При формировании повторяемых сборок учитываются такие нюансы, как точное соответствие зависимостей; использование неизменного состава и версий сборочного инструментария; идентичный набор опций и настроек по умолчанию; сохранение порядка сборки файлов (применение тех же методов сортировки); отключение добавления компилятором непостоянной служебной информации, такой как случайные значения, ссылки на файловые пути и данные о дате и времени сборки. На воспроизводимость сборок также влияют ошибки и состояния гонки в инструментарии.

Источник: https://www.opennet.ru/opennews/art.shtml?num=62961

opennet honked 27 Mar 2025 12:00 +0100

В ядро Linux добавлена поддержка работы в качестве хост-системы для Hyper-V

В состав кодовой базы ядра Linux, на основе которой формируется выпуск 6.15, принято изменение, добавляющее возможность использования Linux в качестве корневого окружения (Dom0. root partition) для гипервизора Hyper-V (Microsoft Hypervisor). Хост-окружение отвечает за управление гипервизором, организацию запуска гостевых систем, выделение ресурсов и обеспечение взаимодействия виртуальных машин с оборудованием. Управления гипервизором в Linux осуществляется через устройство /dev/mshv. Кроме того, в том же наборе патчей для виртуальных машин, использующих Hyper-V, добавлена возможность отключения на лету отдельных процессорных ядер (CPU offlining).

Изначально возможность использования Linux в роли хост-окружения для системы виртуализации Hyper-V была представлена в 2020 году. Linux для управления Hyper-V уже применяется в дистрибутиве Azure Linux и инфраструктуре Microsoft, но для сторонних проектов подобная возможность была доступна только в форме отдельных патчей. Теперь данные патчи включены в основной состав ядра. Драйверы Hyper-V для гостевых систем были добавлены в ядро Linux в 2009 году и поставляются начиная с выпуска 2.6.32.

Необходимость использования Linux для управления гипервизором Hyper-V обусловлена желанием упростить сопровождение и повысить производительность серверов, обслуживающих облачные системы Microsoft, в условиях того, что с 2018 года число гостевых систем с Linux в облачном сервисе Azure превышает число окружений с Windows.

Отдельно компания Microsoft опубликовала обновление открытого проекта Hyperlight, развивающего гипервизор для встраивания в приложения. Гипервизор оформлен в виде разделяемой библиотеки, обеспечивающей выполнение отдельных функций в легковесных виртуальных машинах (micro-VM) и организующей обмен данными с этими функциями. Hyperlight может потребоваться, например, при необходимости изоляции части кода, не заслуживающего доверия или требующего особой защиты.

Из изменений отмечается реализация надстройки hyperlight-wasm, позволяющей запускать в отдельных виртуальных машинах Wasm-модули и компоненты, скомпилированные в промежуточный код WebAssembly. Предполагается, что использование виртуальной машины обеспечит более надёжную изоляцию при необходимости запуска стороннего WebAssembly-кода. Hyperlight-Wasm может использоваться в Windows (WHP - Windows Hypervisor Platform) и в Linux (KVM или Hyper-V через /dev/mshv).

Для выполнения WebAssembly-кода применяется специальный урезанный образ гостевой системы, применяющий runtime Wasmtime для запуска WebAssembly-компонентов, скомпилированных из кода на различных языках программирования. В виртуальной машине используется единый линейный фрагмент памяти. Работа осуществляется без виртуальных устройств, без операционной системы и без разделения на процессы. Запуск виртуальной машины производится с минимальными задержками и накладными расходами - создание легковесной виртуальной машины hyperlight занимает всего 1-2 миллисекунды, что в 100 раз меньше, чем при запуске обычной виртуальной машины.

Дополнительно можно отметить принятие в ветку ядра Linux 6.15 патча с поддержкой блочных устройств, у которых размер блока превышает страницу памяти. Например, Linux теперь сможет работать с устройствами с размером сектора 64Кб на системах со страницами памяти, размером 4Кб.

Источник: https://www.opennet.ru/opennews/art.shtml?num=62959

opennet honked 27 Mar 2025 10:00 +0100

Обновление почтового сервера Exim 4.98.2 с устранением уязвимости

Опубликован корректирующий выпуск почтового сервера Exim 4.98.2, в котором устранена уязвимость (CVE-2025-30232), потенциально позволяющая поднять свои привилегии. Возможна ли удалённая эксплуатация уязвимости не уточняется.

Проблема проявляется начиная с выпуска Exim 4.96. Из крупных дистрибутивов уязвимые версии использовались в Debian 12, Ubuntu 24.04/24.10, openSUSE 15.6, Arch Linux, Fedora и FreeBSD. RHEL и производные дистрибутивы проблеме не подвержены, так как Exim не входит в их штатный репозиторий пакетов (в EPEL обновление к пакету exim пока не опубликовано).

Уязвимость присутствует в коде с отладочными вызовами и вызвана обращением к памяти после её освобождения (use-after-free) в pretrigger-обработчике. Проблема возникала из-за освобождения памяти под буфер вывода отладочной информации (debug_pretrigger_buf) без выставления в указатель значения NULL, которое используется для проверки наличия буфера перед обращениями к нему.

Источник: https://www.opennet.ru/opennews/art.shtml?num=62960

opennet honked 26 Mar 2025 23:00 +0100

Выпуск Zorin OS 17.3, дистрибутива для пользователей, привыкших к Windows или macOS

После 6 месяцев разработки опубликован релиз Linux-дистрибутива Zorin OS 17.3, основанного на пакетной базе Ubuntu 22.04. Целевой аудиторией дистрибутива являются начинающие пользователи, привыкшие работать в Windows. Для управления оформлением дистрибутив предлагает специальный конфигуратор, позволяющий придать рабочему столу вид, свойственный различным версиям Windows и macOS, а в состав включена подборка программ, близких к программам, к которым привыкли пользователи Windows. Размер загрузочного iso-образа составляет 3.4 ГБ.

В качестве основы рабочего стола в Zorin OS используется GNOME с набором собственных дополнений и панелью на основе Dash to Panel и Dash to Dock. Для интеграции рабочего стола со смартфоном поставляется приложение Zorin Connect (на базе KDE Connect). Кроме пакетов в формате deb и репозиториев Ubuntu по умолчанию включена поддержка форматов Flatpak, AppImage и Snap с возможностью установки программ из каталогов Flathub и Snap Store.

В новой версии:

  • Расширена встроенная база данных для определения установщиков популярных Windows-приложений, охватывающая более 150 программ. Улучшен вывод информации о наличии альтернатив. Например, при попытке запуска инсталлятора Windows-версии Obsidian будет показан диалог о наличии в репозитории сборки для Linux, а при попытке установки Adobe Acrobat Reader будет предложено использовать Document Viewer.
  • В качестве web-браузера по умолчанию вместо Firefox задействован Brave. В качестве причины замены упоминается недовольство изменением политики Mozilla. Brave выбран из-за наличия встроенной блокировки рекламы и трекеров, защиты от пассивной идентификации, встроенной возможности работы через Tor, автоматической блокировки сторонних Cookie и баннеров с запросами подтверждений, связанных с Cookie.
  • Расширены возможности интеграции рабочего стола со смартфоном при помощи приложения Zorin Connect (ответвление от KDE Connect). Изменено оформление интерфейса мобильного приложения, устанавливаемого на смартфон. Добавлена функция "Удалённый ввод" для управления клавиатурой и мышью со смартфона. Добавлены такие возможности, как передача ссылок и обложек музыкальных альбомов, фильтрация уведомлений, размещение отличающихся ярлыков для разных компьютеров.
  • Улучшена поддержка устройств с сенсорными экранами. Повышено удобство работы панелью задач с сенсорного экрана. Добавлена поддержка вызова экранной клавиатуры через нажатие кнопки на панели, помимо автоматического показа при переходе в формы ввода текста.
  • Обновлены версии предустановленных приложений и пакетов. В состав включена новая ветка драйверов NVIDIA 570.


Источник: https://www.opennet.ru/opennews/art.shtml?num=62956

opennet honked 26 Mar 2025 22:00 +0100

Новая версия музыкального проигрывателя DeaDBeeF 1.10.0

После почти трёх лет со времени публикации прошлой значительной ветки представлен релиз музыкального плеера DeaDBeeF 1.10.0. Плеер написан на языке Си и может работать с минимальным набором зависимостей. Код распространяется под лицензией Zlib. Интерфейс построен с использованием библиотеки GTK, поддерживает вкладки и может расширяться через виджеты и плагины.

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

Основные изменения:

  • Возможность отката (undo/redo) операций редактирования списка воспроизведения.
  • Команды для перехода к предыдущему, следующему и случайному альбому, работающие с учётом режима перемешивания (shuffle).
  • Поддержка кадров TORY в метаданных ID3v2.3.
  • Поддержка мультимедийного пакета FFmpeg 7.
  • Отдельный файл конфигурации для хранения конфиденциальных данных, таких как пароль к Lastfm.
  • Возможность использования относительных файловых путей при загрузке списков воспроизведения DBPL.
  • Поддержка формата сжатия звука EAC3 в плагине ffmpeg.
  • Опция для отключения автоматического показа окна с логом после ошибок.


Источник: https://www.opennet.ru/opennews/art.shtml?num=62955

opennet honked 26 Mar 2025 21:00 +0100

Google переходит к разработке Android за закрытыми дверями с открытием кода после релизов

Компания Google начиная со следующей недели переходит на новую модель разработки платформы Android, в соответствии с которой релизы будут развиваться за закрытыми дверями, без публикации в открытом доступе промежуточных результатов разработки и без публичного рецензирования изменений в отдельных компонентах. Платформа продолжит быть открытой и распространяться под лицензией Apache 2.0, но исходный код в репозитории AOSP (Android Open Source Project) будет размещаться только после готовности релизов.

В настоящее время какие-то части платформы, такие как Blutooth-стек, развиваются публично, а какие-то вначале создаются во внутреннем репозитории Google и становятся доступны только при публикации кода очередного релиза. Публикация кода с новыми API зависит от их пригодности для тестирования - для некоторых версий Android код реализаций API публиковался до релиза, а для некоторых - после. Кроме Google доступ к внутренней ветке имеют производители устройств, подписавшие лицензионное соглашение GMS (Google Mobile Services).

Компания Google решила отказаться от практикуемой до сих пор смешанной модели и в будущем перенесёт разработку всех компонентов Android в свою внутреннюю ветку. Вместо двух веток - открытой и внутренней, при разработке будет использоваться только внутренняя ветка, код из которой станет открываться в привязке к релизам.

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

Предполагается, что изменение не повлияет на разработчиков производных продуктов и прошивок, основанных на AOSP, так как подобные сборки, как правило, формируются на основе определённых тегов или веток в репозитории, а не используют находящуюся в разработке нестабильную ветку "main". Затруднения могут возникнуть у разработчиков, заинтересованных в отслеживании изменений - вместо анализа непрерывного потока изменений придётся изучать целиком все изменения в релизе. Усложнится и участие сторонних разработчиков, желающих вносить свой вклад в проект, так как состояние кодовой базы в AOSP будет сильно отставать от ветки, находящейся в разработке.

Целью изменения называется желание упростить процесс разработки Android. Наличие двух веток, при том, что часть компонентов развивается в одной ветке, а часть в другой, приводит к тому, что по мере разработки релиза в ветках накапливаются различия и Google приходится тратить ресурсы на синхронизацию изменений и слияние патчей между открытой и внутренней ветками. Основная работа по развитию API ведётся во внутренней ветке и открытая ветка часто сильно отстаёт от неё, что приводит к возникновению конфликтов при переносе во внутреннюю ветку изменений из компонентов, развиваемых в открытой ветке.

Источник: https://www.opennet.ru/opennews/art.shtml?num=62954

opennet honked 26 Mar 2025 16:00 +0100

Для KDE разрабатывают новый менеджер входа для замены SDDM

Дэвид Эдмундсон (David Edmundson) и Оливер Бирд (Oliver Beard) представили в списке рассылки разработчиков KDE проект по созданию нового дисплейного менеджера - Plasma Login Manager. Желание заменить менеджер входа объясняется наличием не решаемых архитектурных проблем в дисплейном менеджере SDDM (Simple Desktop Display Manager), который начиная с Plasma 5 пришёл на смену KDM.

В качестве золотого стандарта, на который стоит ориентироваться при создании нового менеджера входа, отмечен GDM (GNOME Display Manager). GDM базируется на технологиях GNOME Shell и Mutter, и сильно завязан на них, что позволило добиться уровня интеграции с GNOME, недостижимого при использовании SDDM. В Plasma Login Manager пытаются воплотить похожую на GDM архитектуру, позволяющую более тесно интегрировать менеджер входа со средой рабочего стола KDE Plasma и композитным сервером Кwin.

Проблемы возникли из-за того, что SDDM изначально развивался как универсальный менеджер входа, написанный на Qt и подходящий для всех графических окружений. SDDM рассчитан на вывод одного окна с экраном входа, но разработчикам KDE требуется более тесная интеграция, чем просто окно, показывающее сеансы и пользователей. В SDDM также применяется собственная реализация функций управления энергопотреблением со своей системой настройки. Без усложнений SDDM не получается интегрировать с имеющимися в KDE Plasma средствами управления громкостью, яркостью, энергопотреблением и сетевыми соединениями. В SDDM также имеется проблема с дублированием функциональности, которая уже имеется в KDE, что значительно усложняет сопровождение.

В итоге был подготовлен прототип нового многопроцессного менеджера входа Plasma Login Manager, использующий бэкенд на основе урезанной версии SDDM и механизм запуска, идентичный тому, что применяется для запуска сеанса рабочего стола KDE Plasma. Оформление экрана входа приближено к существующему блокировщику экрана KDE, а настройки унифицированы с KDE Plasma. Разработчики отказались от использования QML для кастомизации тем оформления в пользу поддержки существующих плагинов обоев рабочего стола, цветовых схем и тем оформления Plasma.

Для тестирования доступен рабочий прототип Plasma Login Manager, который пока не доведён до уровня качества, пригодного для использования в стабильной ветке KDE Plasma. Бэкенд на основе кода SDDM и новый фронтэнд, а также модуль для конфигуратора (KCM) пока развиваются в отдельных репозиториях, которые в будущем планируют объединить. По возможностям Plasma Login Manager почти достиг паритета со старым менеджером входа.

Среди отсутствующих в SDDM возможностей, которые намерены реализовать в Plasma Login Manager:

  • Качественная работа в конфигурациях с несколькими мониторами, экранами с высокой плотностью пикселей и HDR.
  • Переключение раскладки клавиатуры.
  • Возможность использования виртуальной клавиатуры.
  • Поддержка ввода на китайском, японском, корейском и вьетнамском языках.
  • Управление подсветкой экрана и клавиатуры.
  • Полноценное управление энергопотреблением.
  • Поддержка экранных ридеров.
  • Возможность сопряжения с Bluetooth-устройствами.
  • Возможность подключения к известным точкам доступа Wi-Fi.
  • Поддержка удалённой работы через VNC/RDP.


Источник: https://www.opennet.ru/opennews/art.shtml?num=62953

opennet honked 26 Mar 2025 14:00 +0100

Компания Cloudflare опубликовала opkssh для аутентификации в SSH через OpenID Connect

Компания Cloudflare представила инструментарий opkssh (OpenPubkey SSH), позволяющий интегрировать в OpenSSH средства централизованной аутентификации с возможностью входа через провайдеров OpenID Connect. При помощи opkssh можно избавиться от ручной работы по управлению и настройке SSH-ключей, а также организовать подключение к серверу с любых хостов, без необходимости создания закрытых ключей на каждом клиентском компьютере и без ручного копирования открытых ключей на сервер. Для подключения достаточно выполнить на сервере привязку к учётной записи у провайдера OpenID. Код инструментария написан на языке Go и распространяется под лицензией Apache 2.0.

Opkssh совместим с OpenID-провайдерами Google, Microsoft/Azure и Gitlab, что позволяет настроить вход через имеющиеся учётные записи в сервисах gmail.com, microsoft.com и gitlab.com. При использовании opkssh вместо не ограниченных по времени ключей SSH генерируются временные ключи, действующие считанные часы и формируемые на основе подтверждения от провайдера OpenID. Утечка подобных ключей после окончания срока действия не представляет угрозы безопасности. По умолчанию время действия ключа составляет 24 часа, после которых необходимо повторно идентифицировать себя через OpenID.

Интеграция с OpenSSH основана на возможности создания расширений протокола SSH, допускающих прикрепление произвольных данных к сертификатам SSH. После прохождения аутентификации через OpenID клиент формирует открытый ключ, содержащий PK-токен, подтверждающий принадлежность ключа заявленному пользователю. Токен интегрируется в протокол SSH через поле с дополнительными данными SSH-сертификата. Создание PK-токенов и их проверка на стороне сервера осуществляется с использованием криптографического протокола OpenPubKey.

OpenPubKey позволяет сгенерировать открытый ключ и привязать его к токену, выданному OpenID-провайдером. Через цифровую подпись провайдер подтверждает, что этот ключ создан заявленным аутентифицированным пользователем. Например, OpenID-провайдер Google может подтвердить, что пользователь аутентифицирован как test@gmail.com. На стороне севера выполняется проверка подписан ли прикреплённый токен провайдером OpenID и соответствует ли цифровая подпись заявленному открытому ключу, т.е. сервер может удостовериться, что именно пользователь test@gmail.com создал открытый ключ для подключившегося SSH-клиента.

Интеграция с OpenSSH организована через указание программы opkssh в файле конфигурации "sshd_config" через директиву "AuthorizedKeysCommand" (например: "AuthorizedKeysCommand /usr/local/bin/opkssh verify %u %k %t"). Настройка связывания учётных записей с OpenID осуществляется на стороне сервера SSH. На стороне клиента SSH изменения настроек не требуется, но перед входом необходимо запустить команду "opkssh login" и в появившемся окне браузера выбрать провайдера OpenID и выполнить через него аутентификацию.

Утилита opkssh сгенерирует ключи SSH и получит PK-токен, подтверждающий, что пользователь прошёл аутентификацию и позволяющий проверить, что созданные ключи принадлежат заявленному пользователю. Открытый ключ SSH, к которому через поле с дополнительными данными прикреплён PK-токен, будет записан в файл ~/.ssh/id_ecdsas и начнёт передаваться при подключении к серверу утилитой ssh.

Подключение к серверу производится с использованием штатной для SSH схемы "ssh логин@сервер", при этом на сервере логин предварительно должен быть отождествлён с учётной записью в OpenID, которую использует пользователь. Таким образом работа сводится к тому, что ssh-клиент отправляет на ssh-сервер публичный ключ, а сервер запускает команду "opkssh verify" для проверки ключа.

Для привязки учётной записи к OpenID администратор сервера выполняет команду "opkssh add". Например, для того чтобы разрешить вход на сервер под пользователем "root" с OpenID-аутентификацией через учётную запись test@gmail.com в Gmail следует выполнить "sudo opkssh add root test@gmail.com google", после чего клиент сможет подключаться под параметрами данной учётной записи командой "ssh root@хост_сервера".

Привязку учётной записи также можно выполнить вручную через файл конфигурации /etc/opk/auth_id (или ~/.opk/auth_id), в который для вышеприведённого примера будет записана строка "root test@gmail.com https://accounts.google.com". Дополнительно через файл /etc/opk/providers можно определить список допустимых OpenID-провайдеров, их параметры и список разрешённых идентификаторов клиентов.



Источник: https://www.opennet.ru/opennews/art.shtml?num=62952

opennet honked 26 Mar 2025 10:00 +0100

Выпуск системы проектирования печатных плат LibrePCB 1.3.0

Представлен выпуск свободного пакета для автоматизации проектирования печатных плат LibrePCB 1.3.0. LibrePCB позиционируется как интуитивно понятный пакет для быстрой разработки плат, который отстаёт по функциональности от KiCad, но гораздо проще в работе и при этом учитывает потребности не только начинающих, но и профессиональных инженеров. Программа поставляется в сборках для Linux (Flatpak, Snap, AppImage), FreeBSD, macOS и Windows. Код проекта написан на языке C++ (интерфейс на Qt) и распространяется под лицензией GPLv3.

Из особенностей отмечается интеграция в одном пакете редактора схем и средств управления проектом; простой кросс-платформенный графический интерфейс на базе Qt; применение концепции "умной" библиотеки элементов; использование доступных для ручного разбора форматов библиотеки элементов и проектов; режим Multi-PCB для параллельной разработки разных вариантов плат на базе одной схемы; автоматическая синхронизация списка электрических соединений (netlist) между схемой и раскладкой платы. Программа оснащена многоязычным интерфейсом с поддержкой русского (охват перевода 96%) и украинского языков (охват перевода 91%), предоставляющим возможность наименований элементов на разных языках.

LibrePCB включает в себя интерфейс для управления проектом; редактор электронных схем; редактор многослойных печатных плат; сервис для генерации данных для начала производства; утилиту командной строки librepcb-cli для автоматизации типовых работ (например, проверки и экспорта данных); библиотеку электронных компонентов с навигацией по древовидному категоризованному списку. Имеется интерфейс для подключения различных существующих библиотек элементов, которые могут добавляться как в форме архивов, так и через интеграцию с репозиториями. Поддерживается импорт файлов DXF и экспорт в форматах PDF, SVG и CSV BOM, pick&place X3/CSV, Gerber/Excellon и STEP.

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

  • Добавлена возможность генерации интерактивного списка компонентов (BOM - Bill of Materials) и сборочного плана, включающего описание, достаточное для пошагового ручного изготовления печатной платы. Список сохраняется в формате HTML и использует обработчики, стили и JavaScript-библиотеки, развиваемые для KiCad-плагина InteractiveHtmlBom. В отличие от статичных PDF-инструкций интерактивный формат позволяет выполнять такие операции, как сортировка, фильтрация и поиск компонентов.
  • Обеспечена совместимость с обновлённым форматом библиотек компонентов, предложенным во KiCad 9.
  • Добавлена поддержка использования для разработки LibrePCB языка Rust. Упомянутый выше генератор BOM написан на Rust. Предполагается, что поддержка Rust позволит ускорит разработку и положительно повлияет на стабильность продукта. В планах отмечено постепенное смещение от использования языка С++ в пользу Rust и намерение полностью переработать интерфейс пользователя, используя написанный на Rust фреймворк Slint вместо библиотеки Qt.
  • Вместо библиотеки QuaZip для чтения и записи ZIP-архивов задействован crate-пакет zip, написанный на Rust.
  • Код на C++ переведён на использование стандарта C++20 (tl::optional в коде заменён на std::optional).
  • Прекращена поддержка Qt5.



Источник: https://www.opennet.ru/opennews/art.shtml?num=62951

opennet honked 26 Mar 2025 09:00 +0100

Опубликован AerynOS 2025.03, первый выпуск после переименования Serpent OS

Представлен выпуск дистрибутива AerynOS 2025.03, который стал первым обновлением после переименования проекта Serpent OS. Дистрибутив использует собственный пакетный менеджер и атомарную модель обновления системы. Разработка ведётся старой командой разработчиков дистрибутива Solus, в число которых входят Айки Доэрти (Ikey Doherty) - создатель Solus и Джошуа Стробл (Joshua Strobl) - ключевой разработчик среды рабочего стола Budgie. Сборки сформированы для архитектуры x86_64-v2 и поставляются с рабочим столом GNOME. Среди задействованных новых версий пакетов отмечены ядро Linux 6.13.8, GNOME 48.0, Mesa 25.0.2, Firefox 136.0.2, Vulkan SDK 1.4.309.0 и LLVM 19.1.7.

Дистрибутив использует пакетный менеджер moss с собственным форматом пакетов Stone и инструментами для управления состоянием системы. Для экономии дискового пространства при хранении нескольких версий пакетов применяется дедупликация на основе жёстких ссылок. Обновление производится в атомарном режиме с заменой содержимого раздела /usr. В случае сбоя во время установки обновления система откатывается на прошлое рабочее состояние.

Большая часть пакетов, включая ядро Linux, собрана при помощи компилятора Clang. За исключением ядра и некоторых системных компонентов изменения применяются на лету, без необходимости перезагрузки. Проектом также развиваются инсталлятор Lichen, система сборки boulder, панель управления summit, менеджер загрузки blsforme и система контейнеров moss-container.



Источник: https://www.opennet.ru/opennews/art.shtml?num=62950

opennet honked 26 Mar 2025 08:00 +0100

Выпуск CRIU 4.1, системы для сохранения и восстановления состояния процессов в Linux

После шести месяцев разработки опубликован выпуск инструментария CRIU 4.1 (Checkpoint and Restore In Userspace), предназначенного для сохранения и восстановления процессов в пространстве пользователя. Инструментарий позволяет сохранить состояние одного или группы процессов, а затем возобновить работу с сохранённой позиции, в том числе после перезагрузки системы или на другом сервере без разрыва уже установленных сетевых соединений. Код проекта написан на языке Си и распространяется под лицензией GPLv2. CRIU применяется в таких системах управления контейнерами, как OpenVZ, LXC/LXD и Docker. Необходимые для работы CRIU изменения включены в основной состав ядра Linux.

Из областей применения технологии CRIU отмечается обеспечение перезагрузки ОС без нарушения непрерывности выполнения длительно выполняемых процессов, Live-миграция изолированных контейнеров, ускорение запуска медленных процессов (можно начать работу с состояния, сохранённого после инициализации), проведение обновлений ядра без перезапуска сервисов, периодическое сохранение состояния длительно выполняемых вычислительных задач для возобновления работы в случае аварийного завершения, балансировка нагрузки на узлы в кластерах, дублирование процессов на другую машину (fork на удалённую систему), создание снапшотов пользовательских приложений в процессе работы для их анализа на другой системе или на случай если потребуется отменить дальнейшие действия в программе.

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

  • Добавлена поддержка архитектуры RISC-V.
  • Добавлена поддержка механизма PIDFD, позволяющие использовать идентификаторы процессов, привязанные к конкретным процессам и не меняющиеся (обычный PID может быть привязан к другому процессу после завершения текущего процесса, ассоциированного с этим PID).
  • Для платформы ARM64 реализована поддержка расширений для аутентификации указателей (PAC Pointer Authentication Code), обеспечивающих проверку адресов возврата при помощи цифровых подписей, которые хранятся в неиспользуемых верхних битах самого указателя.
  • Расширены возможности по сохранению и восстановлению состояния приложений, использующих технологию NVIDIA CUDA.
  • Предоставлена возможность выбора бэкенда блокировки сети на этапе сборки, без необходимости правки кода. Бэкенд может быть изменён через передачи утилите make параметра NETWORK_LOCK_DEFAULT, который может принимать значения "NETWORK_LOCK_IPTABLES", "NETWORK_LOCK_NFTABLES" и "NETWORK_LOCK_SKIP".
  • Включена поддержка генерации coredump-файлов для архитектур Aarch64 и ARM.


Источник: https://www.opennet.ru/opennews/art.shtml?num=62949

opennet honked 25 Mar 2025 22:00 +0100

Релиз видеоплеера MPV 0.40

После шести месяцев разработки сформирован выпуск открытого видеоплеера MPV 0.40, в 2013 году ответвившегося от кодовой базы проекта MPlayer2. В MPV основное внимание уделяется разработке новых возможностей, не заботясь о сохранении совместимости с MPlayer. Код MPV распространяется под лицензией LGPLv2.1+, некоторые части остаются под GPLv2, но процесс перехода на LGPL почти завершён и для отключения оставшегося GPL-кода можно использовать опцию "--enable-lgpl".

Среди изменений в новой версии:

  • На платформе Linux при использовании DRM (Direct Rendering Manager) или dmabuf-wayland реализована поддержка расширенного динамического диапазона (HDR).
  • В консоли улучшен визуальный стиль и работа автодополнения ввода.
  • Во встроенный графический интерфейс OSC (On Screen Controller) добавлено новое меню выбора элементов, показываемое при клике правой кнопкой мыши.
  • Для скриптов добавлено свойство clipboard, позволяющее получить доступ к буферу обмена.
  • Добавлено новое меню для быстрого доступа к типовым действиям.
  • В скрипт select.lua добавлена поддержка навигации по истории просмотра, редакциям и материалам, записанным на DVD/Blu-Ray.
  • Улучшен стриминг Blu-ray, DVD и CDDA.
  • Улучшен выбор треков и отображение метаданных.
  • Добавлены профили osd-box, sub-box и box для упрощения включения стилизованных вариантов экранного интерфейса (OSD/OSC).
  • В скрипт umpv, применяемый для задействования при воспроизведении уже запущенного экземпляра mpv, добавлена поддержка платформы Windows.


Источник: https://www.opennet.ru/opennews/art.shtml?num=62948

opennet honked 25 Mar 2025 13:00 +0100

Уязвимости в ingress-nginx, позволяющие выполнить код и захватить управление кластерами Kubernetes

В развиваемом проектом Kubernetes ingress-контроллере ingress-nginx выявлены четыре уязвимости, позволяющие добиться выполнения своего кода на серверах облачных систем, использующих платформу Kubernete, и получить полный привилегированный доступ к кластеру Kubernete. Проблемам присвоен критический уровень опасности (9.8 из 10). Выявившие проблемы исследователи присвоили уязвимостям кодовое имя IngressNightmare и отметили, что уязвимости затрагивают около 43% облачных окружений. Уязвимости устранены в версиях ingress-nginx 1.11.5 и 1.12.1.

Ingress-контроллер выступает в роли шлюза и используется в Kubernetes для организации доступа из внешней сети к сервисам внутри кластера. Контроллер ingress-nginx является наиболее популярным и применяет сервер NGINX для проброса обращений к кластеру, маршрутизации внешних запросов и балансировки нагрузки. Проект Kubernetes предоставляет базовые ingress-контроллеры для AWS, GCE и nginx, последний из которых никак не связан с контроллером kubernetes-ingress, сопровождением которого занимается компания F5/NGINX (рассматриваемые уязвимости не затрагивают проекты, развиваемые разработчиками NGINX, упоминание nginx в названии ingress-nginx связано лишь с задействованием nginx в качестве прокси).

Уязвимости позволяют неаутентифицированному атакующему добиться выполнения своего кода в контексте контроллера ingress-nginx, при возможности отправки запроса к web-обработчику Admission. В ходе сканирования сети выявлено более 6500 уязвимых кластеров Kubernetes, использующих общедоступные уязвимые контроллеры с открытым для внешних запросов обработчиком Admission.

В конфигурации по умолчанию запущенный атакующим код может получить доступ к настройкам объекта Ingress, в которых, среди прочего, хранятся и учётные данные для обращения к серверам Kubernetes, что позволяет добиться привилегированного доступа ко всему кластеру. В качестве обходного пути защиты рекомендуется отключить в ingress-nginx функцию "Validating Admission Controller".

Контроллер Admission запускается в отдельном pod-окружении и выполняет операцию проверки входящих ingress-объектов перед их развёртыванием. По умолчанию web-обработчик Admission принимает запросы без аутентификации из публичной сети. При выполнении проверки контроллер Admission создаёт конфигурацию для http-сервера nginx на основе содержимого полученного ingress-объекта и проверяет её корректность.

Выявленные уязвимости позволяют добиться подстановки своих настроек в nginx через отправку специально оформленного ingress-объекта напрямую в контроллер Admission. Исследователи обнаружили, что некоторые свойства проверочных запросов, выставленные в поле ".request.object.annotations", напрямую подставляются в конфигурацию nginx. При этом сгенерированная конфигурация не применяется, а лишь тестируется путём запуска исполняемого файла "nginx" c опцией "-t".

В частности, подстановка внешних данных в конфигурацию выполняется для параметров "mirror-target", "mirror-host" (CVE-2025-1098), "auth-tls-match-cn" (CVE-2025-1097) и "auth-url" (CVE-2025-24514). Например, в строке конфигурации "set $target {{ $externalAuth.URL }};" вместо "{{ $externalAuth.URL }}" подставляется URL, указанный в параметре "auth-url". При этом корректность URL не проверяется. Соответственно, атакующий может передать в качестве URL значение вида "http://example.com/#;\nнастройки" и подставить свои настройки в файл конфигурации.

Для выполнения произвольного кода в процессе проверки конфигурации командой "nginx -t" исследователи воспользовались тем, что помимо проверки синтаксиса nginx загружает библиотеки с модулями и открывает файлы, упомянутые в конфигурации, для оценки их доступности. Среди прочего, при обработке директивы ssl_engine производится загрузка указанной в директиве разделяемой библиотеки для SSL-движка.

Для загрузки своей библиотеки на сервер Kubernetes исследователи воспользовались (CVE-2025-1974) тем, что при обработке больших запросов nginx сохраняет тело запроса во временном файле, который сразу удаляется, но в файловой системе "/proc" для этого файла остаётся открытый файловый дескриптор. Таким образом, можно одновременно отправить запросы для сохранения временного файла и инициирования проверки конфигурации, в которой в директиве "ssl_engine" указан путь к дескриптору в файловой системе "/proc".

Для того, чтобы файловый дескриптор длительное время оставался доступен значение "Content-Length" в запросе можно указать заведомо большим, чем фактически переданные данные (сервер будет ждать приёма оставшихся данных). Дополнительной сложностью является необходимость угадать PID процесса и номер файлового дескриптора, связанного с загруженной разделяемой библиотекой, но так как в контейнере обычно используется минимальное число запущенных процессов, нужные значения угадываются путём перебора в несколько попыток. В случае успеха и загрузки подставленной разделяемой библиотеки, атакующий может получить доступ к хранимым внутри pod-окружения параметрам, достаточным для управления всем кластером.

<iframe src="https://player.vimeo.com/video/1068882440?h=99b4db6dd8">

Для проверки использования уязвимого ingress-nginx можно выполнить команду:

   kubectl get pods --all-namespaces --selector app.kubernetes.io/name=ingress-nginx


Источник: https://www.opennet.ru/opennews/art.shtml?num=62946

opennet honked 25 Mar 2025 09:00 +0100

Разработчики GRUB2 рассматривают возможность использования языка Rust

Владимир Сербиненко, один из трёх мэйнтейнеров загрузчика GRUB2, внёсший в кодовую базу более пяти тысяч изменений, выставил на обсуждение возможность написания модулей для GRUB2 c использованием языка Rust. Владимир представил первые результаты экспериментов с добавлением поддержки Rust в GRUB2 и созданием необходимых обвязок. Для GRUB также подготовлены изменения, позволяющие использовать разделяемые библиотеки (".so", ET_DYN) для модулей, вместо связывания на уровне объектных файлов (".o", ET_REL).

Инициатива пока позиционируется как отдельный эксперимент, который не будет влиять на разработку GRUB2. В качестве оптимального применения Rust в GRUB упоминается написание модулей для новых файловых систем. Также не исключается переписывание на Rust кода для работы с дисковыми разделами и GPT.

Предполагается, что использование Rust поможет проекту уменьшить вероятность появление некоторых видов ошибок, особенно в коде модулей, содержащем множество больших с сложных процедур парсинга. В феврале в результате аудита кодовой базы GRUB были выявлены 72 проблемы с безопасностью, 21 из которых признаны опасными уязвимостями, пригодными для обхода механизма верифицированной загрузки UEFI Secure Boot. 20 из 21 уязвимостей вызваны ошибками при работе с памятью, приводившими к переполнению буфера или обращению к памяти после её освобождения.

Дополнительно можно отметить выпуск проекта GNU Boot 0.1 RC6, в состав которого вошли вышеотмеченные исправления уязвимостей (в самом GRUB2 исправления продолжают распространяться в виде патчей без формирования отдельного релиза). Проект GNU Boot развивает замену проприетарным прошивкам UEFI и BIOS, основанную на CoreBoot, но применяющую более жёсткие требования к включению бинарных компонентов. GNU Boot преподносится как "coreboot-libre", т.е. как редакция CoreBoot, избавленная от блобов и несвободных компонентов, по аналогии с тем, как проект Linux-libre развивает очищенный вариант ядра Linux. Отдельно развиваются похожие проекты Libreboot и Canoeboot.

Источник: https://www.opennet.ru/opennews/art.shtml?num=62945

opennet honked 25 Mar 2025 08:00 +0100

Корректирующее обновление графического редактора GIMP 3.0.2

Представлен выпуск графического редактора GIMP 3.0.2, в котором по горячим следам устранены некоторые проблемы, выявленные после публикации на прошлой неделе первого релиза ветки GIMP 3.0. Среди прочего устранены конфликты с некоторыми системными темами оформления, приводящие к некорректному отображению интерфейса. Разработчики также откатили патч с улучшенной поддержкой графических планшетов, так как при его использовании всплыли проблемы с учётом давления при нажатии на некоторых старых устройствах. Готовые сборки опубликованы для Linux (AppImage и Flatpak для архитектур x86 и ARM64), macOS и Windows.

В настоящее время внимание разработчиков сосредоточено на устранении ошибок в ветке GIMP 3.0. Тем не менее уже запущен процесс разработки следующего значительного релиза GIMP 3.2, в котором ожидается поддержка новых возможностей для недеструктивной работы со слоями - связующих слоёв (Link layer) и векторных слёв (Vector layer). Также в ветке GIMP 3.2 будет продолжена работа над расширением поддержки цветовой модели CMYK и управления цветом.

Источник: https://www.opennet.ru/opennews/art.shtml?num=62944

opennet honked 25 Mar 2025 07:00 +0100

Доступен полностью свободный вариант ядра Linux-libre 6.14

Латиноамериканский Фонд свободного ПО опубликовал полностью свободный вариант ядра Linux 6.14 - Linux-libre 6.14-gnu, очищенный от элементов прошивок и драйверов, содержащих несвободные компоненты или участки кода, область применения которых ограничена производителем. В Linux-libre также отключены функции ядра для загрузки внешних несвободных компонентов, не входящих в поставку ядра, а из документации удалены упоминания об использовании несвободных компонентов.

Для очистки ядра от несвободных частей проектом Linux-libre создан универсальный shell-скрипт, который содержит тысячи шаблонов для определения наличия бинарных вставок и исключения ложных срабатываний. Также доступны для загрузки готовые патчи, созданные на основе использования вышеупомянутого скрипта. Ядро Linux-libre рекомендовано для использования в дистрибутивах, соответствующих критериям Фонда СПО по построению полностью свободных дистрибутивов GNU/Linux. Например, Linux-libre используется в таких дистрибутивах, как GNU Guix System, Dragora Linux, Trisquel, Dyne:Bolic, gNewSense, Parabola, Musix и Kongoni.

В выпуске Linux-libre 6.14-gnu предложен код для чистки блобов в новых драйверах hx9023s, amdxdna и tas2781 spi. Произведена чистка имён блобов в dts-файлах (devicetree) для архитектуры Aarch64. Обновлён код удаления блобов в драйверах Intel avs, amdgpu, r8169, mt7996 и iwlwifi. Прекращена чистка драйвера wl128x, который был удалён из состава ядра.

Источник: https://www.opennet.ru/opennews/art.shtml?num=62943

opennet honked 25 Mar 2025 07:00 +0100

WindowsDefender блокирует свободный драйвер WinRing0, используемый в официальном OEM-ПО

Начиная с 11 марта встроенный в ОС Windows антивирусный пакет WindowsDefender начал блокировать (помещать в карантин) свободный драйвер WinRing0. Драйвер используется для получения доступа из пространства пользователя к различному оборудованию, для которого не предусмотрено другого API в системе.

Драйвер WinRing0 востребован в проектах, управляющих настройками оборудования, как свободных (OpenRGB, Libre Hardware Monitor, FanControl), так и проприетарных (SignalRGB, Razer Synapse 3). Среди программ, использующих драйвер, есть официальное ПО от десятков производителей оборудования, в том числе популярных. Стоит отметить, что драйвер был подписан самостоятельно автором (разработчиком CrystalDiskMark) и принят Microsoft.

Отмеченная Microsoft проблема, из-за которой произведена блокировка, связана с тем, что доступ к установленному в системе драйверу может получить любая программа, и посредством драйвера программа может манипулировать любым устройством в системе или повысить свои привилегии (CVE-2020-14979).

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

На данный момент для WinRing0 выпущено исправление, ограничивающее использование драйвера только программами, запущенными с правами администратора, однако, из-за изменений политики Microsoft в отношении драйверов, получить для новой сборки подпись является затруднительным.

Китайская компания HYTE, разрабатывающая ПО для мониторинга оборудования HYTE Nexus, в котором также используется этот драйвер, вызвалась взять бюрократическую процедуру на себя, и анонсировала, что опубликует подписанную сборку для свободного использования. Тем не менее, даже если Microsoft примет обновлённый драйвер, множество программ для управления настройками оборудования и мониторинга потребуется запускать с правами администратора или адаптировать для работы с изменённым драйвером.

У драйвера WinRing0 существует единственный аналог под названием inpout32, который на данный момент не блокируется WindowsDefender и антивирусами, однако он блокируется популярными античитами (наиболее известен этим Vanguard от RIOT, используемый в таких играх как Valorant).

Источник: https://www.opennet.ru/opennews/art.shtml?num=62942

opennet honked 24 Mar 2025 20:00 +0100

Выпуск композитного сервера Hyprland 0.48

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

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

В новой версии:

  • Добавлена полная поддержка управления цветом, реализованная на базе Wayland-протокола color-management.
  • Улучшена реализация панели для работы со сгруппированными окнами (groupbar). Обеспечено скругление углов и предоставлены настройки для отступов, размеров, шрифтов и других параметров внешнего вида.
  • Предложен новый диалог, выводимый когда приложение зависло.
  • Решены многие проблемы, связанные с синхронизацией буферов и подвисаниями при отрисовки на системах c GPU NVIDIA.
  • Добавлен новый стиль анимации окон "gnomed", напоминающий анимацию в GNOME.
  • Добавлен новый переключатель правил для закреплённых окон.
  • Добавлена возможность цикличного переключения между окнами в порядке истории обращения к окнам.
  • Добавлена поддержка Wayland-протокола ext-idle-notify для отслеживания неактивности пользователя.
  • Улучшена поддержка запуска X11-приложений с использованием Xwayland.


Источник: https://www.opennet.ru/opennews/art.shtml?num=62941

opennet honked 24 Mar 2025 17:00 +0100

Релиз ядра Linux 6.14

После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 6.14. Среди наиболее заметных изменений: драйвер ntsync c примитивами синхронизации Windows NT, настройка балансировки операций чтения в Btrfs RAID1, поддержка reflink в XFS в режиме realtime, возможность некэшируемого буферизированного ввода/вывода, dmem cgroup для ограничения памяти GPU, задействование io_uring в FUSE, делегирование атрибутов в NFS, поддержка атомарной записи в Device mapper, ускорение символических ссылок, управление возможностью выполнения скриптов, поддержка чипов Qualcomm Snapdragon 8 Elite, драйвер для NPU AMD.

Основные новшества в ядре 6.14:

  • Дисковая подсистема, ввод/вывод и файловые системы
    • В файловой системе Btrfs появилась поддержка новых методов балансировки операций чтения между накопителями, входящими в массив RAID1. Помимо ранее действующего распределения нагрузки на основе идентификаторов процессов (pid), в новой версии предложены три новых режима балансировки: "rotation" (равномерное распределение нагрузки по всем накопителям, режим включён по умолчанию); "latency" (распределение с учётом задержек, может быть полезным при сбоях или нестабильной работе накопителей); devid (ручное управление). Для изменения режима балансировки добавлен интерфейс "/sys/fs/btrfs/‹UUID›/read_policy". Среди других изменений в Btrfs - реализация ioctl FS_IOC_READ_VERITY_METADATA.
    • Добавлен режим некэшируемого буферизированного ввода/вывода, при котором данные удаляются из страничного кэша сразу после того, как завершены операции по их чтению или записи. Изменение может быть полезным при использовании очень быстрых устройств хранения, кэширование операций с которыми в оперативной памяти избыточно. Для таких устройств новый режим позволяет исключить излишнее расходование памяти страничным кэшем не прибегая к использованию усложнённого API прямого ввода/вывода (Direct I/O).
    • В fsnotify, механизм отслеживания изменений в ФС, добавлено новое событие FS_PRE_ACCESS, генерируемое на стадии перед обращением к содержимому файла. Событие обрабатывается в синхронном режиме, т.е. ядро отправляет событие и ожидает получения ответа. Если ответ получен - операция выполняется, а если произошёл сбой - системный вызов возвращает в пространство пользователя код ошибки. При помощи FS_PRE_ACCESS процессом в пространстве пользователя, например, может быть организовано заполнение файла по мере готовности данных в медленном хранилище.
    • В подсистему FUSE, позволяющую создавать реализации файловых систем в пространстве пользователя, добавлена поддержка обмена данными между ядром и обработчиком в пространстве пользователя с использованием механизма ввода/вывода io_uring. Изменение позволяет повысить производительность FUSE за счёт сокращения переключений контекста между ядром и пространством пользователя.
    • В файловую систему XFS добавлена возможность использования обратного маппинга (rmap, reverse-mapping) в режиме работы с предсказуемыми задержками ("realtime device"). Обратный маппинг позволяет определить для хранения какого файла используется указанный блок на устройстве хранения. При помощи rmap в XFS для realtime-режима реализована поддержка операции reflink, позволяющей создавать копии файлов путём клонирование метаданных файла и создания ссылки на уже имеющиеся данные без их фактического копирования.
    • В VFS реализовано кэширование размера символических ссылок, позволившее на 1.5% ускорить выполнение операции readlink (в тесте с /initrd.img в ext4). Кэширование включено в ФС ext4 и tmpfs.
    • В реализацию NFSv4.2 добавлена поддержка делегирования атрибутов файлов, позволяющая управлять такими атрибутами файлов, как время изменения (mtime), на стороне NFS-клиента, без необходимости сброса изменений на сервер. В NFS также улучшена поддержка протокола "LOCALIO", позволяющего определить находятся ли клиент и сервер NFS на одном и том же хосте, для задействования соответствующих оптимизаций, таких как использование клиентом прямого ввода/вывода (Direct I/O).
    • Повышена производительность операций чтения в файловых системах NETFS, CIFS и AFS (Andrew File System).
    • В Squashfs включён режим прямой загрузки блоков в страничный кэш (SQUASHFS_FILE_DIRECT), позволяющий обойтись без отдельного кэша read_page. Изменение позволило сократить размер памяти, потребляемой при работе Squashfs.
    • В системном вызове statx() реализован флаг STATX_DIO_READ_ALIGN, для определения требуемого выравнивания для операций чтения из файла.
    • В файловой системе Bcachefs обновлён и стабилизирован формат дисковых структур. Любые дальнейшие изменения формата будут отнесены к категории не обязательных и будут реализовываться в форме опциональных дополнений. Значительно повышена скорость проверки целостности ФС. Кроме того, в Bcachefs улучшена работа в режиме только для чтения; устранены проблемы, приводящие к обращению к памяти после её освобождения (use after free); решены проблемы c reflink-указателями в fsck; исправлена обработка перезапуска транзакции.
    • Возвращён модуль md-linear, предназначенный для объединения блочных устройств. Данный модуль ранее был объявлен устаревшим и удалён из ядра 6.8, но как оказалось он был востребован и поэтому теперь восстановлен.
    • Файловые системы F2FS и SQUASHFS переведены на использование фолиантов страниц памяти (page folios).
    • Файловые системы OCFS2 и DLMFS переведены на использование нового API монтирования разделов.
    • В драйвере null_blk реализован атрибут "rotational", выставляемый через configfs и позволяющий симулировать работу с устройством на базе вращающихся дисков для упрощения тестирования функций ядра.
    • В системе Device mapper и в модулях dm-mirror, dm-io, dm-table, dm-linear, dm-stripe и dm-raid1 реализована поддержка атомарной записи.
  • Память и системные сервисы
    • Завершена интеграция в ядро драйвера ntsync, реализующего символьное устройство /dev/ntsync и набор примитивов для синхронизации, применяемых в ядре Windows NT. Реализация подобных примитивов на уровне ядра позволяет существенно поднять производительность Windows-игр, запускаемых при помощи Wine. Прирост производительности достигается благодаря избавлению от накладных расходов, связанных с применением RPC в пространстве пользователя. Создание отдельного драйвера для ядра Linux объясняется проблематичностью корректной реализации API синхронизации NT поверх существующих примитивов в ядре.
    • Добавлен новый контроллер cgroup DMEM для раздельного учёта областей памяти устройств, таких как GPU. DMEM позволяет создавать отдельные cgroup для различных задач, работающих с GPU, чтобы они могли выполняться не влияя друг на друга. Новая возможность решает проблему с принудительным завершением операций с GPU при исчерпании доступной памяти, благодаря учёту отражённой памяти GPU и используемой драйверами памяти CPU в отдельных cgroup.
    • Внесены оптимизации по масштабированию операции сброса (flush) кэша TLB (Translation Lookaside Buffer), применяемого для ускорения преобразования виртуальных адресов в физические. Добавленные оптимизации сводятся к отложенному обновлению некоторых структур данных во время переключения контекста, что позволяет повысить производительность при прохождении некоторых тестов.
    • Повышена производительность механизма MGLRU (Multi-Generational LRU), применяемый для определения какие страницы памяти используются, а какие можно вытеснить в раздел подкачки.
    • Продолжен перенос изменений из ветки Rust-for-Linux, связанных с использованием языка Rust в качестве второго языка для разработки драйверов и модулей ядра (поддержка Rust не активна по умолчанию, и не приводит ко включению Rust в число обязательных сборочных зависимостей к ядру). Предоставлена возможность использования в коде ядра макроса "derive(CoercePointee)", позволяющего использовать умные указатели с trait-объектами. В состав ядра включены Rust-обвязки для PCI, платформ, Open Firmware, символьных устройств и некоторых функций ввода/вывода. Грег Кроа-Хартман (Greg Kroah-Hartman), отвечающий за поддержку стабильной ветки ядра Linux, охарактеризовал текущее состояние, как "почти готовность к написанию реального драйвера на Rust".
    • В сборочных сценариях предложен новый код для генерации версий отладочных символов для загружаемых модулей, который теперь использует информацию из отладочных записей в формате DWARF, а не разбирает исходный код напрямую. Изменение позволяет применять версионирование отладочных символов для модулей, написанных на языке Rust. Старая реализация тоже оставлена в ядре, а выбор генератора производится на уровне сборочных опций.
    • Для архитектуры PowerPC реализована поддержка режима ленивого вытеснения задач (PREEMPT_LAZY, lazy preemption), который соответствует режиму полного вытеснения ("full preemption") для realtime-задач (RR/FIFO/DEADLINE), но задерживает вытеснение обычных задач (SCHED_NORMAL) до границы тика.
    • В подсистему профилирования производительности "perf" добавлена поддержка счётчиков энергопотребления процессоров AMD. Добавлена возможность работы на системах, насчитывающих до 2048 ядер CPU.
    • Предоставлена возможность использования sysctl-параметра pid_max с пространствами имён идентификаторов процессов (ID namespace). Параметр pid_max предназначен для ограничения максимального значения идентификаторов процессов (PID) и теперь может использоваться для ограничения максимально возможного числа процессов, запущенных в указанном пространстве имён. Обработка параметра производится иерархически, т.е. ограничения во внешних пространствах имён распространяются на вложенные пространства имён.
    • При использовании для запуска процесса системного вызова execveat в файловой системе /proc теперь будет отображаться имя запущенного файла, а не номер файлового дескриптора.
    • В состав исходного кода ядра (в каталог samples) добавлена утилита mountinfo, демонстрирующая использование системных вызовов statmount() и listmount().
    • В подсистеме BPF предложены новые функции bpf_local_irq_save() и bpf_local_irq_restore() для временного отключения прерываний на локальном CPU. Функции могут применяться для реализации структур, обработка которых не приостанавливается прерываниями.
    • В системном вызове madvise() при использовании флагов MADV_DONTNEED и MADV_FREE обеспечено освобождение таблиц страниц памяти, связанных с освобождаемым диапазоном адресов, так как в некоторых ситуациях пустые страницы памяти могут занимать достаточно много памяти.
    • Для архитектуры OpenRISC реализована поддержка механизма перезапускаемых последовательностей (rseq, restartable sequences), предназначенного для быстрого атомарного выполнения операций, которые в случае прерывания другим потоком очищаются и предпринимается повторная попытка выполнения.
    • Проведена реорганизация кода с реализацией алгоритмов CRC32 и CRC-T10DIF, который больше не пересекается с подсистемой crypto и вызывается напрямую из библиотечного интерфейса. Изменение позволило упростить код и повысить его эффективность.
    • В систему асинхронного ввода/вывода io_uring добавлен интерфейс для передачи дополнительных метаданных о целостности при выполнении операций чтения и записи.
  • Виртуализация и безопасность
    • В системный вызов execveat добавлен флаг AT_EXECVE_CHECK, позволяющий выполнить проверку допустимости исполнения файла без его фактического запуска, но c учётом политик безопасности, прав доступа и активных LSM-модулей. Для использования в сочетании с AT_EXECVE_CHECK предложены securebit-флаги SECBIT_EXEC_RESTRICT_FILE и SECBIT_EXEC_DENY_INTERACTIVE, которые можно использовать для ограничения исполнения файлов со скриптами на интерпретируемых языках программирования. Флаг SECBIT_EXEC_RESTRICT_FILE предписывает компоновщикам и интерпретаторам использовать опцию AT_EXECVE_CHECK для проверки допустимости исполнения, а флаг SECBIT_EXEC_DENY_INTERACTIVE запрещает обрабатывать интерактивные команды. Основная идея изменения в возможности применения политик безопасности не только к традиционным исполняемым файлам, но и к текстовым файлам со скриптами, которые можно загрузить через запуск интерпретатора (т.е. запрет на исполнение может быть реализован не только при запуске "./script.sh" но и при выполнении в форме "sh script.sh").
    • На системах x86 реализована поддержка защищённых счётчиков времени для гостевых систем, не позволяющих изменять системные часы гостевой системы из хост окружения. Возможность реализована на базе механизма AMD SEV (Secure Encrypted Virtualization), применяемого в системах виртуализации для защиты виртуальных машин от вмешательства со стороны гипервизора или администратора хост-системы.
    • В систему мандатного контроля доступа SELinux добавлена поддержка xperm-правил, позволяющих привязывать политики SELinux к определённым вызовам ioctl() или сообщениям netlink.
    • Для заверения модулей ядра цифровой подписью вместо SHA1 по умолчанию задействован алгоритм SHA512.
    • В драйверах для гостевых систем VirtualBox включена поддержка архитектуры ARM64.
    • В гипервизоре KVM продолжена работа над задействованием механизма Intel TDX (Trusted Domain Extensions) для шифрования памяти гостевых систем.
    • В virtio_blk добавлена поддержка режима восстановления ошибок.
  • Сетевая подсистема
    • В реализации протокола RxRPC появилась возможность использования больших кадров UDP для повышения пропускной способности.
    • Для TCP добавлена поддержка алгоритма RACK-TLP для определения потери пакетов.
    • Добавлен новый параметр sysctl tcp_tw_reuse_delay, действующий в привязке к пространству имён (network namespace) и позволяющий определить задержку, вносимую перед тем как система сможет повторно использовать номер сетевого порта после закрытия TCP-сокета.
    • Добавлена возможность выбора провайдера точного времени (PTP) для формирования временных меток на уровнях PHY и MAC.
    • Для IPsec реализована поддержка механизма агрегирования и фрагментирования инкапсулированных IP-пакетов - IP-TFS/AGGFRAG (IP Traffic Flow Security/Aggregation and Fragmentation Mode for Encapsulating Security Payload).
    • В систему сетевых сокетов добавлена поддержка передачи информации о приоритете (SO_PRIORITY) в форме управляющих сообщений (cmsg - control messages). Для сетевых сокетов добавлена опция SO_RCVPRIORITY, включающая в функции recvmsg() передачу информацию о приоритете сокета.
  • Оборудование
    • Добавлен драйвер amdxdna для интегрированных в CPU AMD ускорителей NPU (Neural Processing Unit) на базе архитектуры XDNA, предназначенных для ускорения операций, связанных с машинным обучением. NPU на базе архитектуры XDNA поставляется в сериях 7040 и 8040 процессоров AMD Ryzen, ускорителях AMD Alveo V70 и SoC AMD Versal.
    • В драйвер i915 добавлены идентификаторы новых GPU, реализован обработчик сбоев инициализации HDMI, повышена надёжность сброса движков GPU на Haswell и более старых системах.
    • Продолжена работа над drm-драйвером (Direct Rendering Manager) Xe для GPU на базе архитектуры Intel Xe, которая используется в видеокартах Intel семейства Arc и интегрированной графике, начиная с процессоров Tiger Lake.
    • В драйвере Nouveau добавлена возможность передачи буферов с логами GSP-RM через debugfs.
    • В драйвере AMDGPU реализована поддержка механизма DRM panic, отображающего подобие "синего экрана смерти" при сбоях. Продолжена подготовка к поддержке будущей серии графических карт Radeon RX 9000 на базе архитектуры RDNA4. Обновлена поддержка DCN 3.5, GG 9.5, IH 4.4, PSP 13.x, SMU 13.x, VCN 5.x, JPEG 5.x, GC 12.x, DC FAMS, RAS и ISP.
    • В DRM-драйвер msm (GPU Qualcomm Adreno) добавлена поддержка платформы Qualcomm SM6150 (QCS615).
    • В DRM-драйвер panfrost добавлена поддержка SoC MediaTek MT8188 c GPU Mali-G57.
    • В DRM-драйвер vc4 добавлена поддержка SoC Broadcom BCM2712 (Raspberry Pi 5).
    • В vfio-драйвер nvgrace-gpu добавлена поддержка чипов NVIDIA Grace Blackwell 200.
    • В состав включён драйвер для контроллеров Intel THC (Touch Host Controller), применяемый для взаимодействия с сенсорными экранами и тачпадами на некоторых ноутбуках. Добавлена поддержка устройств Wacom с интерфейсом PCI. Добавлена поддержка игровых контроллеров QH Electronics.
    • Добавлена поддержка ARM-плат, SoC и устройств: Qualcomm Snapdragon 8 Elite (SM8750), Qualcomm Snapdragon AR2 (SAR2130P), Qualcomm IQ6/IQ8, Snapdragon 425 (MSM8917), Samsung Exynos 9810, Blaize BLZP1600, Microchip SAMA7D65, Renesas R-Car V4H ES3.0, Renesas RZ/G3E. Добавлена поддержка платы SpacemiT K1 на базе архитектуры RISC-V.
    • В звуковой подсистеме ALSA для MIDI 2.0 расширены API rawmidi и sequencer. В API для выноса операций сжатия на сторону звуковой карты добавлена поддержка ASRC (Asynchronous Sample Rate Conversion).
    • Добавлена поддержка звуковых систем устройств Allwinner suinv F1C100s, Awinc AW88083, Realtek ALC5682I-VE, TAS2781, Focusrite Scarlett 4th Gen 16i16, 18i16 и 18i20. Добавлена поддержка беспроводных наушников SteelSeries Arctis 9.


Источник: https://www.opennet.ru/opennews/art.shtml?num=62937

opennet honked 24 Mar 2025 17:00 +0100

Выпуск Wayland-Protocols 1.42

Опубликован выпуск пакета wayland-protocols 1.42, содержащего набор протоколов и расширений, дополняющих базовый протокол Wayland и предоставляющих возможности, необходимые для построения композитных серверов и пользовательских окружений.

В Wayland-Protocols 1.42 предложена новая версия протокола "cursor-shape", в которой расширены возможности по формированию внешнего вида курсора, добавлена поддержка форм курсора с индикаторами получения информации (знак вопроса) и изменения размера. Также обновлена версия протокола "tablet", предоставляющего возможности для организация ввода с графических планшетов. В новой версии протокола tablet добавлена поддержка событий "bustype" и реализована возможность обработки событий от поворотных элементов управления с передачей относительных изменений по аналогии обработкой движения колеса мыши.

Все протоколы последовательно проходят фазы разработки, тестирования и стабилизации. После завершения стадии разработки (категория "unstable") протокол помещается в ветку "staging" и официально включается в состав набора wayland-protocols, а после завершения тестирования перемещается в категорию стабильных. Протоколы из категории "staging" уже можно применять в композитных серверах и клиентах, где требуется связанная с ними функциональность. В отличие от категории "unstable" в "staging" запрещено внесение изменений, нарушающих совместимость, но в случае выявление проблем и недоработок в ходе тестирования, не исключается замена новой значительной версией протокола или другим Wayland-расширением.

Для ускорения доведения протоколов до разработчиков и стимулирования ранней реализации протоколов в существующих проектах, начиная с позапрошлого выпуска дополнительно была добавлена фаза "experimental", в которой допускается внесение изменений, нарушающих совместимость, и добавление "сырых" протоколов, которые можно постепенно доводить до должного уровня. Если для попадания протокола в фазу "staging" требуется сформировать команду поддержки и получить определённое число подтверждений (ACK) от участников рецензирования, то для попадания в "experimental" достаточно отсутствия возражений (NACK) в течение двухнедельного периода рецензирования.

В настоящее время в состав набора wayland-protocols входят следующие стабильные протоколы, в которых обеспечивается обратная совместимость:

  • "viewporter" - позволяет клиенту выполнять действия по масштабированию и обрезанию краёв поверхности на стороне сервера.
  • "presentation-time" - обеспечивает отображение видео.
  • "xdg-shell" - интерфейс создания и взаимодействия с поверхностями как с окнами, позволяющий передвигать их по экрану, сворачивать, разворачивать, изменять размер и т.д.
  • "linux-dmabuf" - предоставляет возможности для создания 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 - реализует концепцию виртуальных рабочих столов и предлагает события с информацией о состоянии рабочих столов, а также возможности для активации и деактивации рабочих столов. Протокол может применяться для создания панелей и индикаторов, выводящих список доступных виртуальных рабочих столов и позволяющих переключаться между ними.
  • color-management - предоставляет возможности для управления цветом и поддержки расширенного динамического диапазона яркости (HDR, High Dynamic Range). При помощи добавленного расширения клиентские приложения могут получать информацию о связанных с цветопередачей свойствах устройств вывода и передавать композитному серверу данные о свойствах цветопередачи собственного контента. В композитном сервере данная информация может использоваться для автоматического управления цветом при отображении содержимого на различных устройствах вывода, например, для преобразования контента в предоставление, подходящее для отображения на HDR-мониторах. Для описания цветовых пространств используются профили ICC.

Протоколы, разрабатываемые в ветке "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.


Источник: https://www.opennet.ru/opennews/art.shtml?num=62940

opennet honked 24 Mar 2025 16:00 +0100

Выпуск игры The Dark Mod 2.13, созданной по мотивам Thief

После года разработки вышел релиз свободно распространяемой игры с открытым исходным кодом The Dark Mod 2.13, созданной в жанре "стелс" по мотивам игрового мира и серии игр Thief. Игровой движок TDM основан на движке Id Tech 4 и распространяется под лицензией GPLv3.

Основное внимание в версии 2.13 уделено улучшению работы игрового AI, добавлена поддержка Parallax Occlusion Mapping, исправлено около 70 ошибок, переработана система локализации миссий. На русский язык переведено больше 100 игровых миссий (из 210). Установочные пакеты подготовлены для Linux и Windows.



<iframe src="https://www.youtube.com/embed/JhJYFMNLfT4?feature=oembed">

Источник: https://www.opennet.ru/opennews/art.shtml?num=62939

opennet honked 24 Mar 2025 06:00 +0100

Релиз языка программирования V 0.4.10

Опубликован релиз статически типизированного языка программирования V 0.4.10 (vlang). Основными целями при создании V были простота изучения и использования, высокая читаемость, быстрая компиляция, повышенная безопасность, эффективная разработка, кроссплатформенное использование, улучшенное взаимодействие с языком C, лучшая обработка ошибок, отключаемый сборщик мусора (GC), современные возможности и более удобное сопровождение программ. Проект также развивает свою графическую библиотеку и пакетный менеджер. Код компилятора, библиотек и сопутствующих инструментов открыт под лицензией MIT.

Среди изменений в новой версии:

  • Добавлены анонимные структуры.
  • Удалена старая функциональность, ранее объявленная устаревшей (до этого 6 месяцев при компиляции проекта выводилось предупреждение о таком коде).
  • Множество улучшений в парсере и верификаторе (checker) языка.
  • Изменения, нарушающие совместимость:
    • Старый синтаксис "[attr]" теперь приводит к выводу ошибки, следует использовать "@[attr]".
    • string.index_after() теперь возвращает Option (как и string.index()), для старого поведения следует использовать string.index_after_().
    • vweb объявлен устаревшим в пользу более быстрого, стабильного и простого в использовании veb.
  • В стандартной библиотеке помимо множества оптимизаций и пополнения документации можно выделить:
    • Добавлен встроенный метод string.split_by_space()
    • В модуль os добавлены вспомогательные методы File.write_u8/1 и File.read_u8/0.
    • В модуль os добавлена функция disk_usage, показывающая доступное место для файлового пути.
    • В модуль time добавлена функция week_of_year().
    • В x.json2 добавлен Any.as_map_of_strings/0.
  • Среди web-изменений:
    • Удалён модуль x.vweb (теперь это модуль veb).
    • В veb.request_id добавлена новая прослойка (middleware) для отслеживания ID запросов.
    • Обновлено руководство по veb.
  • Базы данных:
    • В модуле orm исправлен генератор кода для опции fk.
    • В db.sqlite добавлена трассировка для большего количества вызовов при использовании "-d trace_sqlite", а не только для ORM.
    • В db.pg добавлена поддержка операторов - db.prepare/3 и db.exec_prepared/2.
    • В db.mysql добавлена поддержка SSL и вынесена во флаг подключения.
  • Примеры:
    • Добавлен пример HTTP-сервера vanilla_http_server - быстрого, многопоточного, неблокируемого, повторно использующего порты и хосты, потокобезопасного, использующего epoll.
    • Добавлен пример "1 Billion Row Challenge" для демонстрации возможностей производительности языка.
    • Добавлен пример игры "Сапер" (examples/gg/minesweeper.v).
    • Добавлен пример головоломке Sokoban с уровнями.
    • Добавлен пример игры про астероиды (сейчас она содержит ‹ 400 строк кода и использует gg).
    • Добавлен пример небольшой игры, поддерживающую клавиатуру и сенсорное управление.
  • В утилиту "v" добавлен флаг "-show-depgraph", который генерирует изображение с ModGraph:
  • Проектом развивается новая ОС Vinix со своим ядром, написанная с нуля на языке V. Vinix теперь может работать с GTK3:


Источник: https://www.opennet.ru/opennews/art.shtml?num=62938

opennet honked 23 Mar 2025 14:00 +0100

Выпуск Wayland Maker 0.5, композитный сервер в стиле Window Maker

Доступен выпуск композитного сервера Wayland Maker 0.5, реализующего пользовательское окружение в стиле Window Maker, построенное с использованием протокола Wayland. Код проекта написан на языке Си и распространяется под лицензией Apache 2.0. C 2023 года проект развивает сотрудник Google, также занимающийся разработкой минималистичной стандартной Си-библиотеки libbase.

Среди поддерживаемых возможностей: стековый режим компоновки окон, использование виртуальных рабочих столов, боковая панель и оформление в стиле NeXTSTEP, поддержка закрепления приложений на экране, ориентация на легковесность и высокую производительность. Поддерживаются Wayland протоколы: xdg-decoration-unstable-v1, ext_session_lock_v1, wlr_layer_shell_unstable_v1, xdg_shell и idle_inhibit_unstable_v1.

Основные возможности Wayland Maker 0.5:

  • Реализация корневого меню и меню управления окнами.
  • Начальная поддержка управления окнами при помощи клавиатуры.
  • Переход на использование библиотеки wlroots 0.18.
  • Настраиваемая раскладка элементов на экране.
  • Поддержка масштабирования вывода.
  • Привязка действий к переводу указателя мыши в углы экрана.
  • Поддержка хранителя экрана (задействованы Wayland-протоколы ext_session_lock_v1 и idle_inhibit_unstable_v1).
  • Настройка параметров, стилей, меню, панели и рабочих столов через текстовые файлы конфигурации.
  • Начальная возможность запуска X11-приложений, используя DDX-сервер XWayland.
  • Прототип возможность закрепления приложений на экране (DockApp). Из закрепляемых приложений пока доступны только часы.


Источник: https://www.opennet.ru/opennews/art.shtml?num=62932

opennet honked 23 Mar 2025 13:00 +0100

Выпуск Finnix 250, Live-дистрибутива для системных администраторов

Представлен выпуск Live-дистрибутива Finnix 250, приуроченный к 25-летию проекта (первая версия Finnix была опубликована 22 марта 2000 года). Дистрибутив основан на пакетной базе Debian, поддерживает только работу в консоли и предоставляет подборку утилит для нужд системного администратора. В состав входит более 600 пакетов со всевозможными утилитами. Размер iso-образа - 528 МБ.

В новой версии:

  • Пакетная база синхронизирована с репозиториями Debian testing по состоянию на 13 марта.
  • Ядро Linux обновлено до ветки 6.12.
  • Добавлен пакет util-linux-extra.
  • Удалены пакеты reiserfsprogs и reiser4progs после прекращения поддержки ReiserFS ядре Linux.
  • Повышена стабильность работы ssh-agent.
  • В загрузочный образ initramfs добавлена поддержка специфичных для сборки носителей.
  • Улучшена работа утилиты htop на системах с большим числом процессорных ядер.


Источник: https://www.opennet.ru/opennews/art.shtml?num=62935

opennet honked 23 Mar 2025 12:00 +0100

Проект Landrun развивает непривилегированную систему изоляции приложений

Проект Landrun начал развитие новой системы для изолированного выполнения отдельных приложений. Для изоляции задействован LSM-модуль ядра Linux Landlock, позволяющий обойтись без выполнения привилегированных операций во время создания sandbox-окружения. По своим задачам Landrun близок к утилите Firejail, но отличается более простой реализацией, легковесностью и возможностью работы под обычным непривилегированным пользователем без поставки с флагом suid. Код проекта написан на языке Go и распространяется под лицензией GPLv2.

Механизм Landlock позволяет непривилегированным программам ограничить использование объектов ядра Linux, таких как иерархии файлов, сетевые сокеты и ioctl. В отличие от пространств имён и фильтрации системных вызовов изолированное окружение формируется ядром Linux в форме дополнительного слоя над существующими системными механизмами управления доступом. Для взаимодействия с подсистемой Landlock в утилите landrun используется библиотека go-landlock от разработчиков LandLock.

Landrun позволяет снизить риск компрометации основной системы при запуске не заслуживающих доверия или потенциально уязвимых программ. Из возможностей отмечается поддержка выборочного ограничения доступа на уровне отдельных каталогов, привязка полномочий к файловыми путям (разрешение или запрет чтения, записи и исполнения) и контроль над инициированием и приёмом TCP-соединений.

Например, при помощи Landrun процессу можно запретить запуск исполняемых файлов, разрешить запись только в отдельный подкаталог c данными, запретить создание слушающих сокетов для приёма сетевых соединений и разрешить отправку сетевых запросов только на указанные TCP-порты. В простейшем случае для запрета записи, запуска и сетевых возможностей программу можно выполнить командой "landrun --ro /", а для изоляции nginx можно использовать:

   landrun --rox /usr/bin --ro /lib,/lib64,/var/www --rwx /var/log --bind-tcp 80,443 /usr/bin/nginx

В планах на будущее упоминается расширенное управление доступом к файловой системе, поддержка UDP и управление ресурсами процессов. Для ограничения доступа на уровне файловой системы требуется как минимум ядро Linux 5.13, а для сетевых ограничений - 6.8.

Дополнительно можно отметить, что в кодовую базу Firejail уже приняты изменения, позволяющие использовать подсистему ядра Landlock для изоляции без suid-бита и повышения привилегий, но релиз с данной поддержкой ещё не опубликован.

Источник: https://www.opennet.ru/opennews/art.shtml?num=62934

opennet honked 23 Mar 2025 09:00 +0100

Для NixOS предложен метод защиты от подстановки бэкдоров, таких как в XZ

Для включения в репозиторий пакетов nixpkgs, применяемый в дистрибутиве NixOS, предложен режим повторяемых сборок, позволяющий выявлять случаи внедрения в код бэкдоров, напоминающие инцидент с проектом XZ. Представленный метод защиты позволяет выявлять модификации в архивах с исходным кодом релиза, отсутствующие в репозиториях с кодом.

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

Напомним, что в случае с проектом XZ репозиторий с кодом не содержал подозрительных изменений. Образующие бэкдор вредоносные компоненты поставлялись внутри файлов, используемых в тестовом наборе для проверки корректности работы распаковщика XZ. Бэкдор активировался на уровне системы сборки, а сам исходный код XZ совпадал с кодом из репозитория. Активирующие бэкдор m4-макросы для инструментария Automake были включены только в готовый архив с кодом и отсутствовали в репозитории.

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

Для упрощения проверки соответствия файлов-архивов и срезов репозитория, соответствующих релизам, некоторые открытые проекты, такие как PostgreSQL, ввели в обиход систему повторяемой генерации архивов. В данном случае предоставляется инструментарий, позволяющий самостоятельно собрать из кода свой архив, полностью соответствующий готовому архиву, доступному для загрузки. Если независимо созданный архив и архив, предоставляемый основным проектом, будут отличаться - имеет место компрометация репозитория или эталонного архива.

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

Источник: https://www.opennet.ru/opennews/art.shtml?num=62933

opennet honked 22 Mar 2025 22:00 +0100

Уязвимости в Pagure и OBS, допускавшие компрометацию пакетов в репозиториях Fedora и openSUSE

Исследователи безопасности из компании Fenrisk раскрыли информацию об уязвимостях в инструментариях Pagure и OBS (Open Build Service), позволявших скомпрометировать инфраструктуры формирования пакетов дистрибутивов Fedora и openSUSE. Исследователи продемонстрировали возможность совершения атаки для выполнения произвольного кода на серверах с Pagure и OBS, что можно было использовать для подстановки изменений в пакеты в репозиториях Fedora и openSUSE.

В платформе Pagure, используемой в Fedora для совместной работы c кодом и метаданными пакетов, выявлены 4 уязвимости. Для эксплуатации выявленных проблем требуется наличие учётной записи в сервисе Pagure, которую может получить любой желающий (в настоящее время в Pagure.io зарегистрировано 24899 пользователей). Три проблемы позволяют прочитать файлы в системе, а одна проблемы выполнить свой код на сервере. Проблемы были выявлены 1 января 2024 года, сообщены через bugzilla.redhat.com 25 апреля 2024 года и устранены в Pagure через 3 часа.

  • Уязвимости CVE-2024-4981 и CVE-2024-47515 вызваны некорректной обработкой символических ссылок в функциях обновления файла и генерации архивов. Уязвимости позволяют прочитать содержимое локальных файлов на сервере, например, можно узнать содержимое файла с параметрами сеанса администратора Pagure и получить доступ с его правами. Эксплуатация уязвимости в функции _update_file_in_git() сводится к созданию репозитория в Pagure; добавлению в него коммита с новым файлом, который создан как символическая ссылка на желаемый системный файл; открытию данного файла для редактирования в web-интерфейсе.
  • Уязвимость (CVE-2024-4982) в функции view_issue_raw_file() позволяет выйти за пределы базового каталога через указание символов "/.." в параметрах запрошенного Issue. Проблема позволяет прочитать файлы в системе, насколько позволяют права доступа процесса под которым выполняется web-интерфейс. Например, для просмотра файла /etc/passwd можно открыть страницу "http://pagure.local:5000/your-repository/issue/raw/../../../../../../../etc/passwd".
  • Уязвимость (CVE-2024-47516) в функции PagureRepo.log(), даёт возможность добиться подстановки своих команд и выполнения кода на сервере. Проблема вызвана тем, что при просмотре истории изменения файла через web-интерфейс вызывается команда "git" с передачей идентификатора ветки в командной строке (например, "/usr/bin/git --pretty=oneline --abbrev-commit ‹HERE› -- README.md"). Корректность идентификатора не проверяется, поэтому можно вместо него передать любую опцию командной строки, например, "--output=/tmp/foo.bar" для перенаправления вывода в файл. Атакующий может перезаписать файл в системе через отправку запроса следующего вида:
       http://pagure.local:5000/test/history/README.md?identifier=--output=/tmp/foo.bar
    

    Pagure выполняется под пользователем git, поэтому перезаписать получится только файлы данного пользователя. Для организации выполнения своего кода на сервере можно воспользоваться сервисом для доступа к репозиторию по SSH, при обращении к которому выполняется команда "bash -c /usr/libexec/pagure/aclchecker.py". Атакующий может использовать уязвимость для перезаписи файла "/srv/git/.bashrc" и данный файл будет запущен командным интерпретатором bash при обращении к репозиторию по ssh.

    Атака сводится к регистрации в системе Pagure, созданию репозитория, добавлению в репозиторий файла README.md с примечанием к коммиту вида "|| /bin/bash" и отправке запроса "http://pagure.local:5000/test/history/README.md?identifier=--output=/srv/git/.bashrc". В ходе данных шагов в файл "/srv/git/.bashrc" будет записана строка вида "34а5с43 || /bin/bash". Для запуска созданного файла "/srv/git/.bashrc" достаточно подключиться к репозиторию по SSH под своей учётной записью. Выполнения кода с правами пользователя git на сервере Pagure позволяет контролировать всё содержимое репозиториев с пакетами.



<iframe src="https://player.vimeo.com/video/1066145210?h=0716980f9b">


В платформе OBS (Open Build Service), применяемой в openSUSE и некоторых других дистрибутивах для сборки пакетов, выявлена одна уязвимость (CVE-2024-22033), позволяющая выполнить свой код на сервере. Уязвимость выявлена 27 июня 2024 года, сообщена проекту openSUSE 29 июня и устранена 10 июля.

Уязвимость присутствует в сервисе "obs-service-download_url", в котором отсутствовала должная проверка URL, применяемого при запуске утилиты wget из скрипта, осуществляющего загрузку исходного кода в OBS. Атакующий может указать в сервисе OBS конфигурацию формируемого пакета, в которой вместо URL для загрузки кода будет указана опция командной строки для wget, например:

   ‹services›
   ‹service name="download_url"›
   ‹param name="url"›--output-document=/tmp/test‹/param›
   ‹param name="download-manifest"›tempfile‹/param›
   ‹/service›
   ‹/services›

Для обхода возвращения ошибки при попытке запустить wget без URL в примере указана опция "download-manifest", позволяющая указать список URL в отдельном файле. Вышеуказанный пример приведёт к запуску команды:

   /usr/bin/wget -i /srv/obs/service/XXXXX/src/tempfile -4 --output-document=/tmp/test

которая позволяет записать в файл /tmp/test содержимое, загруженное по ссылке, указанной в файле /srv/obs/service/XXXXX/src/tempfile из кода, загруженного атакующим в OBS через интерфейс build.opensuse.org, допускающий свободную регистрацию. Кроме перезаписи файла на сервере, атакующий также может отправить себе любой файл, указав вместо "--output-document" опцию "--post-file", например, "--post-file=/etc/passwd". Таким образом атакующий может читать и записывать файлы на сервере, насколько позволяют права доступа, под которым выполняется сервис OBS.

Для того, чтобы превратить возможность записи в файл в выполнение кода на сервере исследователи предложили метод, состоящий из двух этапов. Два этапа необходимы, так атакующий может создать файл ".wgetrc" с настройками к wget, но этого недостаточно для запуска команд. Но при этом, через ".wgetrc" можно создать условия для выполнения в системе любой программы, но без передачи ей аргументов. Для запуска произвольного кода предложено запускать программу "prove", которая обрабатывает файл конфигурации ".proverc", допускающий указание опции "--exec" для выполнения любого кода.

На первом этапе через вышеотмеченные манипуляции с "download-manifest" в домашнем каталоге пользователя "obsservicerun" создаётся файл ".proverc", включающая команды, которые будут выполнены при запуске процесса "prove". На втором этапе создаётся файл .wgetrc" с параметром "use-askpass=/usr/bin/prove", приводящим к вызову "prove". После появления данных файлов достаточно создать условия загрузки любых данных при помощи wget и это приведёт к запуску кода атакующего на сервере с правами пользователя "obsservicerun". Прав пользователя "obsservicerun" достаточно для извлечения из репозиториев ключей, используемых пользователями OBS для заверения пакетов.

<iframe src="https://player.vimeo.com/video/1066093605?h=d7a210d719">

Источник: https://www.opennet.ru/opennews/art.shtml?num=62928

opennet honked 22 Mar 2025 10:00 +0100

Выпуск операционной системы ReactOS 0.4.15

После более трёх лет разработки представлен релиз операционной системы ReactOS 0.4.15, нацеленной на обеспечение совместимости с программами и драйверами Microsoft Windows. Для загрузки подготовлены установочный ISO-образ (117 МБ) и Live-сборка (в zip-архиве 85 МБ). Код проекта распространяется под лицензиями GPLv2 и LGPLv2.

После прошлого выпуска внесено более 8600 изменений и закрыто 1319 отчётов о проблемах. Ключевые изменения:

  • Визуальный стиль по умолчанию изменён на стиль "Mizu".
  • Добавлена поддержка размещения крупных пиктограмм в панели задач.
  • Добавлена поддержка архивов в формате ZIP, с которыми можно работать в файловом менеджере, как c виртуальной файловой системой, а также распаковывать при помощи отдельного мастера.
  • На рабочий стол добавлена пиктограмма "Internet Browser" для вызова web-браузера.
  • Решены проблемы с некорректным отображением пиктограмм в приложениях, таких как Microsoft Office 2000, Microsoft Visual Basic 6 и Hoyle Cards. Повышена стабильность работы библиотеки Shell32.
  • В ядре значительно переделан PnP-менеджер (Plug and Play), что расширило возможности ReactOS по запуску сторонних драйверов, созданных для Windows.
  • Добавлена возможность загрузки ReactOS с USB-устройств на чипсетах с контроллерами EHCI, OHCI и UHCI. Решены проблемы с зацикливанием в USB-драйвере при неготовности USB-устройства, мешавшие загрузке на некоторых системах.
  • Улучшен звуковой стек. Из Windows Driver Kit (WDK) перенесён драйвер AC’97, позволяющий использовать звук при установке в VirtualBox и выборе в настройках звукового контроллера ICH AC’97 или при загрузке на системах со старыми материнскими платами. Добавлена поддержка более высокой частоты дискретизации, многоканального вывода, новых форматов звуковых файлов и зацикливания воспроизведения wav-файлов.
  • В системе управления памятью переработан механизм "Section Objects", позволяющий совместно использовать области памяти. Изменение решило проблему с невозможностью запуска исполняемых файлов с внешних разделов, таких как сетевые хранилища и совместные диски виртуальных машин.
  • Из Windows Driver Kit (WDK) перенесён драйвер FAT, открытый компанией Microsoft. Новый драйвер FAT решил проблемы с низкой стабильностью и производительностью старого драйвера, а также позволил реализовать корректное извлечение внешних устройств.
  • Реализованы механизмы для восстановления, сброса состояния и кэширования реестра, позволившие повысить живучесть системы в случае аварийного завершения или выключения питания. Механизм восстановления позволяет автоматически откорректировать повреждённые области реестра, механизм сброса состояния (flush) обеспечивает периодическое сохранение изменений на диск, а кэширование заметно повышает скорость работы с реестром.
  • В ядре улучшена подсистема Se (Security Subsystem), в которой реализован механизм для управления доступом к системным объектам.
  • Расширены возможности базовых приложений и системных утилит. Например, в графическом редакторе Paint появился инструмент для работы с текстом, а в текстовом редакторе Notepad реализован диалог вывода на печать. Улучшен IME (Input Method Editor) для управления методами ввода.
  • Добавлена начальная поддержка загрузки на многопроцессорных системах со включённым режимом SMP.
  • Значительно улучшена работа в 64-разрядном режиме.
  • Добавлена новая утилита командной строки tasklist для отображения списка активных задач.

В master-ветке дополнительно развивается поддержка UEFI, SMP и управления энергопотреблением, добавлены графический инсталлятор и драйвер NTFS.

Источник: https://www.opennet.ru/opennews/art.shtml?num=62931

opennet honked 22 Mar 2025 09:00 +0100

Выпуск Wine 10.4

Опубликован экспериментальный выпуск открытой реализации Win32 API - Wine 10.4. С момента выпуска 10.3 было закрыто 28 отчётов об ошибках и внесено 241 изменение.

Наиболее важные изменения:

  • В библиотеке DbgHelp улучшена поддержка формата PDB (Program database).
  • В WineD3D расширены возможности для ускорения декодирования видео при помощи API Vulkan.
  • В окне SysLink добавлены средства для людей с ограниченными возможностями (Accessibility).
  • Продолжена разработка драйвера для Bluetooth.
  • Закрыты отчёты об ошибках, связанные с работой приложений: Adobe Illustrator CS6, Chessmaster 9000, Steam, iTunes 12.9.4, ShaderMap 4.x, IE 8, Roon 2.0.23, Enterprise Architect, Q-Dir, Firefox 136.0.1.
  • Закрыты отчёты об ошибках, связанные с работой игр: Strong Bad's Episode 1 - Homestar Ruiner, Battle.net client, Need for Speed: Shift, Command & Conquer 3: Kane's Wrath, Europa Universalis 4 Golden Century, Myst, Chessbase 17, Zenless Zone Zero.


Источник: https://www.opennet.ru/opennews/art.shtml?num=62930