The OpenNET Project / Index page

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

·10.05.2026 Бета-выпуск языка программирования Mojo 1.0 (40 +6)
  Представлен первый бета выпуск языка программирования Mojo 1.0, который ознаменовал стабилизацию языка и реализацию всех базовых возможностей. Выпуск оценивается как почти готовый к повсеместному использованию. Финальный релиз Mojo 1.0 ожидается в начале осени. Использование данной ветки позволит начать разрабатывать крупные проекты, не опасаясь появления в языке изменений, нарушающих совместимость.

В состав платформы включены компоненты, необходимые для разработки приложений на языке Mojo, включая компилятор, runtime, интерактивную REPL-оболочку для сборки и запуска программ, отладчик, дополнение к редактору кода Visual Studio Code (VS Code) с поддержкой автодополнения ввода, форматирования кода и подсветки синтаксиса, модуль для интеграции с Jupyter для сборки и запуска Mojo notebook. Исходный код стандартной библиотеки Mojo открыты под лицензией Apache 2.0 c исключениями от проекта LLVM, допускающими смешивание с кодом под лицензией GPLv2. Исходный код компилятора планируют открыть после завершения стабилизации внутренней архитектуры.

Язык Mojo развивается под руководством Криса Латнера (Chris Lattner), основателя и главного архитектора проекта LLVM и создателя языка программирования Swift. Синтаксис Mojo основан на языке Python, а система типов близка к C/C++. Проект преподносится как язык общего назначения, расширяющий возможности языка Python средствами системного программирования, подходящий для широкого круга задач и сочетающий простоту применения для исследовательских разработок и быстрого создания прототипов с пригодностью для формирования высокопроизводительных конечных продуктов.

Простота достигается благодаря использованию привычного синтаксиса языка Python, а разработке конечных продуктов способствуют возможность компиляции в машинный код, механизмы безопасной работы с памятью и задействование средств для аппаратного ускорения вычислений. Для достижения высокой производительности поддерживается распараллеливание вычислений с задействованием всех имеющихся в системе аппаратных ресурсов гетерогенных систем, таких как GPU, специализированные ускорители для машинного обучения и векторные процессорные инструкции (SIMD). При интенсивных вычислениях распараллеливание и задействование всех вычислительных ресурсов даёт возможность добиться производительности, превосходящей приложения на C/C++.

Язык поддерживает статическую типизацию и средства для безопасной низкоуровневой работы с памятью, напоминающие возможности языка Rust, такие как отслеживание времени жизни ссылок и проверка заимствования переменных (borrow checker). При этом в языке доступны и возможности для низкоуровневой работы, например, возможно прямое обращение к памяти в режиме unsafe с использованием типа Pointer, вызов отдельных SIMD-инструкций или доступ к аппаратным расширениям, таким как TensorCores и AMX.

Mojo может использоваться как в режиме интерпретации с использованием JIT, так и для компиляции в исполняемые файлы (AOT, ahead-of-time). В компилятор встроены современные технологии автоматической оптимизации, кэширования и распределённой компиляции. Исходный код на языке Mojo преобразуются в низкоуровневый промежуточный код MLIR (Multi-Level Intermediate Representation), развиваемый проектом LLVM. Компилятор позволяет применять для генерации машинного кода различные бэкенды, поддерживающие MLIR.

Среди изменений в Mojo 1.0.0b1:

  • Ключевое слово "fn" объявлено устаревшим - для объявления функций следует использовать ключевое слово "def" (возможности "fn" и "def" объединены, и в "def" реализована семантика "fn" без генерации исключений).
  • Унифицирована реализация замыканий (closure). Не учитывающие контекст замыкания (stateless closure) теперь автоматически преобразуются в функции верхнего уровня и могут использоваться как callback-вызовы в FFI (Foreign Function Interface). Добавлена поддержка захвата по ссылке (ref capture). При объявлении функций добавлен признак "thin" для объявления простого типа указателя на функцию без захвата состояния.
  • Указатели с типом UnsafePointer теперь не могут принимать значение null по умолчанию, а для работы с null-указателями необходимо использовать "Optional[UnsafePointer[...]]", что позволяет исключить накладные расходы при работе с null-указателями и сохранить возможность безопасного применения в FFI.
  • По умолчанию в коде для CPU в коллекциях включена проверка допустимых границ (на GPU проверка отключена для производительности, но может быть включена при сборке с "mojo build -D ASSERT=all"). Прекращена поддержка указания отрицательных значений в индексах (запрещено "x[-1]", но можно указывать "x[len(x)-1]").
  • Из стандартной библиотек удалён тип NDBuffer, вместо которого следует использовать TileTensor.
  • Расширена поддержка работы с GPU через графический API Metal на системах Apple (например, появилась поддержка print() и матричных инструкций M5). Добавлена поддержка ускорителей AMD MI250X и NVIDIA B300.
  • Идентификаторы примитивов GPU (индексы потоков и блоков) переведены на возвращение типа Int вместо UInt.
  • Контекст CPU ('DeviceContext(api="cpu")') стал потокозависимым (stream-ordered). Для упорядоченного выполнения задач добавлены функции enqueue_cpu_function() и enqueue_cpu_range().
  • В типах String и StringSlice добавлена поддержка графемных кластеров (Unicode UAX #29), позволяющая корректно вычислять длину и обрезать строки с emoji и комбинированных символов. Добавлены методы graphemes() и count_graphemes(), а также синтаксис слайсов "[grapheme=...]".
  • Реализовано уточнение типов (Type Refinement) на этапе компиляции для автоматического сужения типов внутри выражений "where", "if" и "assert" (позволяет обойтись без явного указания trait_downcast).
  • Предложен унифицированный API рефлексии, в котором предложена новая функция reflect[T](), возвращающая Reflected[T] и заменяющая семейство функций struct_field_* и старые методы get_type_name().

Одновременно сформирован выпуск движка MAX Framework 26.3, предлагающего платформу для разработок в области машинного обучения. MAX Framework дополняет инструментарий Mojo средствами для разработки и отладки приложений, использующих модели машинного обучения в различных форматах (TensorFlow, PyTorch, ONNX и т.п.). В новой версии MAX Framework добавлена возможность генерации видео, расширена поддержка работ с использованием нескольких GPU, значительно повышена производительность интерпретатора (некоторые операции стали выполняться быстрее в 10-20 раз).

  1. OpenNews: Сотрудник Google развивает язык программирования Carbon, нацеленный на замену C++
  2. OpenNews: Программно-аппаратная платформа CHERIoT 1.0 для повышения безопасности кода на языке Си
  3. OpenNews: Выпуск языка программирования Hare 0.26
  4. OpenNews: Компания Apple опубликовала язык программирования Swift 6.3
  5. OpenNews: Выпуск языка программирования Nim 2.2.10
Обсуждение (40 +6) | Тип: Программы |
·10.05.2026 Выпуск lay, автокорректора слов, введённых не в той раскладке, для GNOME c Wayland (53 +3)
  Опубликован проект lay, помогающий исправлять слова, набранные с использованием не той раскладки клавиатуры, в GNOME-окружении на базе Wayland. Утилита исправляет последнее слово, набранное в неправильной русской или английской раскладке, по двойному нажатию клавиши Shift. Код написан на языке Rust и распространяется под лицензией MIT. На данной стадии развития программа имеет качество бета-версии - приветствуется отправка отчётов об ошибках..

Основной сценарий использования: пользователь набрал, например, "ghbdtn" вместо "привет", нажал Shift два раза, и слово перепечатывается в другой раскладке. Замена осуществляется по месту, без копирования текста через буфер обмена (программа симулирует нажатие клавиши Backspace для затирания ошибочно введённого слова и затем повторяет ввод в правильной раскладке). В смешанном тексте lay старается не трогать уже корректные соседние слова, например, "good ntrcn" будет преобразовано в "good текст", а "wi-fi ye" а wi-fi ну". Возможна точная автоподмена слов по пользовательскому словарю.

Проект состоит из фонового процесса, который работает с evdev/uinput, и небольшого дополнения к GNOME Shell, обеспечивающего переключение раскладки в GNOME на базе Wayland. По умолчанию программа работает локально и не использует облако, буфер обмена или большие языковые модели. В качестве опции доступен экспериментальный режим "--smart", в котором для автоматического определения ошибочного ввода применяется локально выполняемая AI-модель. В состав также входит отдельная утилита командной строки для преобразования текста не в другой раскладке. Поддержка в настоящее время ориентирована на GNOME Wayland и русский/английский языки.

  1. OpenNews: Выпуск раскладки клавиатуры Ручей 2.0 с исправлениями от сообщества
  2. OpenNews: Проблемы с лицензией на раскладку клавиатуры могут привести к ее удалению из Debian
  3. OpenNews: Новый метод определения текста по звуку его набора на клавиатуре
  4. OpenNews: Проект KDE развивает собственную виртуальную клавиатуру
  5. OpenNews: Представлен компьютер-клавиатура Raspberry Pi 500+
Обсуждение (53 +3) | Автор: radislabus-star | Тип: Программы |
·09.05.2026 Уязвимость в системном вызове execve, предоставляющая root-доступ во FreeBSD (143 +26)
  Во FreeBSD выявлена уязвимость (CVE-2026-7270), позволяющая непривилегированному пользователю выполнить код с правами ядра и получить root-доступ к системе. Уязвимость затрагивает все выпуски FreeBSD, сформированные с 2013 года. В открытом доступе размещён эксплоит, работа которого проверена на системах с FreeBSD 11.0 по 14.4. Уязвимость устранена в обновлениях FreeBSD 15.0-RELEASE-p7, 14.4-RELEASE-p3, 14.3-RELEASE-p12 и 13.5-RELEASE-p13. Для более старых веток можно использовать патч.

Проблема вызвана переполнением буфера в системном вызове execve, возникающем при обработке префикса, указываемого в первой строке скриптов для определения пути к интерпретатору (например, "#!/bin/sh"). Переполнение возникает при вызове функции memmove из-за неверного составления математического выражения для вычисления размера копируемых в буфер аргументов. Вместо вычитания из "args->endp" значений "args->begin_argv" и "consume", из "args->endp" вычиталось только значение "args->begin_argv", а переменная consume прибавлялась к результату, а не вычиталась, т.е. в результате копировалось больше данных на два значения "consume".


	memmove(args->begin_argv + extend, args->begin_argv + consume,
-	    args->endp - args->begin_argv + consume);
+	    args->endp - (args->begin_argv + consume));

Переполнение позволяет перезаписать размещаемые в соседней области памяти элементы структуры "exec_map" от другого процесса. В эксплоите переполнение задействовано для перезаписи содержимого "exec_map" периодически запускаемых в системе привилегированных процессов. В качестве подобного процесса выбран sshd, который при каждой установке сетевого соединения ответвляет через вызов fork и execve процесс "/usr/libexec/sshd-session" с правами root.

Эксплоит подставляет для данного процесса переменную окружения "LD_PRELOAD=/tmp/evil.so", приводящую к загрузке в контексте sshd-session своей библиотеки. Подставляемая библиотека создаёт в файловой системе исполняемый файл /tmp/rootsh с флагом suid root. Вероятность успешного переполнения оценивается в 0.6%, но благодаря цикличному повтору попыток, успешная эксплуатация достигается примерно за 6 секунд на системе с 4-ядерным CPU.

Кроме того, во FreeBSD устранено ещё несколько уязвимостей:

  • CVE-2026-35547, CVE-2026-39457 - переполнения буфера в библиотеке libnv, используемой в ядре и в приложениях из базовой системы для обработки списков в формате ключ/значение и для организации передачи данных при межпроцессном взаимодействии. Первая проблема вызвана неверным вычислением размера сообщения при обработке специально оформленных заголовков IPC-сообщений. Вторая проблема приводит к переполнению стека при обмене данных через сокет из-за отсутствия проверки соответствия размера дескриптора сокета размеру буфера, используемому в функции select(). Потенциально уязвимости могут использоваться для повышения своих привилегий в системе.
  • CVE-2026-42512 - удалённо эксплуатируемое переполнение буфера в dhclient, возникающее из-за некорректного вычисления размера массива указателей, используемого для передачи переменных окружения в dhclient-script. Не исключается возможность создания эксплоита для удалённого выполнения кода через отправку специально оформленного DHCP-пакета.
  • CVE-2026-7164 - переполнение стека в пакетном фильтре pf, возникающее при обработке специально оформленных пакетов SCTP. Проблема вызвана неограниченным рекурсивным разбором параметров SCTP.
  • CVE-2026-42511 - возможность подстановки в dhclient.conf произвольных директив из-за отсутствия должного экранирования двойных скобок в BOOTP полях, получаемых от внешнего DHCP-сервера. При последующем разборе данного файла процессом dhclient, указанное атакующим поле передаётся в dhclient-script, что может использоваться для выполнения произвольных команд с правами root на системах, использующих dhclient, при обращении к подконтрольному атакующему DHCP-серверу.
  • CVE-2026-6386 - отсутствие должной обработки больших страниц памяти в функции ядра pmap_pkru_update_range(). Непривилегированный пользователь, может заставить pmap_pkru_update_range() обработать память из пространства пользователя как страницу в таблице страниц памяти, и добиться перезаписи области памяти, к которой нет доступа.
  • CVE-2026-5398 - обращение к уже освобождённой области памяти в обработчике TIOCNOTTY, позволяющее непривилегированному процессу получить права root.

  1. OpenNews: Удалённо эксплуатируемые уязвимости в ядре FreeBSD, Vim и Emacs
  2. OpenNews: Удалённая root-уязвимость в обработчике автоконфигурации IPv6 во FreeBSD
  3. OpenNews: Уязвимость в libnv во FreeBSD и уязвимости в Netfilter в Linux
  4. OpenNews: Уязвимости во FreeBSD, позволяющие повысить свои привилегии или обойти изоляцию гостевой системы
  5. OpenNews: Уязвимость в поставляемом во FreeBSD варианте OpenSSH, допускающая удалённое выполнение кода
Обсуждение (143 +26) | Тип: Проблемы безопасности |
·08.05.2026 Предложен killswitch для экстренного отключения уязвимой функциональности в ядре Linux (90 +29)
  Саша Левин (Sasha Levin) из компании NVIDIA, занимающийся сопровождением LTS-веток ядра Linux и входящий в консультативный совет организации Linux Foundation, подготовил набор патчей с реализацией механизма killswitch для ядра Linux. Предложенная возможность позволяет мгновенно отключить доступ к определённой функциональности работающего ядра. Предполагается, что killswitch будет полезен для временного блокирования уязвимостей на время до установки обновления ядра с исправлением.

Управление killswitch осуществляется через файл "/sys/kernel/security/killswitch/control", позволяющий настроить перехват обращений к функциям ядра по их именам. Например, для блокирования уязвимости Copy Fail достаточно записать в управляющий файл команду "engage af_alg_sendmsg -1" для включения перехвата вызова функции af_alg_sendmsg и вместо её выполнения возвращения кода ошибки "-1".

В качестве имён могут использоваться любые символы, поддерживаемые подсистемой kprobes. Многие из недавно найденных в ядре серьёзных уязвимостей присутствуют в подсистемах, используемых относительной небольшим числом пользователей (например, AF_ALG, ksmbd, nf_tables, vsock, ax25). Для большинства пользователей неудобство из-за прекращения работоспособности отдельных функций не сравнится с риском использования в работе ядра с известной неисправленной уязвимостью на время до установки исправления. Механизм killswitch особо актуален в контексте сегодняшней уязвимости Dirty Frag, эксплоит для которой был опубликован раньше, чем проблема была устранена в ядре.

  1. OpenNews: Уязвимости Dirty Frag, изменяющие страничный кэш для получения root в любых дистрибутивах Linux
  2. OpenNews: Copy Fail - уязвимость в ядре Linux, позволяющая получить root в большинстве дистрибутивов
  3. OpenNews: Уязвимость в ядре Linux, позволяющая повысить свои привилегии через VSOCK
  4. OpenNews: Выпуск LKRG 1.0.0 для защиты от эксплуатации уязвимостей в ядре Linux
Обсуждение (90 +29) | Тип: К сведению |
·08.05.2026 Скомпрометирован официальный Twitter-канал Ubuntu (27 +15)
  Следом за DDoS-атакой на инфраструктуру компании Canonical злоумышленникам удалось получить контроль над каналом Ubuntu в социальной сети X.com (Twitter). В канале Ubuntu был размещён анонс AI-агента Numbat, который преподносился как децентрализованный AI, созданный на базе блокчейна и технологий криптовалюты Solana. Заявлялось, что AI-агент можно протестировать на сайте ai-ubuntu.com, который был зарегистрирован за несколько часов до размещения объявления. Оформление сайта было стилизовано под страницу ubuntu.com/ai, а в тексте использовались факты из анонсированного вице-президентом компании Canonical проекта по интеграции AI-технологий в Ubuntu.

Для скрытия IP-адреса сервера, доступ к нему был организован через сеть доставки контента Cloudflare. В настоящий момент анонс Numbat уже удалён с канала, а при попытке открытия сайта ai-ubuntu.com компания Cloudflare выводит предупреждение о фишинге. При открытии сайта ai-ubuntu.com пользователям предлагалось привязать свой криптовалютный кошелёк к платформе, а также объявлялось о скором запуске своего криптовалютного токена и предоставлении возможности принять участие в его распределении среди пользователей.

  1. OpenNews: Сервисы Ubuntu и Canonical оказались недоступны из-за DDoS-атаки
  2. OpenNews: В Ubuntu намечена интеграция AI
  3. OpenNews: Релиз дистрибутива Ubuntu 26.04
Обсуждение (27 +15) | Тип: Проблемы безопасности |
·08.05.2026 Уязвимости Dirty Frag, изменяющие страничный кэш для получения root в любых дистрибутивах Linux (204 +32)
  В ядре Linux выявлены две уязвимости, по своей сути аналогичные несколько дней назад раскрытой уязвимости Copy Fail, но проявляющиеся в других подсистемах - xfrm-ESP и RxRPC. Серии уязвимостей присвоено кодовое имя Dirty Frag (также встречается упоминание Copy Fail 2). Уязвимости позволяют непривилегированному пользователю получить права root, перезаписав данные процесса в страничном кэше. Доступен эксплоит, работающий во всех актуальных дистрибутивах Linux. Информация об уязвимости раскрыта до публикации исправлений, но есть обходной метод блокирования проблемы.

Dirty Frag охватывает две разные уязвимости: первая в модуле xfrm-ESP, используемом для ускорения операций шифрования в IPsec с использованием протокола ESP (Encapsulating Security Payload), а вторая в драйвере RxRPC, реализующем семейство сокетов AF_RXRPC и одноимённый RPC-протокол, работающий поверх UDP. Каждая из уязвимостей по-отдельности позволяет добиться получения прав root. Уязвимость в xfrm-ESP проявляется в ядре Linux с января 2017 года, а уязвимость в RxRPC - с июня 2023 года. Обе проблемы вызваны оптимизациями, допускающими прямую запись в страничный кэш.

Для эксплуатации уязвимости в xfrm-ESP у пользователя должны быть права на создание пространств имён, а для эксплуатации уязвимости в RxRPC должна быть возможность загрузки модуля ядра rxrpc.ko. Например, в Ubuntu в правилах AppArmor непривилегированному пользователю запрещено создание пространств имён, но по умолчанию загружается модуль rxrpc.ko. В каких-то дистрибутивах отсутствует модуль rxrpc.ko, но не блокируется создание пространств имён. Выявивший проблему исследователь подготовил комбинированный эксплоит, способный атаковать систему через обе уязвимости, что позволяет эксплуатировать проблему во всех крупных дистрибутивах. Работа эксплоита подтверждена в Ubuntu 24.04.4 с ядром 6.17.0-23, RHEL 10.1 с ядром 6.12.0-124.49.1, openSUSE Tumbleweed с ядром 7.0.2-1, CentOS Stream 10 c ядром 6.12.0-224, AlmaLinux 10 с ядром 6.12.0-124.52.3 и Fedora 44 с ядром 6.19.14-300.

Как и в случае с уязвимостью Copy Fail, проблемы в xfrm-ESP и RxRPC вызваны выполнением расшифровки данных по месту c использованием функции splice(), передающей данные между файловыми дескрипторами и каналами (pipe) без копирования, путём передачи ссылок на элементы в страничном кэше. Смещения для операции записи рассчитывались без должных проверок, учитывающих использование прямой ссылки на элементы в страничном кэше, что позволяло через отправку специально оформленных запросов перезаписать 4 байта по выбранному смещению и изменить находящееся в страничном кэше содержимое любого файла.

Все операции чтения из файлов в первую очередь отдают содержимое из страничного кэша. В случае модификации данных в страничном кэше операции чтения из файла приведут к возвращению не реально хранимой на накопителе информации, а подменённых данных. Эксплуатация уязвимости сводится к изменению страничного кэша для исполняемого файла с флагом suid root. Например, для получения прав root можно прочитать исполняемый файл /usr/bin/su для его помещения в страничный кэш, после чего добиться подстановки своего кода в загруженное в страничный кэш содержимого этого файла. Последующий запуск утилиты "su" приведёт к тому, что в память будет загружен не оригинальный исполняемый файл с накопителя, а изменённая копия из страничного кэша.

Раскрытие информации об уязвимостях и скоординированный выпуск обновлений с устранением проблем было намечено на 12 мая, но из-за утечки информации сведения об уязвимости пришлось опубликовать до публикации исправлений. В конце апреля в публичном списке рассылки netdev были опубликованы патчи к rxrpc, ipsec и xfrm, без упоминания, что они связаны с устранением уязвимости. 5 мая мэйнтейнер подсистемы IPsec принял в git-репозиторий netdev изменение c предлагаемым исправлением в модуле xfrm-esp, описание к которому во многом повторяло описание проблемы, приведшей к уязвимости Copy Fail в модуле algif_aead. Один из исследователей безопасности заинтересовался этим исправлением, сумел создать рабочий эксплоит и опубликовал его, не зная о том, что на раскрытие сведений о проблеме до 12 мая введено эмбарго.

Обновления с исправлениями для ядра Linux и пакетов с ядром в дистрибутивах пока не опубликованы, но доступны устраняющие проблемы патчи - xfrm-esp и rxrpc. CVE-идентификаторы не присвоены, что усложняет отслеживание обновления пакетов в дистрибутивах. В качестве обходного пути защиты можно заблокировать загрузку модулей ядра esp4, esp6 и rxrpc:


   sh -c "printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf; rmmod esp4 esp6 rxrpc 2>/dev/null; true"

Дополнение: Уязвимостям присвоены идентификаторы CVE-2026-43284 и CVE-2026-43500. Выпущены корректирующие релизы ядра Linux с устранением уязвимости в xfrm-esp (уязвимость в rxrpc остаётся неисправленной): 7.0.5, 6.18.28, 6.12.87, 6.6.138, 6.1.172, 5.15.206, 5.10.255. Статус устранения уязвимостей в дистрибутивах можно оценить на данных страницах: Debian, Ubuntu, SUSE/openSUSE, RHEL, Gentoo, Arch, Fedora, ROSA.

  1. OpenNews: Уязвимость в ядре Linux, позволяющая исказить файлы, доступные только для чтения
  2. OpenNews: Критическая уязвимость в ядре Linux, уже эксплуатируемая злоумышленниками
  3. OpenNews: В ядре Linux выявлен новый вариант уязвимости Dirty COW
  4. OpenNews: Атака по определению состояния памяти процессов при помощи страничного кэша
  5. OpenNews: Copy Fail - уязвимость в ядре Linux, позволяющая получить root в большинстве дистрибутивов
Обсуждение (204 +32) | Тип: Проблемы безопасности | Интересно
·07.05.2026 Релиз Mesa 26.1, свободной реализации OpenGL и Vulkan (81 +26)
  После трёх месяцев разработки представлен релиз свободной реализации API OpenGL и Vulkan - Mesa 26.1.0. Первый выпуск ветки Mesa 26.1.0 имеет экспериментальный статус - после проведения окончательной стабилизации кода будет выпущена стабильная версия 26.1.1.

В Mesa 26.1 доступна поддержка графического API Vulkan 1.4 в драйверах ANV для GPU Intel, RADV для GPU AMD, NVK для GPU NVIDIA, HoneyKrisp (hk) для GPU Apple, Turnip для GPU Qualcomm, PanVK для GPU ARM Mali, в программном растеризаторе lavapipe (lvp) и в режиме эмулятора (vn). В драйверах v3dv (GPU Broadcom VideoCore для Raspberry Pi 4+) и dzn (реализация Vulkan поверх Direct3D 12) поддерживается Vulkan 1.0, в драйвере kk (KosmicKrisp, Vulkan поверх Metal) - Vulkan 1.1, а драйвере pvr (GPU Imagination PowerVR) - Vulkan 1.2.

В Mesa также обеспечивается полная поддержка OpenGL 4.6 для драйверов iris (GPU Intel Gen 8+), radeonsi (AMD), Crocus (старые GPU Intel Gen4-Gen7.5), AMD (r600), zink, llvmpipe, virgl (виртуальный GPU Virgil3D для QEMU/KVM), freedreno (Qualcomm Adreno), d3d12 (прослойка для организации работы OpenGL поверх DirectX 12) и asahi (GPU AGX, используемый в чипах Apple M1 и M2). Поддержка OpenGL 4.5 доступна для GPU NVIDIA (nvc0). Поддержка OpenGL 3.3 присутствует в драйверах softpipe (программный растеризатор) и nv50 (NVIDIA NV50). В драйверах panfrost (GPU ARM Mali) и v3d (GPU Broadcom VideoCore) поддерживается OpenGL 3.1.

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

  1. OpenNews: Релиз Mesa 26.0, свободной реализации OpenGL и Vulkan
  2. OpenNews: Для Mesa предложен драйвер cluda, позволяющий реализовать OpenCL поверх NVIDIA CUDA
  3. OpenNews: AMD прекратил разработку Vulkan-драйвера AMDVLK в пользу драйвера RADV из Mesa
  4. OpenNews: Из Mesa удалена поддержка API видеоускорения VDPAU в пользу VA-API
  5. OpenNews: В Mesa-драйверы radv и anv добавлена поддержка расширения Vulkan для декодирования видео VP9
Обсуждение (81 +26) | Тип: Программы |
·06.05.2026 Релиз Chrome 148 (109 –10)
  Компания Google опубликовала релиз web-браузера Chrome 148. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается от Chromium использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого от копирования видеоконтента (DRM), системой автоматической установки обновлений, постоянным включением Sandbox-изоляции, поставкой ключей к Google API и передачей RLZ-параметров при поиске. Для тех, кому необходимо больше времени на обновление, отдельно поддерживается ветка Extended Stable, сопровождаемая 8 недель. Следующий выпуск Chrome 149 запланирован на 2 июня.

Основные изменения в Chrome 148 (1, 2, 3, 4):

  • Продолжено развитие AI-режима, позволяющего взаимодействовать с AI-агентом из адресной строки или со страницы, показываемой при открытии новой вкладки. AI-режим даёт возможность задавать сложные вопросы на естественном языке и получать ответы на основе агрегирования информации из наиболее релевантных страниц на заданную тему. При необходимости пользователь может уточнять информацию наводящими вопросами. Режим также позволяет задавать вопросы о содержимом страницы прямо из адресной строки. В Chrome 148 реализована поддержка применения AI-режима для автозаполнения номеров кредитных карт и адресов (после разрешения пользователя). Возможность использования встроенного чат-бота Gemini расширена на 49 стран из Азиатско-Тихоокеанского региона. Отключить загрузку и запуск AI-моделей на локальной системе пользователя можно через настройки "Система > ИИ на устройстве".
  • Добавлена возможность автозаполнения в web-формах номеров водительских удостоверений, паспортов, национальных идентификационных карт, KTN-номеров (Known Traveler Number) и RCN-номеров (Redress Control Number), сохранённых в Google Wallet.
  • Изменено визуальное оформление интерфейса для создания профилей (функциональность осталась прежней).
  • Для ChromeOS реализован режим вертикального отображения вкладок, заменяющий верхнюю горизонтальную панель с кнопками вкладок на боковую панель с вертикальными вкладками. В прошлом выпуске данный режим был предложен для платформ Linux, macOS и Windows.
  • В версии для Android реализована функция "Enhanced autofill", использующая AI-модель для понимания web-форм и автоматического заполнения полей, отталкиваясь от того, как ранее пользователь заполнял похожие формы.
  • В версии для Android появился режим возвращения сайтам приблизительного, а не точного местоположения.
  • Добавлены оптимизации, расширяющие применение протокола HTTP/3. Улучшено определение поддержки HTTP/3 на сайтах.
  • Реализован API Prompt, предоставляющий вызовы для взаимодействия с большими языковыми моделями, позволяющие использовать в запросах текст, изображения и звуковой ввод. Результат возвращается в удобном для разбора структурированном виде. Среди примеров использования упоминаются генерация описания изображений, визуальный поиск, транскрибирование речи, классификация звуков, генерация текста по заданной инструкции и извлечение информации из текста. API реализован с использованием локальной выполняемой большой языковой модели Gemini Nano (модель занимает 4 ГБ, загружается автоматически и устанавливается в виде файла weights.bin в подкаталог OptGuideOnDeviceModel).
  • В SharedWorker добавлена опция "extendedLifetime: true" для сохранения активности обработчика после отключения всех клиентов, что позволяет выполнять асинхронные работы после выгрузки страницы (unload) без необходимости использования Service Worker-ов.
  • CSS-запросы "@container" теперь могут вызываться с использованием только имени контейнера (container-name) без указания типа (container-type).
    
       #container {
         container-name: --foo;
       }
       @container --foo {
         input { background-color: green; }
       }
    
  • В CSS добавлено ключевое слово "revert-rule", позволяющее отменить текущее CSS-правило и применить предыдущее правило.
    
       div {
         display: if(style(--layout: fancy): grid; else: revert-rule);
       }
    
  • Для CSS-свойства "text-decoration-skip-ink" реализована поддержка значения "all", которое предписывает обязательный разрыв линии подчёркивания и зачёркивания при пересечении с текстовыми глифами.
  • В версии для Android добавлена возможность использования API Web Serial для подключения к устройствам с последовательным портом, включая последовательные порты поверх USB или Bluetooth.
  • В элементах <video> и <audio> появилась возможность указания атрибута "loading=lazy" для загрузки видео и звука только после попадания этих элементов в видимую область во время прокрутки страницы.
  • Добавлена поддержка второй версии расширения формата Open Font "avar" (Axis Variation table), которое позволяет шрифту изменять привязки между нормализованными и осевыми значениями.
  • Внесены улучшения в инструменты для web-разработчиков.

Кроме нововведений и исправления ошибок в новой версии устранено 127 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Трём проблемам (целочисленное переполнение в Blink, обращение к уже освобождённой памяти в Chromoting и Mobile) присвоен критический уровень опасности, подразумевающий, что уязвимости позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google учредила 26 премий и выплатила 138 тысяч долларов США (по одной премии в $55000, $43000 и $8000, две премии $16000). Размер 21 вознаграждения пока не определён.

  1. OpenNews: Релиз Chrome 147 с поддержкой вертикальных вкладок и переделанным режимом чтения
  2. OpenNews: 5 критических уязвимостей в Chrome. Оценка работающих в Chrome методов скрытой идентификации
  3. OpenNews: Chrome переходит на двухнедельный цикл подготовки релизов
  4. OpenNews: Поставка ОС Aluminium намечена на 2028 год. Поддержка ChromeOS сохранится до 2034 года
  5. OpenNews: В Chromium решено удалить поддержку XSLT и прекратить использование libxslt и libxml2
Обсуждение (109 –10) | Тип: Программы |
·06.05.2026 Атакующие получили 27 сертификатов, скомпрометировав ПК сотрудников удостоверяющего центра Digicert (66 +20)
  Удостоверяющий центр Digicert раскрыл информацию об инциденте с безопасностью, в результате которого злоумышленники смогли получить сертификаты, пригодные для формирования цифровых подписей к драйверам и приложениям для платформы Windows. Атакующие смогли организовать выполнение своего кода на двух компьютерах сотрудников Digicert, отправив в чат службы поддержки сообщения о проблеме c приложением ZIP-архива со скриншотами. Внутри архива был размещён исполняемый файл в формате scr, содержащий вредоносный код.

В ходе первой атаки, проведённой 2 апреля, четыре попытки доставки вредоносного кода были блокированы внутренними системами обеспечения безопасности, но одна оказалась успешной. Проблема была выявлена и блокирована 3 апреля. После получения жалоб от сторонних исследователей безопасности о выявлении вредоносных приложений, заверенного сертификатами Digicert, 14 апреля был инициирован повторный разбор, показавший, что 4 апреля была скомпрометирована ещё одна рабочая станция аналитика, которая была установлена три года назад и не содержала ПО CrowdStrike, применяемое в Digicert для выявления и блокирования атак.

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

По результатам разбора инцидента было отозвано 60 сертификатов, из которых для 27 удалось отследить прямую связь с атакующим, а 33 отозваны превентивно, так как для них не удалось подтвердить получение клиентом. Часть сертификатов атакующие успели применить для заверения цифровой подписью вредоносного ПО семейства "Zhong Stealer".

  1. OpenNews: Digicert отзывает 50 тысяч TLS-сертификатов с расширенной верификацией
  2. OpenNews: Mozilla, Cloudflare и Facebook представили TLS-расширение для делегирования короткоживущих сертификатов
  3. OpenNews: В Chrome планируют включить механизм Signed HTTP Exchanges (SXG)
  4. OpenNews: Разработчики Mozilla отложили прекращение доверия к сертификатам Symantec
  5. OpenNews: Symantec продаёт удостоверяющий центр компании DigiCert
Обсуждение (66 +20) | Тип: Проблемы безопасности |
·06.05.2026 Автор платформы Bun проводит эксперимент по переписыванию с Zig на Rust (131 –8)
  Джарред Самнер (Jarred Sumner), создатель и основной разработчик серверной JavaScript-платформы Bun, создал Git-ветку, в которой приступил к переписыванию Bun с языка Zig на Rust. Переписывание ведётся с использованием AI-ассистента Claude, для которого сформировано отдельное руководство по портированию. По словам Джарреда пока это лишь эксперимент, а не официальный порт, и высока вероятность, что дальше эксперимента дело не зайдёт и переписанный код не будет использован.

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

В декабре прошлого года проект Bun поглотила компания Anthropic, поэтому у Джарреда есть ресурсы для вовлечения в портирование передовых AI-моделей Claude. Платформа Bun применяется в продуктах Claude Code и Claude Agent SDK, и компания Anthropic заинтересована в повышении её качества и развитии. Bun является одним из самых успешных проектов на языке Zig, при этом у разработчиков Zig и Bun расходятся мнения в отношении применения AI в процессе разработки. В проекте Zig утверждён жёсткий запрет применения больших языковых моделей при подготовке pull-запросов, issue и комментариев (запрещён даже перевод через AI неанглоязычных комментариев).

Введение подобных ограничений объясняется разработчиками Zig негативным опытом в рецензировании созданных через AI pull-запросов, которые отнимают ресурсы и время (например, отмечаются бессмысленные изменения, AI-галлюцинации и раздутые коммиты в 10 тысяч строк). Кроме того, проект Zig позиционирует себя как ориентированный на участников, а не вносимый ими вклад в разработку - главной целью принятия pull-запросов называется не добавление нового кода, а помощь в развитии новых участников.

Автор Bun не согласен с запретом AI в Zig и полагает, что AI-слоп останется ностальгическим пережитком 2025 и 2026 годов, а разработка открытого ПО эволюционирует до запрета приёма кода от людей. Люди будут обсуждать проблемы, ставить задачи и расставлять приоритеты, а написание кода и отправка изменений в репозитории станет уделом AI. В качестве причины экспериментов с переписыванием на Rust также отмечается желание устранить проблемы в Bun, вызванные утечками памяти, и неприемлемая для крупных проектов политика Zig в отношении принятия в язык изменений, нарушающих совместимость.

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

JavaScript-платформа Bun развивается как высокопроизводительный аналог платформ Node.js и Deno. Проект разрабатывается с оглядкой на обеспечение совместимости с серверными приложениями для Node.js и поддерживает большую часть API Node.js. В состав платформы входит набор инструментов для создания и выполнения приложений на языках JavaScript и TypeScript, а также runtime для выполнения JavaScript-приложений без браузера, пакетный менеджер (совместимый с NPM), инструментарий для выполнения тестов, система сборки самодостаточных пакетов и прослойка для встраивания обработчиков, написанных на языке Си. По производительности Bun заметно обгоняет Deno и Node.js (в тестах на базе фреймворка React платформа Bun в 2 раза опережает Deno и почти в 5 раз Node.js). Для выполнения JavaScript задействован JavaScript-движок JavaScriptCore и компоненты проекта WebKit с дополнительными патчами.

  1. OpenNews: Доступна серверная JavaScript-платформа Bun 1.0, более быстрая, чем Deno и Node.js
  2. OpenNews: JavaScript-платформа Bun перешла в руки компании Anthropic
  3. OpenNews: Компоненты браузера Ladybird начали переписывать на Rust при помощи AI
  4. OpenNews: Переписывание кода при помощи AI для перелицензирования открытых проектов
  5. OpenNews: В JavaScript-платформе Bun добавлена поддержка вызова кода на языке Си
Обсуждение (131 –8) | Тип: К сведению |
·06.05.2026 Доменная зона DE на несколько часов была выведена из строя из-за DNSSEC (46 +17)
  Произошёл массовый сбой в работе доменной зоны "DE", применяемой в Германии. Проблемы возникли из-за ошибки в настройке DNSSEC для корневой зоны "DE", совершённой организацией DENIC, отвечающей за домен первого уровня "DE". С 5 мая 22:30 по 6 мая 1:30 (MSK) попытка резолвинга доменов в зоне "DE" через DNS-серверы, применяющие DNSSEC для проверки достоверности данных, завершалась ошибкой. На DNS-серверах, применяющих DNSSEC, сбой наблюдался и при резолвинге доменов, напрямую не использующих DNSSEC.

Проблема затронула многие DNS-резолверы провайдеров и публичные DNS-сервисы, такие как 1.1.1.1 и 8.8.8.8. В качестве временной меры компания Cloudflare в своём DNS-сервисе 1.1.1.1 отключила проверку подлинности через DNSSEC для доменов в зоне "DE". Пользователи DNS-резолверов, на которых DNSSEC отключён, не пострадали.

Официально причины инцидента пока не объявлены. Предполагается, что проблема возникла из-за ошибки при обновлении цифровой подписи для зоны "DE", произведённом 5 мая в 20:49 (MSK). Применяемый для верификации домена первого уровня ключ является корнем доверия для остальных ключей, используемых в доменах второго уровня, и, в свою очередь, использует ключ домена "." в качестве вышестоящего для подтверждения своего доверия.

В результате проведённой в доменной зоне "DE" операции криптографическая подпись (RRSIG - Resource Record Signature) для DNS-записи NSEC3 оказалась некорректной. Запись NSEC3 применяется для подтверждения подлинности DNS-ответов об отсутствии домена, чтобы исключить атаки по подстановке ответов NXDOMAIN для существующих доменов. В случае проблем с цифровой подписью для записи NSEC3 DNS-сервер не может удостовериться в подлинности хэшей с данными о существовании доменов и, соответственно, не может произвести проверку, считает ответ поддельным и на запросы о любом домене выдаёт ошибку.

  1. OpenNews: Уязвимости KeyTrap и NSEC3, затрагивающие большинство реализаций DNSSEC
  2. OpenNews: Сбой в доменной зоне RU из-за ошибки при замене ключей DNSSEC
  3. OpenNews: Ошибка при обновлении ключей DNSSEC привела к нарушению работы доменной зоны NZ
  4. OpenNews: ICANN призывает к повсеместному внедрению DNSSEC
  5. OpenNews: Попытка получения TLS-сертификатов для чужих доменов mobi, используя просроченный домен с WHOIS-сервисом
Обсуждение (46 +17) | Тип: К сведению |
·05.05.2026 Опубликована платформа Node.js 26.0.0 (47 +5)
  Состоялся релиз Node.js 26.0.0, платформы для выполнения сетевых приложений на языке JavaScript. Node.js 26.0 отнесён к веткам с длительным сроком поддержки, но данный статус будет присвоен только в октябре, после проведения стабилизации. Поддержка Node.js 26.x будет осуществляться до мая 2029 года. Сопровождение прошлой LTS-ветки Node.js 24.x будет осуществляться до 30 апреля 2028 года, а позапрошлой 22.x - до 30 апреля 2027 года. Сопровождение LTS-ветки 20.x прекращено 30 апреля 2026 года, а промежуточной ветки Node.js 25.x будет прекращено 1 июня 2026 года.

Основные улучшения:

  • Включён по умолчанию API Temporal, предлагающий альтернативный набор методов для работы с датами и временем. API позволяет манипулировать датами с учётом и без учёта часовых поясов, конвертировать время, форматировать вывод и выполнять арифметические операции со временем. Время может задаваться в независимом от часового пояса представлении (Temporal.PlainDate, Temporal.PlainTime, Temporal.PlainDateTime), с привязкой к часовому поясу (Temporal.ZonedDateTime) и в эпохальном представлении (Temporal.Instant - число наносекунд с 1 января 1970 года).
  • Движок V8 обновлён до версии 14.6, применяемой в Chromium 146. Из улучшений по сравнению с прошлым выпуском Node.js отмечена возможность объединять несколько итераторов в один с помощью метода Iterator.concat(), а также реализация спецификации "upsert" для упрощения работы с коллекциями пар ключ/значение в JavaScript-объектах Map и WeakMap.
  • HTTP-клиент undici обновлён до ветки 8.x.
  • Удалён метод http.Server.prototype.writeHeader(), вместо которого следует использовать http.Server.prototype.writeHead().

Платформа Node.js может быть использована как для серверного сопровождения работы Web-приложений, так и для создания обычных клиентских и серверных сетевых программ. Для расширения функциональности приложений для Node.js подготовлена большая коллекция модулей, в которой можно найти модули с реализацией серверов и клиентов HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, модули для интеграции с различными web-фреймворками, обработчики WebSocket и Ajax, коннекторы к СУБД (MySQL, PostgreSQL, SQLite, MongoDB), шаблонизаторы, CSS-движки, реализации криптоалгоритмов и систем авторизации (OAuth), XML-парсеры.

Для обработки большого числа параллельных запросов Node.js задействует асинхронную модель запуска кода, основанную на обработке событий в неблокирующем режиме и определении callback-обработчиков. В качестве способов мультиплексирования соединений поддерживаются такие методы, как epoll, kqueue, /dev/poll и select. Для мультиплексирования соединений используется библиотека libuv, которая является надстройкой над libev в системах Unix и над IOCP в Windows. Для создания пула потоков (thread pool) задействована библиотека libeio, для выполнения DNS-запросов в неблокирующем режиме интегрирован c-ares. Все системные вызовы, вызывающие блокирование, выполняются внутри пула потоков и затем, как и обработчики сигналов, передают результат своей работы обратно через неименованный канал (pipe).

Выполнение JavaScript-кода обеспечивается через задействование разработанного компанией Google движка V8. По своей сути Node.js похож на фреймворки Perl AnyEvent, Ruby Event Machine, Python asyncio и реализацию событий в Tcl, но цикл обработки событий (event loop) в Node.js скрыт от разработчика и напоминает обработку событий в web-приложении, работающем в браузере.

  1. OpenNews: Опубликована платформа Node.js 25.0.0
  2. OpenNews: Автор Node.js добивается отмены торговой марки JavaScript
  3. OpenNews: Опубликована платформа Node.js 24.0.0
  4. OpenNews: Доступна платформа Deno 2.0, развиваемая автором Node.js
  5. OpenNews: Доступна серверная JavaScript-платформа Bun 1.0, более быстрая, чем Deno и Node.js
Обсуждение (47 +5) | Тип: Программы |
·05.05.2026 Проект PHP перешёл на лицензию BSD-3 и изъял из обращения лицензию PHP License (79 +26)
  Разработчики языка программирования PHP направили в организацию OSI (Open Source Initiative) уведомление о добровольном выводе из обращения лицензии PHP License 3.01. Заявлено, что после нескольких лет работы код инструментария PHP полностью переведён на лицензию BSD-3 и в проекте больше не осталось кода под старой лицензией PHP License 3.01. Текст новой версии лицензии PHP License заменён на копию лицензии BSD-3.

Ранее интерпретатор PHP и движок Zend Engine распространялись под разными лицензиями PHP License и Zend Engine License. Переход на общую лицензию BSD-3 упростит условия лицензирования, обеспечит совместимость с GPL и решит давние проблемы, сохранив при этом все права пользователей и разработчиков. Ранее применявшиеся лицензии были признаны Фондом СПО несовместимыми с GPL из-за пункта, не позволяющего без получения письменного разрешения использовать слово PHP при продвижении производных продуктов.

Изначально ветки PHP 1.x и 2.x поставлялись под лицензией GPLv2, но ветка PHP 3 была переведена на использование двух лицензий - PHP License и GPL. В PHP 4 лицензия была изменена ещё раз - основной код стал распространяться только под лицензией PHP License, а движок Zend Engine, являющийся основной интерпретатора PHP, был размещён в подкаталоге "Zend/" под отдельной лицензией Zend Engine License. Zend Engine License, как и PHP License, содержит ограничения в отношении использования слова Zend в производных продуктах, но дополнительно требует упоминания использования движка в рекламных материалах.

После перехода на лицензию BSD-3 авторские права всех участников разработки сохранились, а права пользователей остались без изменений. Новая лицензия не налагает дополнительных ограничений и не ущемляет имеющихся прав по использованию, модификации и распространению продукта. Лицензии PHP и Zend основаны на тексте 4-пунктовой лицензии BSD и переход на лицензию BSD-3 лишь привёл к удалению пунктов, определяющих требования в отношении использования бренда "PHP", а также к прекращению действия условия, предписывающего упоминать об использовании свободного проекта PHP в производных продуктах.

Cмена лицензии не потребовала получения отдельного согласия от каждого разработчика, так как в тексте лицензий PHP и Zend определены полномочия, позволяющие PHP Group вносить изменения в лицензию и выпускать новые версии лицензии. Для перехода на лицензию BSD-3 было достаточно одобрения членов PHP Group и получения письменного подтверждения от юристов компании Perforce Software, которой принадлежит компания Zend Technologies. Процесс перехода на новую лицензию оформлен как обновление кода до версий PHP License v4 и Zend Engine License v3, текст которых совпадает с текстом лицензии BSD-3.

  1. OpenNews: Релиз языка программирования PHP 8.5
  2. OpenNews: Копилефт лицензия CCAI, учитывающая применение для обучения AI-моделей
  3. OpenNews: Переписывание кода при помощи AI для перелицензирования открытых проектов
  4. OpenNews: Выпуск дистрибутива Apertis 2026, позволяющего не использовать код под лицензией GPLv3
  5. OpenNews: Фонд СПО и SFC призвали ONLYOFFICE удалить ограничения, добавленные поверх лицензии AGPL
Обсуждение (79 +26) | Тип: К сведению |
·05.05.2026 Выпуск операционной системы ToaruOS 2.3 (68 +41)
  Опубликован выпуск Unix-подобной операционной системы ToaruOS 2.3, написанной с нуля и поставляемой со своим ядром, загрузчиком, стандартной Си-библиотекой, пакетным менеджером, компонентами пространства пользователя и графическим интерфейсом с композитным оконным менеджером. Изначально проект развивался в Иллинойсском университете как исследовательская работа в области создания новых композитных графических интерфейсов, но затем трансформировался в отдельную операционную систему. Код проекта написан на языке Си и распространяется под лицензией BSD. Для загрузки подготовлен live-образ, размером 7.4 МБ, который можно протестировать в QEMU, VMware или VirtualBox.

В основе ToaruOS лежит ядро, использующее гибридную модульную архитектуру, сочетающую монолитную основу и средства для использования загружаемых модулей, в виде которых оформлено большинство имеющихся драйверов устройств, таких как драйверы диска (PATA и ATAPI), ФС EXT2 и ISO9660, framebuffer, клавиатуры, мыши, сетевых карт (AMD PCnet FAST, Realtek RTL8139 и Intel PRO/1000), звуковых чипов (Intel AC'97), а также дополнений VirtualBox для гостевых систем. Ядро поддерживает Unix-потоки, TTY, виртуальную ФС, псевдо-ФС /proc, многопоточность, IPC, ramdisk, ptrace, разделяемую память, многозадачность и другие типовые возможности.

Cистема снабжена композитным оконным менеджером, поддерживает динамически связываемые исполняемые файлы в формате ELF, многозадачность, графический стек, может выполнять Python 3 и GCC. В качестве файловой системы применяется ext2. Загрузчик поддерживает BIOS и EFI. Сетевой стек позволяет использовать API сокетов в стиле BSD-систем и поддерживает сетевые интерфейсы, включая loopback.

Из собственных приложений выделяется похожий на Vi редактор кода Bim, который используется последние несколько лет для разработки специфичных для ToaruOS приложений, таких как файловый менеджер, эмулятор терминала, графическая панель с поддержкой виджетов, пакетный менеджер, а также библиотеки для поддержки изображений (PNG, JPEG) и TrueType-шрифтов. Для ToaruOS выполнено портирование таких программ, как Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, Super Nintendo emulator, Bochs и т.п.

Проектом также развивается собственный динамический язык программирования Kuroko, рассчитанный на замену Python при разработке утилит и пользовательских приложений для системы. Язык по синтаксису напоминает Python (позиционируется как сокращённый диалект Python с явным определением переменных) и отличается очень компактной реализацией. Поддерживается компиляция и интерпретация байткода. Интерпретатор байткода предоставляет сборщик мусора, поддерживает многопоточность без применения глобальной блокировки. Компилятор и интерпретатор могут быть собраны в форме небольшой разделяемой библиотеки (~500КБ), интегрируемой с другими программами и расширяемой через C API. Кроме ToaruOS язык может использоваться в Linux, macOS, Windows и запускаться в браузерах с поддержкой WebAssembly.

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

  • В эмулятор терминала добавлена поддержка вкладок, переключаться между которыми можно последовательностью Alt-цифра. Реализована эмуляция жирного начертания шрифтов через двойное наложение глифов. Добавлены подменю "Terminal state" для включения показа состояния различных режимов и "Send signal" для отправки сигналов фоновым процессам.
  • Реализован просмотрщик системных руководств, поддерживающий man-страницы в формате roff.
  • В контекстное меню добавлено подменю для управления мозаичной компоновкой окон.
  • В ядре реализованы новые системные вызовы, среди которых pread/pwrite, sigsuspend, sigqueue, lchown, pipe2, dup3, getrusage и fcntl. Добавлена поддержка флагов FD_CLOEXEC и FD_CLOFORK. Реализована поддержка рандомизации адреса загрузки ядра. ABI системных вызовов переведено на использование инструкций syscall/sysret.
  • Значительно расширены возможности виртуальной консоли (TTY), обеспечена эмуляция текстового режима VGA на базе фреймбуфера.
  • В версии для архитектуры Aarch64 реализована возможность запуска в виртуальных машинах на базе QEMU.
  • В сетевой стек добавлена поддержка одновременной работы с несколькими сокетами ICMP.
  • В стандартную библиотеку libc добавлены функции getdelim, getline, scandir, telldir, rewinddir, seekdir, ftruncate, fchmod, fchown, popen, pclose, sig2str, str2sig.
  • Добавлены новые стандартные утилиты rmdir, uniq, cmp, zcat, realpath, id, nohup, cksum. Добавлены новые опции в ls, grep и fgrep. Переписаны утилиты ps, top, pstree, killall и pidof, которые переведены на новую библиотеку libtoaru_procfs, унифицирующую работу с псевдо-ФС /proc. Расширен командный интерпретатор esh.
  • Добавлена утилита check-image для проверки возможности загрузки изображения графической библиотекой и вывода размера изображения.
  • Язык программирования Kuroko обновлён до версии 1.5rc2.
  • До версии 3.2 обновлён текстовый редактор Bim, созданный с оглядкой на Vim. В новой версии улучшена подсветка синтаксиса, расширена поддержка скриптов на языке Kuroko и добавлена новая система автодополнения ввода.

  1. OpenNews: Релиз операционной системы FRANK OS 1.0
  2. OpenNews: Обновление операционной системы MenuetOS 1.57.70, написанной на ассемблере
  3. OpenNews: Операционная система Munal на Rust
  4. OpenNews: Google открыл код операционной системы для умных часов Pebble
  5. OpenNews: Пятый бета-выпуск операционной системы Haiku R1
Обсуждение (68 +41) | Тип: Программы |
·05.05.2026 Уязвимости в Nix и Lix, позволяющие поднять привилегии в системе (46 +14)
  В пакетных менеджерах Nix и Lix выявлена уязвимость, позволяющая выполнить код с правами фонового процесса, который в NixOS и многопользовательских установках выполняется под пользователем root. Проблема (CVE не присвоен) проявляется в фоновом процессе nix-daemon, применяемом для организации доступа непривилегированных пользователей к сборочным операциям и хранилищу пакетов.

Уязвимость возникает из-за отсутствия ограничения рекурсивной обработки директорий в коде для разбора архивов NAR (Nix Archive), что можно использовать для инициирования исчерпания стека сопрограмм и перезаписи содержимого кучи (heap), размещённой после стека без сторожевых страниц памяти. Проблема может быть эксплуатирована любым пользователем, способным устанавливать соединения к nix-daemon. По умолчанию все пользователи имеют такую возможность, что позволяет поднять свои привилегии до пользователя root в многопользовательских установках Nix.

Проблема решена ограничением уровня рекурсии в 64 вложенных директории, добавлением сторожевых страниц памяти между стеком и кучей и реализацией дополнительных проверок символических ссылок в NAR. В Nix уязвимость проявляется начиная с версии 2.24.4 и устранена в выпусках 2.34.7, 2.33.6, 2.32.8, 2.31.5, 2.30.5, 2.29.4, 2.28.7. В Lix уязвимость появилась в выпуске 2.93.0 и устранена в обновлениях 2.93.4, 2.94.2 и 2.95.2. Пакетный менеджер Guix уязвимость не затрагивает.

Помимо этого в опубликованных обновлениях Nix устранена ещё одна уязвимость (CVE отсутствует), которой присвоен средний уровень опасности (4.3 из 10). Проблема проявляется начиная с выпуска Nix 2.24.7 и позволяет организовать запись файлов в область за пределами корневого каталога, в который осуществляется распаковка архива. Уязвимость эксплуатируется через создание в tar-файлах элементов с абсолютными файловыми путями. При распаковке подобных архивов командой "nix-prefetch-url --unpack" или "nix store prefetch-file --unpack" файлы с абсолютными путями извлекаются как есть, без преобразования в относительный путь.

  1. OpenNews: Уязвимости в пакетных менеджерах Nix, Lix и Guix
  2. OpenNews: В NixOS предложен метод защиты от подстановки бэкдоров, таких как в XZ
  3. OpenNews: Уязвимости в PCP и Nix, позволяющие поднять привилегии в системе
  4. OpenNews: Доступен дистрибутив NixOS 25.11, использующий пакетный менеджер Nix
  5. OpenNews: Опасные уязвимости в GStreamer, CUPS, wolfSSL, OpenSSL, OpenClaw, Nix и ядре Linux
Обсуждение (46 +14) | Тип: Проблемы безопасности |
Следующая страница (раньше) >>



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

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