The OpenNET Project / Index page

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

·10.05.2026 В Debian утверждена обязательная поддержка воспроизводимых сборок пакетов (23 +9)
  Команда, отвечающая за формирование релизов Debian, объявила о переводе воспроизводимой пересборки пакетов в число обязательных возможностей. Вчера в сборочную систему внесены изменения, блокирующие перенос в репозиторий новых пакетов, не поддерживающих воспроизводимую сборку. В репозитории testing также запрещено обновление существующих пакетов, в которых выявлены регрессии с воспроизводимостью сборки.

В Debian 13, насчитывающем 36427 исходных пакетов, поддержка повторяемых сборок составляет 96.9% для архитектуры x86_64 и 96.8% для архитектуры ARM64. В репозиториях Debian Testing уровень повторяемых сборок оценён в 94.5% для архитектуры ARM64 и 75.7% для x86_64 при пересборке 37809 исходных пакетов. Тест повторяемых сборок в репозитории Debian Testing провален для 1141 пакета (3%), а у 7952 пакетов (21%) возникли общие проблемы при компиляции из исходного кода.

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

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

  1. OpenNews: В Arch Linux обеспечена воспроизводимая сборка образов контейнеров
  2. OpenNews: openSUSE тестирует поддержку повторяемых сборок
  3. OpenNews: В Live-образах Debian 12 реализована поддержка повторяемых сборок
  4. OpenNews: Утверждено обеспечение повторяемых сборок в Fedora 43
Обсуждение (23 +9) | Тип: К сведению |
·10.05.2026 Опубликован музыкальный проигрыватель Nocturne 1.0 (22 –4)
  Представлен выпуск Nocturne 1.0, музыкального проигрывателя с возможностями управления музыкальной библиотекой и подключения к сетевым музыкальным сервисам. Код проекта написан на языке Python с использованием виджетов libadwaita и мультимедийной библиотеки gstreamer, и распространяется под лицензией GPLv3. Готовые сборки доступны в формате Flatpak.

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

  • Поддержка воспроизведения локальных файлов, а также музыки из потоковых сервисов и интернет-радио.
  • Управление музыкальной библиотекой с использованием музыкального сервера Navidrome и возможностью группировки по альбомам, музыкантам и спискам воспроизведения.
  • Наличие визуализатора звука и эквалайзера.
  • Автоматическая загрузка и отображение текстов песен для проигрываемых композиций. Режим караоке с симуляцией пословного показа лирики.
  • Возможность обращения к внешним музыкальным библиотекам при помощи протоколов OpenSubsonic и Jellyfin.
  • Поддержка протокола MPRIS (Media Player Remote Interfacing Specification) для управления воспроизведением (например, для управления из панельных виджетов).
  • Возможность работы в offline-режиме.



Среди изменений в выпуске Nocturne 1.0:

  • Поддержка изменения максимального битрейта.
  • Поддержка нормализации громкости (ReplayGain).
  • Настройка для отображения плеера в боковой панели.
  • Режим воспроизведения без пауз между треками (Gapless).
  • Возможность группировки песен в альбоме в привязке к дискам.
  • Опция для динамической смены фона основного окна.
  • Возможность динамической загрузки списков воспроизведения и альбомов.
  • Поддержка технологии входа Quick Connect в Jellyfin.

  1. OpenNews: Новая версия музыкального проигрывателя DeaDBeeF 1.10.1
  2. OpenNews: Выпуск музыкального проигрывателя Qmmp 2.3
  3. OpenNews: Выпуск музыкального проигрывателя Audacious 4.5
  4. OpenNews: Выпуск музыкального проигрывателя Amarok 3.3
  5. OpenNews: Опубликован музыкальный проигрыватель Aqualung 2.0, переведённый на GTK3
Обсуждение (22 –4) | Тип: Программы |
·10.05.2026 Бета-выпуск языка программирования Mojo 1.0 (46 +5)
  Представлен первый бета выпуск языка программирования 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
Обсуждение (46 +5) | Тип: Программы |
·10.05.2026 Выпуск lay, автокорректора слов, введённых не в той раскладке, для GNOME c Wayland (58 +5)
  Опубликован проект 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: Пакет StarDict в Debian отправляет выделенный текст на внешние серверы
Обсуждение (58 +5) | Автор: radislabus-star | Тип: Программы |
·09.05.2026 Уязвимость в системном вызове execve, предоставляющая root-доступ во FreeBSD (151 +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, допускающая удалённое выполнение кода
Обсуждение (151 +26) | Тип: Проблемы безопасности |
·08.05.2026 Предложен killswitch для экстренного отключения уязвимой функциональности в ядре Linux (93 +30)
  Саша Левин (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
Обсуждение (93 +30) | Тип: К сведению |
·08.05.2026 Скомпрометирован официальный Twitter-канал Ubuntu (27 +16)
  Следом за 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 +16) | Тип: Проблемы безопасности |
·08.05.2026 Уязвимости Dirty Frag, изменяющие страничный кэш для получения root в любых дистрибутивах Linux (206 +33)
  В ядре 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 в большинстве дистрибутивов
Обсуждение (206 +33) | Тип: Проблемы безопасности | Интересно
·07.05.2026 Релиз Mesa 26.1, свободной реализации OpenGL и Vulkan (82 +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
Обсуждение (82 +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) | Тип: К сведению |
Следующая страница (раньше) >>



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

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