Профиль: Аноним (вход | регистрация) неRU opennet.me  
The OpenNET Project / Index page

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

·11.07 GhostLock, BadEpoll и Januscape - уязвимости в ядре Linux, позволяющие получить права root и обойти изоляцию KVM (11 +3)
  Раскрыта информация об уязвимости (CVE-2026-43499) в ядре Linux, получившей кодовое имя GhostLock и позволяющая непривилегированному локальному пользователю получить права root в системе, а также выйти из изолированных контейнеров. При использовании в сочетании с другими уязвимостями в браузерах, выявленная проблема может применяться для удалённого выполнения кода с правами root при открытии специально оформленной web-страницы. Проблема проявляется начиная с ядра Linux 2.6.39 (2011 год).

Утверждается, что уязвимость может быть эксплуатиована во всех дистрибутивах, выпущенных за последние 15 лет. Имеется рабочий эксплоит, создатели которого получили от Google премию в $92337 за успешное повышение привилегий в окружении с ядром KernelCTF (Capture the Flag), включающем дополнительные патчи для блокирования типовых методов работы эксплоитов. Степень успешности работы эксплоита оценивается в 97%. Уязвимость выявлена при помощи AI-инструментария VEGA.

Патч с исправлением принят в кодовую базу ядра 21 апреля и вошёл в состав выпусков ядра 7.1.0, 6.18.36, 6.12.95, 6.6.144 и 6.1.177. Статус устранения уязвимостей в дистрибутивах можно оценить на данных страницах: Debian, Ubuntu, SUSE/openSUSE, RHEL, AlmaLinux, Gentoo, Arch, Fedora. Обходные пути блокирования проблемы отсутствуют.

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

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

В предложенном эксплоите осуществляется перезапись указателя в таблице функций inet6_protos[IPPROTO_UDP], после чего на loopback-интерфейс по IPv6 отправляется UDP-пакет, при обработке которого осуществляется вызов обработчика, указатель на который был подменён на прошлом этапе. Для получения root-доступа получивший управление код эксплоита прописывает в /proc/sys/kernel/core_pattern свой обработчик, вызываемый с правами root при крахе процессов.


Помимо рассмотренной проблемы в ядре Linux выявлено ещё несколько опасных уязвимостей:

  • Januscape (CVE-2026-53359) - обращение к памяти после её освобождения (use-after-free) в компонентах гипервизора KVM, выполняемых на стороне виртуальной машины для эмуляции блока управления памятью (MMU) и трансляции адресов между хостом и гостевой системой. Уязвимость проявляется на системах с процессорами Intel и AMD и позволяет получить доступ с правами root к хост-окружению при наличии доступа с правами root в гостевой системе.

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

    Проблема вызвана ошибкой, допущенной 16 лет назад, и устранена в обновлениях 7.1.3, 6.18.38, 6.12.95, 6.6.144 и 6.1.177. Статус устранения уязвимостей в дистрибутивах можно оценить на данных страницах: Debian, Ubuntu, SUSE/openSUSE, RHEL, Gentoo, Arch, Fedora. За выявление уязвимости исследователь получил от Google вознаграждение в 250 тысяч долларов в рамках инициативы kvmCTF.

    Для выхода из гостевой системы на серверах на процессорами ARM64 тем же исследователем выявлена другая уязвимость ITScape (CVE-2026-46316), вызванная состоянием гонки в коде эмуляции vGIC-ITS (Interrupt Translation Service) в KVM. Для данной проблемы также опубликован прототип эксплоита.

  • Bad Epoll (CVE-2026-46242) - состояние гонки, приводящее к обращению к памяти после её освобождения, в подсистеме ядра epoll. Уязвимость позволяет локальному непривилегированному пользователю выполнить код с правами root. Проблема примечательна тем, что даёт возможность атаковать не только классические Linux-дистрибутивы, но и прошивки на базе платформы Android, а также не блокируется sandbox-изоляцией в Chrome. Рабочий эксплоит был продемонстрирован на соревновании kernelCTF (Google выплатил автору $71337). Надёжность работы эсплоита оценена в 99%.

    Проблема проявляется начиная с ядра Linux 6.4 (2023 год). О проблеме было сообщено разработчикам ядра 17 февраля, но исправление удалось разработать после нескольких неудачных попыток только 24 апреля. Проблема устранена в ядрах 6.18.24, 6.12.83, 6.6.136. Статус устранения уязвимостей в дистрибутивах можно оценить на данных страницах: Debian, Ubuntu, SUSE/openSUSE, RHEL, Gentoo, Arch, Fedora.

  • CVE-2026-46215 - обращение к памяти после её освобождение в реализации ioctl DRM_IOCTL_GEM_CHANGE_HANDLE в подсистеме DRM (Direct Rendering Manager). Локальный пользователь, имеющий доступ к устройствам /dev/dri/renderD* (сервис systemd-logind предоставляет доступ всем пользователям при запуске графического сеанса во всех крупных дистрибутивах), может получить права root в системе. Имеется эксплоит. Проблема проявляется начиная с ядра 6.18 и устранена в обновлениях 7.0.9 и 6.18.32. Статус устранения уязвимостей в дистрибутивах можно оценить на данных страницах: Debian, Ubuntu, SUSE/openSUSE, RHEL, Gentoo, Arch, Fedora.

  1. Главная ссылка к новости
  2. OpenNews: PEdit-CoW и DirtyClone - уязвимости в ядре Linux, позволяющие получить root через изменение страничного кэша
  3. OpenNews: CIFSwitch - уязвимость в CIFS-подсистеме ядра Linux, позволяющая получить права root
  4. OpenNews: Модель угроз и особенности оценки уязвимостей в ядре Linux
  5. OpenNews: Fragnesia - уязвимость в ядре Linux, позволяющая получить root через изменение страничного кэша
  6. OpenNews: Предложен killswitch для экстренного отключения уязвимой функциональности в ядре Linux
Обсуждение (11 +3) | Тип: Проблемы безопасности | Интересно


·11.07 Выпуск libtorrent 2.1 с включением протокола WebTorrent (27 +6)
  Доступен выпуск библиотеки libtorrent 2.1, предлагающей реализацию протокола BitTorrent, нацеленную на низкое потребление памяти и эффективное использование ресурсов CPU. Библиотека задействована в таких торрент-клиентах, как Deluge, qBittorrent, Folx, Lince, Miro, Flush и Free Download Manager, а также в некоторых сетевых хранилищах. Код libtorrent написан на языке C++ и распространяется под лицензией BSD.

В новой версии включена по умолчанию поддержка протокола WebTorrent, расширяющего протокол BitTorrent возможностями для создания децентрализованных сетей распространения контента, функционирующих через связывание между собой web-браузеров пользователей, просматривающих контент. Для связывания посетителей сайтов в единую сеть доставки контента достаточно разместить на сайте специальный JavaScript-код, использующий технологию WebRTC для прямого обмена данными между браузерами.

Интеграция WebTorrent в libtorrent позволит участвовать в раздаче контента как через стационарные торрент-клиенты, так и через браузеры посетителей сайтов, формируя гибридные сети, комбинарующие BitTorrent и WebTorrent. Торрент-клиенты на основе libtorrent смогут соединяться с работающими в браузерах пирами WebTorrent, например, участвующими в обмене файлами через instant.io. В свою очередь, браузерные клиенты WebTorrent смогут через пользователей стационарных клиентов получить доступ к коллекции торрентов, раздаваемой BitTorrent-пирами поверх TCP/UDP.

Помимо включения поддержки WebTorrent в версии libtorrent 2.1 реализован новый бэкенд ввода/вывода pread_disk_io, использующий функции pwritev и preadv, позволяющие атомарно записывать и читать данные сразу в несколько буферов. Новый бэкенд более эффективен при работе с дисковыми накопителями, сетевыми хранилищами и файловыми системами, монтируемыми через FUSE. Для подобных применений pread_disk_io задействован по умолчанию. Для NVMe-накопителей более эффективен и продолжает применяться по умолчанию старый бэкенд, применяющий отображение файлов в память при помощи mmap.

  1. Главная ссылка к новости
  2. OpenNews: Выпуск libtorrent 2.0 с поддержкой протокола BitTorrent 2
  3. OpenNews: WebTorrent, самодостаточный torrent-клиент, работающий внутри браузера
  4. OpenNews: Релиз BitTorrent-клиента Deluge 2.2
  5. OpenNews: Новая версия BitTorrent-клиента Transmission 4.1.0
  6. OpenNews: Выпуск qBittorrent 5.2.0
Обсуждение (27 +6) | Тип: Программы |


·11.07 Недельный отчёт о разработке KDE (53 +1)
  Опубликован очередной еженедельный отчёт о разработке KDE, в котором представлена порция изменений для ветки KDE Plasma 6.8, релиз которой запланирован на 14 октября. Среди недавних изменений:
  • В Plasma Login Manager предоставлена возможность использования функции автоматического входа в дистрибутивах со старыми версиями systemd, например в KDE neon.
  • Реализация комбинированных списков (combobox) переведена на использование активной темы оформления для стилизации всплывающих элементов (ранее был жёстко прошиты настройки стиля Breeze). Отключена анимация появления и исчезновения меню для унификации с другими элементами интерфейса.
  • В Spectacle добавлена опция для записи звука во время создания скринкастов. Может использоваться запись с микрофона и сохраняться звук, воспроизводимый приложениями в системе. Реализован эффект размытия, работающий без использования OpenCV, что позволило исключить данную библиотеку из зависимостей.
  • В System Monitor обеспечено отображение потребления видеопамяти в процентах от общего размера VRAM по аналогии с тем, как показывается потребление оперативной памяти.
  • В конфигураторе отображение страницы с настройками удалённого подключения к рабочему столу оптимизировано для отображения в небольших окнах для корректной работы на устройствах с небольшими экранами.
  • Исключена задержка между перемещением слайдера в виджете и фактическим изменением яркости на внешних мониторах.
  • В KDE Frameworks 6.29 при использовании применяемой по умолчанию системы стилей qqc2-desktop-style стиль выделения элементов в списках и при выводе сетки пиктограмм в QML-приложениях теперь соответствует активному стилю приложения (ранее всегда применялся стиль Breeze).
  • В тему пиктограмм Breeze добавлены пиктограммы для Android-приложений и документов Typst.

  1. Главная ссылка к новости
  2. OpenNews: В KDE улучшена анимация и прекращена поддержка OpenGL в KWin. Уязвимость в обработчике "Open New Window"
  3. OpenNews: В KDE включена поддержка тройной буферизации вывода на системах c GPU NVIDIA
  4. OpenNews: Релиз среды рабочего стола KDE Plasma 6.7
  5. OpenNews: Фонд Sovereign выделил почти 1.3 миллиона евро на развитие KDE
  6. OpenNews: Опубликован KDE Gear 26.04, набор приложений от проекта KDE
Обсуждение (53 +1) | Тип: Обобщение |


·11.07 Выпуск Wine 11.13 (23 +7)
  Опубликован экспериментальный выпуск открытой реализации Win32 API - Wine 11.13. С момента выпуска 11.12 было закрыто 22 отчёта об ошибках и внесено 207 изменений.

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

  • Улучшено позиционирование текстового курсора во время ввода.
  • Улучшен маппинг сканкодов клавиш при использовании X11.
  • В интегрированные в Wine компоненты FFmpeg, такие как библиотеки libswresample (изменение частоты дискретизации звука) и libswscale (масштабирование изображений и преобразование пиксельных форматов), добавлены ассемблерные оптимизации для архитектуры ARM64EC (ARM64 Emulation Compatible). Архитектура ARM64EC разработана для упрощения портирования на системы ARM64 приложений, изначально написанных для систем x86_64, и позволяет выполнять в окружении ARM64 отдельные модули с кодом x86_64 при помощи эмулятора.
  • Закрыты отчёты об ошибках, связанные с работой приложений: Adobe Acrobat Pro 7, Acrobat Reader 7, Office 2000, winbox64.exe, Nelogica Profitchart, Sim Racing Studio, Slingplayer 2, Sony Acid Pro 7.0.
  • Закрыты отчёты об ошибках, связанные с работой игр: GTA: Vice City, Requiem: Avenging Angel, Tales of Zestiria 1.2, Hayoola, Age of Mythology, Succubus Heaven.

  1. Главная ссылка к новости
  2. OpenNews: Новые версии Wine 11.12 и Wine-staging 11.12
  3. OpenNews: Стабильный релиз Proton 11.0, пакета для запуска Windows-игр в Linux
Обсуждение (23 +7) | Тип: Программы |


·10.07 Выпуск Rust 1.97. Написанные на Rust ядро Zinnia и P2P-система Iroh с адресацией по ключам (50 +4)
  Опубликован релиз языка программирования Rust 1.97, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).

Методы работы с памятью в Rust нацелены на исключение ошибок при манипулировании указателями и защиту от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Для распространения библиотек, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo. Для размещения библиотек поддерживается репозиторий crates.io.

Безопасная работа с памятью обеспечивается в Rust во время компиляции через проверку ссылок, отслеживание владения объектами, учёт времени жизни объектов (области видимости) и оценку корректности доступа к памяти во время выполнения кода. Rust также предоставляет средства для защиты от целочисленных переполнений, требует обязательной инициализации значений переменных перед использованием, лучше обрабатывает ошибки в стандартной библиотеке, применяет концепцию неизменяемости (immutable) ссылок и переменных по умолчанию, предлагает сильную статическую типизацию для минимизации логических ошибок.

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

  • По умолчанию включена новая схема декорирования (mangling) имён функций, глобальных переменных и структур данных в генерируемых объектных и исполняемых файлах (-Csymbol-mangling-version=v0). Имена декорируются для предотвращения конфликтов во время компоновки разных программ, путём прикрепления специфичного контекста, такого как путь к модулю и имя crate-пакета.

    Ранее используемая схема декорирования имён, основанная на Itanium ABI, имела такие недостатки, как замена параметров дженериков на нечитаемые хэши и наличие частей компилятора, не использующих Itanium ABI, что требовало использования специфичных для Rust декодировщиков имён. В Rust 1.97 задействована по умолчанию схема декорирования, разработанная специально для Rust и лишённая отмеченных недостатков. Старую схему намерены удалить в одном из следующих выпусков.

  • В пакетный менеджер cargo встроена возможность управления реакцией на генерацию компилятором предупреждений при сборке. Добавлена переменная окружения CARGO_BUILD_WARNINGS, которая может принимать три значения: warn (по умолчанию) - вывод предупреждения на экран; allow - скрытие вывода предупреждений; deny - обработка предупреждений как ошибок, останавливающих сборку.

    В прошлых версиях для завершения сборки после вывода предупреждения приходилось указывать "-Dwarnings" в RUSTFLAGS для компилятора, но при изменении RUSTFLAGS пакетный менеджер cargo считал сборку новой, не учитывал данные в кэше и с нуля пересобирал весь проект. Перенос настройки на сторону cargo исключил сброс кэша и необходимость полной перекомпиляции при изменении режима обработки предупреждений, а также упростил включение обработки предупреждений как ошибок в системах непрерывной интеграции.

  • При сборке включено по умолчанию отображения сообщений, выводимых компоновщиком. Сообщения выводятся в форме предупреждений через специальное lint-правило "linker_messages", которое не входит в стандартную группу "warnings". При этом rustc отфильтровывает сообщения, которые являются типовыми ложными срабатываниями или нормальным поведением, оставляя предупреждения, которые могут свидетельствовать о проблемах, такие как предупреждения об устаревших опциях и нежелательных настройках. Ранее информация от компоновщика показывалась только при завершении с ошибкой, а иначе все сообщения скрывались. Для возвращения старого поведения в Cargo.toml можно добавить:
    
       [lints.rust]
       linker_messages = "allow"
    
  • В разряд стабильных переведена новая порция API, в том числе стабилизированы методы и реализации типажей:
  • Признак "const" применён в методе char::is_control.



Дополнительно можно отметить недавно анонсированные проекты и события, связанные с Rust:

  • Проект zinnia развивает модульное Unix-подобное ядро, написанное на языке Rust и распространяемое под лицензией GPLv2. Ядро поддерживает POSIX-интерфейсы и некоторые расширения из BSD и Linux, такие как epoll и timerfd. Для отрисовки и организации ввода доступны драйверы DRM (Direct Rendering Manager) и evdev. Реализованной функциональности достаточно для запуска среды рабочего стола Xfce под управлением X-сервера и композитного сервера Weston на базе Wayland. Поддерживается загрузка как в эмуляторе QEMU, так и на реальном оборудовании, таком как ноутбук ThinkPad E14 G7.
  • Представлен релиз коммуникационной библиотеки iroh 1.0, позволяющей устанавливать сетевые соединения между приложениями на разных хостах с подключением по криптографическим ключам, вместо IP-адресов (указывается ключ к которому необходимо подключиться и iroh находит связанный с ним хост и устанавливает шифрованное соединение с использованием протокола QUIC). По возможности устанавливаются прямые P2P-соединения, но если это невозможно, выполняется откат на работу через релеи, которые также применяются для обнаружения хостов по ключам. Возможен запуск своего релея или подключение к поддерживаемым сообществом публичным релеям.

    Среди расширенных возможностей: поддержка Multipath QUIC для доставки пакетов одновременно по нескольким маршрутам, возможность работы из-за NAT, режим статической конфигурации для подключения к локальным устройствам без доступа к интернету, возможность сборки в промежуточный код WASM для выполнения внутри браузера, поддержка создания своих транспортов, например, для подключения через Bluetooth, WiFi Aware или LoRa. Код написан на Rust и распространяется под лицензиями Apache-2.0 и MIT. Доступны обвязки для Python, Node.js, Kotlin и Swift.

  • Автор серверной JavaScript-платформы Bun опубликовал статью с разбором проекта по переписыванию Bun с языка Zig на Rust, используя AI-модель Claude Fable. Отмечается, что Bun 1.3.14 станет последним выпуском на Zig и следующая версия Bun 1.4.0 уже будет на Rust. Судя по проведённым тестам, версия на Rust потребляет значительно меньше памяти и на 2-5% быстрее версии на Zig. Размер исполняемого файла в версии на Rust сократился на 20%.
  • Разработчики операционной системы Redox, написанной с использованием языка Rust и концепции микроядра, опубликовали отчёт о развитии проекта за июнь. Из достижений отмечено добавление поддержки геймпадов с интерфейсом USB, портирование инструментария для языка Tcl, а также создание бэкенда GTK3 (GDK) и реализация дробного масштабирования для развиваемого проектом дисплейного сервера Orbital.

  1. Главная ссылка к новости
  2. OpenNews: Опубликован crustc - компилятор rustc, переведённый на язык Си
  3. OpenNews: Возвращение в Ubuntu утилиты cp из Rust Coreutils привело к сбою при сборке livecd-rootfs
  4. OpenNews: Выпуск X-сервера yserver 1.0.0, написанного на Rust и пригодного для запуска MATE, Xfce и Cinnamon
  5. OpenNews: Выпуск ядра Asterinas 0.18, написанного на языке Rust и совместимого с Linux
  6. OpenNews: Выпуск Rust 1.96. Оценка пригодности Rust для создания прошивок к микроконтроллерам
Обсуждение (50 +4) | Тип: Программы |


·10.07 Десятый экспериментальный выпуск среды рабочего стола Orbitiny (49 +9)
  Опубликован десятый выпуск среды рабочего стола Orbitiny Desktop, написанной с нуля с использованием фреймворка Qt. Проект пытается совместить некоторые инновационные идеи, которые раньше не встречались в пользовательских окружениях, с традиционными элементами, такими как панель с поддержкой плагинов, меню приложений и рабочий стол, на котором можно размещать ярлыки. Работа пока сосредоточена на запуск в окружениях на базе X-сервера, но в будущем не исключается добавление поддержки Wayland. Код написан на языке C++ и распространяется под лицензией GPL.

Из специфичных для Orbitiny возможностей отмечается: вызов действий через экранные жесты (очерчивание мышью определённого контура на пустой области рабочего стола); метки на пиктограммах (показываются для новых, изменённых, пустых или перемещённых через буфер обмена файлов, а также пустых каталогов); возможность вставки файла одновременно в несколько выбранных каталогов; поддержка размещения содержимого рабочего стола в любом каталоге (не только в $HOME/Desktop); использование отдельных десктоп-каталогов для каждого виртуального рабочего стола и монитора. Список типовых возможностей Orbitiny можно посмотреть в прошлом анонсе.

Среди изменений:

  • Добавлена новая панель управления, предоставляющая возможности для изменения настроек, просмотра информации о системе и доступа к внешним конфигураторам. Навигация по встроенным страницам с настройками осуществляется через боковую панель, а вызов внешних конфигураторов через настраиваемые кнопки в верхней части экрана.
  • Реализована поддержка закрепления панели задач в любой части экрана и изменения размера мышью, а также прокрутки содержимого панели вращением колеса на мыши.
  • На панель добавлена кнопка для вызова диалога со списком окон запущенных приложений и возможностью фильтрации окон по названию.
  • Предложен новый апплет с меню быстрого запуска, вызываемый нажатием на кнопку "…" после списка закреплённых ярлыков приложений.
  • В меню приложений добавлены новые секции: "Orbitiny Programs" для доступа к встраиваемым в меню апплетам конфигуратора, и "Local Programs" со списком программ, для которых в каталоге ~/.local/share/applications размещены desktop-файлы.
  • Появилась возможность изменения тем оформления на лету (сразу после редактирования CSS-файлов) без перезапуска среды рабочего стола.
  • Интерфейсы для запуска команд и отслеживания нагрузки на CPU преобразованы в однокнопочные апплеты.
  • В файловом менеджере список вкладок перемещён в область под заголовком окна, а слайдер для изменения размера пиктограмм - в левый нижний угол.

  1. Главная ссылка к новости
  2. OpenNews: Девятый экспериментальный выпуск среды рабочего стола Orbitiny
  3. OpenNews: Восьмой экспериментальный выпуск среды рабочего стола Orbitiny
  4. OpenNews: Седьмой экспериментальный выпуск среды рабочего стола Orbitiny
  5. OpenNews: Пятый экспериментальный выпуск среды рабочего стола Orbitiny
  6. OpenNews: Выпуск десктоп-окружения Trinity 14.1.6, продолжающего развитие KDE 3.5
Обсуждение (49 +9) | Тип: Программы |


·10.07 pgrust - клон PostgreSQL на Rust, проходящий все регрессионные тесты (181 –15)
  Опубликован проект pgrust с реализацией СУБД PostgreSQL, переписанной на языке Rust c использованием транслятора c2rust и AI-ассистента. Заявлено, что проект пока не готов для использования в рабочих проектах, но уже успешно проходит все регрессионные тесты PostgreSQL, совместим с форматом хранения данных PostgreSQL 18.3 и может использовать data-каталог от PostgreSQL 18.3. Код проекта распространяется под лицензией AGPLv3, в отличие от оригинального PostgreSQL, поставляемого под пермиссивной лицензией PostgreSQL, близкой к лицензиям BSD и MIT. Доступна online-демонстрация возможностей, основанная на сборке в WebAssembly, а также docker-образ для быстрого запуска.

В качестве цели разработки упоминается достижение полной совместимости с PostgreSQL 18.3, а также проведение экспериментов по изменению внутреннего устройства и созданию версии PostgreSQL, избавленной от архитектурных ограничений, от которых не удаётся избавиться по историческим причинам. Проект успешно проходит набор из более чем 46 тысяч регрессионных тестов PostgreSQL, но пока несовместим с дополнениями к PostgreSQL, не предоставляет желаемых оптимизаций производительности и не полностью реализует процедурные языки PL/Python, PL/Perl и PL/Tcl.

Планы на будущее:

  • Перевод на многопоточную внутреннюю архитектуру.
  • Реализация пулинга соединений.
  • Оптимизация для рабочих процессов, активно использующих JSON.
  • Возможность создания копий и ответвлений элементов БД в режиме Copy-on-Write без копирования данных.
  • Эксперименты с архитектурой, не требующей выполнения операции VACUUM.
  • Система ограничений SQL-запросов, позволяющая блокировать излишнее потребление ресурсов при выполнении некачественных запросов.
  • Защита от переключение оптимизатора на менее эффективные планы выполнения запросов.

По словам автора проекта, в настоящее время ведётся работа над следующей версией pgrust, в которой вместо пула рабочих процессов реализована многопоточная модель обработки соединений, а также задействованы дополнительные оптимизации, такие как пакетная обработка строк в таблицах и упреждающая загрузка данных. При тестировании инструментарием percona-tpcc при обработке транзакций новая версия pgrust оказалась быстрее штатного PostgreSQL на 50%, а при обработке аналитических запросов - в 300 раз.

При переводе на Rust использован гибридный подход, при котором код PostgreSQL вначале был обработан при помощи транслятора c2rust, генерирующего unsafe-представление Rust, близкое по своей структуре к изначальному коду на Си. После обработки в c2rust было создано около 1000 crate-пакетов, которые параллельно переводились на идиоматический Rust при помощи AI-модели Claude и инструментария Conductor для распределения задач между одновременно запускаемыми субагентами.

  1. Главная ссылка к новости
  2. OpenNews: Компоненты браузера Ladybird начали переписывать на Rust при помощи AI
  3. OpenNews: DARPA развивает AI-транслятор для переписывания Си-кода на Rust
  4. OpenNews: Проблемы с соблюдением авторского права при переписывании ScanCode на Rust при помощи AI
  5. OpenNews: При помощи AI для новых ядер Linux портирован драйвер ftape, удалённый 20 лет назад
  6. OpenNews: Релиз СУБД PostgreSQL 18
Обсуждение (181 –15) | Тип: Программы |


·09.07 В NPM 12.0 по умолчанию отключён запуск скриптов при установке пакетов (67 +12)
  Опубликован выпуск пакетного менеджера NPM 12.0, входящего в поставку Node.js и применяемого для распространения модулей на языке JavaScript. Новая версия примечательна прекращением по умолчанию запуска скриптов во время установки пакетов. Предполагается, что изменение усложнит проведение атак через компрометацию зависимостей и замедлит распространение червей, активируемых из установочных скриптов.

Для запрета автозапуска скриптов, указанных в package.json через параметры preinstall, install или postinstall, настройка allowScripts по умолчанию выставлена в значение "off". Выполнение подобных скриптов, а также запуск компиляции C/C++ кода утилитой node-gyp при наличии в пакете файла binding.gyp, теперь производится только при получении явной инструкции от пользователя. Помимо этого, параметры "--allow-git" и "--allow-remote" по умолчанию теперь выставлены в значение "none", что отключает автоматическую загрузку зависимостей из Git-репозиториев и по прямым ссылкам на сайты с tar-архивами.

Для организации запуска установочных скриптов следует использовать команду "npm approve-scripts", в качестве аргумента которой передаются имена пакетов, заслуживающих доверия, или опция "--all" для предоставления разрешения всем пакетам. Для сомнительных пакетов рекомендовано запускать команду "npm approve-scripts --allow-scripts-pending", которая выведет список претендующих на запуск скриптов. После проверки данных скриптов их можно разрешить командой "npm approve-scripts" и добавить в белый список в package.json.

Помимо этого анонсирован запрет использования в репозитории NPM GAT-токенов доступа (Granular Access Tokens), настроенных для выполнения действий без двухфакторной аутентификации (2FA). Начиная с августа подобные токены без дополнительного ручного подтверждения действий не позволят выполнять такие операции, как создание или удаление токенов, изменение профиля, пароля или email, настройка двухфакторной аутентификации, генерация кодов восстановления, изменение прав доступа и управление сопровождающими.

В январе 2027 года намерены запретить прямую публикацию пакетов с использование токенов, обходящих 2FA. При этом пакеты можно будет опубликовать в staging-разделе, в котором они будут находиться до ручного подтверждения релиза сопровождающим. После ручного подтверждения опубликованные пакеты станут доступны для установки пользователями.

Для автоматической публикации предлагается использовать механизм "Trusted Publishers", основанный на использовании стандарта OpenID Connect (OIDC) и токенов аутентификации с ограниченным временем действия, которыми обмениваются внешние сервисы и каталог пакетов для подтверждения операции публикации пакета вместо использования традиционных паролей или постоянных токенов доступа к API.

  1. Главная ссылка к новости
  2. OpenNews: Атакующие встроили вредоносное ПО в 32 NPM-пакета Red Hat
  3. OpenNews: В 42 NPM-пакета TanStack интегрирован самораспространяющийся червь
  4. OpenNews: Раскрыты подробности захвата учётных данных сопровождающего NPM-пакет axios
  5. OpenNews: Утечка кода инструментария Claude Code из-за забытого в NPM-пакете map-файла
  6. OpenNews: При помощи червя Shai-Hulud скомпрометировано 600 NPM-пакетов
Обсуждение (67 +12) | Тип: Программы |


·09.07 Доступен язык программирования TypeScript 7.0 с компилятором, переписанным на Go (100 +16)
  Компания Microsoft опубликовала релиз TypeScript 7.0, языка для разработки web-приложений, расширяющего возможности JavaScript, и связанного с ним инструментария. Выпуск примечателен поставкой нового компилятора typescript-go (tsgo), транслирующего код TypeScript в представление JavaScript, который был переписан на языке Go и теперь признан готовым для сборки рабочих проектов. Инструментарий распространяется под лицензией Apache 2.0, разработка ведётся в публичном репозитории через сервис GitHub. Спецификации языка открыты и опубликованы в рамках соглашения Open Web Foundation Specification Agreement.

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

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

По функциональности язык TypeScript 7 близок к TypeScript 6 и данные ветки взаимозаменяемы, а компиляторы могут сосуществовать в одной системе. Все необходимые для ветки TypeScript 7 настройки по умолчанию были изменены в выпуске TypeScript 6, в котором также были переведены в разряд устаревших возможности языка, несовместимые с TypeScript 7. Теоретически любой TypeScript-код, компилируемый в TypeScript 6.0, должен компилироваться и в TypeScript 7.0 при выставлении режима stableTypeOrdering и без использования флагов ignoreDeprecations. Какое-то время кодовые базы TypeScript 6.x и TypeScript 7.x будут параллельно сопровождаться и сосуществовать, пока ветка TypeScript 7 не достигнет зрелого состояния, готового полностью заменить старый инструментарий.

Что касается производительности компилятора, то по сравнению с прошлой веткой скорость сборки в TypeScript 7 возросла при пересборке vscode в 11.9 раз, sentry - в 8.9 раз, bluesky - 8.7 раз, playwright - 8.7 раз, tldraw - 7.7 раз. При этом потребление памяти уменьшилось при сборке vscode на 18%, sentry - 6%, bluesky - 26%, playwright - 11% и tldraw - 15%. Запуск в режиме проверки типов в TypeScript 7 производится в 10.6-16.7 раз быстрее, чем в TypeScript 6.

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

Язык TypeScript расширяет возможности JavaScript, оставаясь полностью обратно совместимым, что упрощает перевод существующих приложений на TypeScript. Итоговое приложение на TypeScript компилируется в обычный JavaScript, который можно выполнить в любом современном web-браузере или использовать c платформами Node.js, Bun и Deno. В программах на TypeScript можно использовать существующие JavaScript-библиотеки. От JavaScript язык TypeScript отличается средствами для явного определения типов, а также поддержкой использования полноценных классов. Статическая типизация позволяет избежать многих ошибок в процессе разработки, даёт возможность задействовать дополнительные техники оптимизации, упрощает отладку, делает код более читаемым и простым для доработки и сопровождения.

  1. Главная ссылка к новости
  2. OpenNews: Доступен TypeScript 6.0, последний выпуск с компилятором на JavaScript
  3. OpenNews: Microsoft переписывает компилятор TypeScript на языке Go
  4. OpenNews: В Node.js добавлена экспериментальная поддержка языка TypeScript
  5. OpenNews: Предложен компилятор исходных текстов на языке TypeScript в машинный код
  6. OpenNews: Утверждён перевод JavaScript-платформы Bun на язык Rust
Обсуждение (100 +16) | Тип: Программы |


·09.07 Quake портирован для запуска внутри игрового мира Roblox (48 +8)
  Энтузиаст перевёл исходный код 3D-шутера Quake образца 1996 года, а также многопользовательскую редакцию Quakeworld и моды на язык Luau и смог запустить их внутри игрового мира Roblox. Работа была выполнена при помощи AI-модели Claude Fable (затраты на токены составили $3000). Код порта опубликован под лицензией GPLv2.

Портированы оба многопользовательских движка Quake - NetQuake для совместного прохождения уровней и QuakeWorld для сражения с другими людьми. Возможно использование игровых ресурсов из shareware-версии Quake, полной версии Quake или LibreQuake. Реализована поддержка запуска немодицифированных модов QuakeC. Растеризатор Quake заменён на использование Roblox EditableMesh для отрисовки геометрии и lightmap для расчёта освещения. Сетевой стек на базе UDP заменён на систему сетевых событий Roblox (RemoteEvents).

Из специфичных для Roblox изменений добавлены аватары (игроки в Quake выглядят как персонажи Roblox), меню Roblox c управлением через сенсорный экран, управление матчами c возможностью запускать голосования во время матча, меню администратора для изменения правил игры, статистика с рейтингом лидеров, режим цензурированной отрисовки для детей.

  1. Главная ссылка к новости
  2. OpenNews: При помощи AI для новых ядер Linux портирован драйвер ftape, удалённый 20 лет назад
  3. OpenNews: Компания Cloudflare представила EmDash, альтернативу WordPress с изоляцией плагинов
  4. OpenNews: Anthropic опубликовал Си-компилятор, созданный AI-моделью Claude Opus и способный собрать ядро Linux
Обсуждение (48 +8) | Тип: К сведению |


·09.07 На 31 августа намечено удаление из Chrome Web Store всех дополнений, использующих вторую версию манифеста (91 –30)
  Компания Google запланировала на 31 августа удаление из каталога Chrome Web Store всех остающихся дополнений, использующих вторую версию манифеста Chrome, определяющего возможности и ресурсы, доступные для дополнений, написанных с использованием API WebExtensions. Уже установленные дополнения останутся на системах пользователей, но не смогут получать обновления и их нельзя будет переустановить в случае удаления из браузера.

В опубликованном неделю назад выпуске Chrome 150 была удалена поддержка флага kExtensionManifestV2Disabled, позволявшего вернуть возможность установки дополнений с второй версией манифеста из каталога Chrome Web Store. В выпуске Chrome 151, намеченном на 28 июля, будет удалён параметр AllowLegacyMV2Extensions, позволяющий вручную в режиме разработчика загружать дополнения на базе второй версии манифеста.

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

  1. Главная ссылка к новости
  2. OpenNews: Релиз Chrome 150
  3. OpenNews: В Chrome 151 будет удалён обходной путь для установки uBlock Origin
  4. OpenNews: Google случайно раскрыл детали неисправленной уязвимости в Chromium
  5. OpenNews: Планы в отношении поддержки в Firefox второй и третьей версий манифеста Chrome
  6. OpenNews: Google анонсировал скорое прекращение поддержки второй версии манифеста в Chrome
Обсуждение (91 –30) | Тип: К сведению |


·09.07 В среде рабочего стола Cinnamon реализована полноценная поддержка Wayland (92 +19)
  Разработчики дистрибутива Linux Mint объявили о стабилизации поддержки протокола Wayland в среде рабочего стола Cinnamon. В кодовой базе, на основе которой формируется будущий стабильный выпуск Cinnamon 6.8 практически достигнут паритет в функциональности при работе с использованием X11 и Wayland. В Cinnamon 6.8 будет полностью поддерживаться как работа с использованием X11, так с Wayland. Намеченный на декабрь выпуск Linux Mint 23 станет первым, в котором поддержка Wayland в Cinnamon не будет рассматриваться экспериментальной.

Среди недавних улучшений в Cinnamon:

  • При использовании Walyand обеспечен корректный выбор размера и позиционирование новых окон, всплывающих диалогов и контекстных меню.
  • При работе через Walyand реализовано корректное переключение фокуса ввода.
  • Устранены многие ошибки в Cinnamon, muffin, cinnamon-session и Xwayland, приводившие к аварийному завершению работы при использовании Wayland.
  • Улучшена поддержка многомониторных конфигураций и KVM-переключателей мониторов в окружении c Wayland.
  • В приложениях, использующих Wayland или запускаемых через Xwayland, а также в композитном сервере и десктоп-сеансе задействовано аппаратное ускорение графики, реализованное через Wayland-протоколы wl_drm и zwp_linux_dmabuf_v1, а также аппаратно ускоренную работу GBM поверх EGL на видеокартах NVIDIA.
  • Предоставлена полная поддержка экранов с высокой плотностью пикселей (HiDPI) при использовании Wayland. Решены проблемы с масштабированием пиктограмм и курсоров мыши. Устранены ошибки, проявлявшиеся в приложениях на движке Chromium, таких как Slack и VSCode.
  • При использовании Wayland реализована работа индикаторов прогресса выполнения операции, например, показа прогресса копирования файлов в кнопке на панели.
  • Обеспечен запуск базовых приложений, запускаемых через pkexec, в качестве Wayland-клиентов без применения Xwayland.
  • Добавлена команда "cinnamon-list-windows" для упрощения получения списка всех открытых окон и определения их позиции, размера, данных о HiDPI и связанных с ними приложениях и бэкендах.
  • В композитном сервере Muffin обеспечено округление до целых чисел координат и размеров всех графических элементов библиотеки Clutter для более точного позиционирования и чёткой отрисовки апплетов и компонентов рабочего стола.
  • Добавлена поддержка юнитов systemd для пользовательских сеансов (graphical-session.target), активируемых для запуска сопутствующих сервисов в привязке к графическому сеансу.

  1. Главная ссылка к новости
  2. OpenNews: Linux Mint начал публиковать HWE-сборки с более новым ядром
  3. OpenNews: Linux Mint переходит на общий с LMDE инсталлятор и наметил релиз на конец года
  4. OpenNews: Linux Mint развивает новый хранитель экрана и намерен реже выпускать релизы
  5. OpenNews: Релиз дистрибутива Linux Mint 22.3
  6. OpenNews: Выпуск среды рабочего стола Cinnamon 6.6
Обсуждение (92 +19) | Тип: К сведению |


·09.07 Выпуск межсетевого экрана firewalld 2.5.0 (27 +4)
  Сформирован выпуск динамически управляемого межсетевого экрана firewalld 2.5.0, реализованного в форме обвязки над пакетными фильтрами nftables и iptables. Firewalld запускается в виде фонового процесса, позволяющего динамически изменять правила пакетного фильтра через D-Bus, без необходимости перезагрузки правил пакетного фильтра и без разрыва установленных соединений. Проект уже применяется во многих дистрибутивах Linux, включая RHEL 7+, Fedora 18+ и SUSE/openSUSE 15+. Код firewalld написан на языке Python и распространяется под лицензией GPLv2.

Для управления межсетевым экраном используется утилита firewall-cmd, которая при создании правил отталкивается не от IP-адресов, сетевых интерфейсов и номеров портов, а от названий служб (например, для открытия доступа к SSH нужно выполнить "firewall-cmd --add --service=ssh", для закрытия SSH - "firewall-cmd --remove --service=ssh"). Для изменения конфигурации межсетевого экрана также может использоваться графический интерфейс firewall-config (GTK) и апплет firewall-applet (Qt). Поддержка управления межсетевым экраном через D-BUS API firewalld имеется в таких проектах, как NetworkManager, libvirt, podman, docker и fail2ban.

Ключевые изменения:

  • В графическом интерфейсе firewall-config реализована поддержка автоматического переключения на тёмную тему оформления в GNOME.
  • Обеспечено отражение в логах изменений конфигурации.
  • Добавлен сервис solr для одноимённого поискового движка, основанного на Apache Lucene (TCP-порт 8983).
  • Реализовано срабатывание таймаутов при обработке правил фильтрации, разрешено указание таймаутов для опций "--add-disable", "--ingress-zone" и "--egress-zone".
  • Проведена оптимизация производительности операций проверки зон и правил.
  • В rpm-пакете из списка зависимостей удалён пакет dbus-x11.

  1. Главная ссылка к новости
  2. OpenNews: Выпуск межсетевого экрана firewalld 2.4.0
  3. OpenNews: Опубликована платформа запуска серверных приложений NethServer 8.5
  4. OpenNews: Выпуск дистрибутива для создания межсетевых экранов OPNsense 25.7
  5. OpenNews: Опубликована Linux-версия межсетевого экрана приложений Little Snitch
Обсуждение (27 +4) | Тип: Программы |


·08.07 73% проектов на Flathub, созданных с помощью AI, были заброшены спустя несколько месяцев (135 +25)
  После запрета размещения в каталоге Flathub приложений, сгенерированных при помощи AI, один из разработчиков решил проверить, не лишился ли Flathub из-за подобного запрета ценных участников. Для этого была изучена судьба проектов, отмеченных тегом "AI Slop", который начал применяться во Flathub январе этого года для пометки проектов, файл-манифест для которых создан при помощи AI или разработчики которых использовали AI при общении с рецензирующими.

В выборку попали 120 репозиториев проектов, добавленных с января по 1 апреля. После изучения последних коммитов в данных репозиториях выяснилось, что что с мая по июль активность наблюдалась лишь в 32 из них (27%), а 88 (73%) были заброшены или удалены. Многие проекты перестали обновляться почти сразу после подачи заявки во Flathub.

  1. Главная ссылка к новости
  2. OpenNews: Во Flathub запрещено размещение приложений, сгенерированных при помощи AI
  3. OpenNews: Линус Торвальдс раскритиковал приватный разбор уязвимостей, выявленных при помощи AI
  4. OpenNews: Защита от мусорных AI-изменений на GitHub. Оценка влияния вайб-кодинга на экосистему открытого ПО
  5. OpenNews: Anthropic опубликовал Си-компилятор, созданный AI-моделью Claude Opus и способный собрать ядро Linux
  6. OpenNews: Интервью с Грегом Кроа-Хартманом о созданных через AI отчётах об ошибках
Обсуждение (135 +25) | Тип: К сведению |


·08.07 Вредительство со стороны разработчика OpenMandriva, которое могло причинить вред пользователям (99 +30)
  В результате конфликта с лидером проекта OpenMandriva разработчик Давиде Беатричи (Davide Beatrici), имевший доступ к репозиториям с правами администратора, совершил вредительство, которое привело к повреждению инфраструктуры разработки и нарушению работоспособности систем некоторых пользователей. Беатричи удалил часть GitHub-репозиториев, используемых для разработки компонентов OpenMandriva, а также совершил вредоносные действия в репозитории Cooker, в котором ведётся разработка нестабильной ветки дистрибутива. В частности, он опубликовал пустой пакет, который переводил в категорию устаревших все пакеты GNOME и Cosmic (при помощи тега "Obsoletes:"), что могло нарушить работоспособность систем пользователей, использующих данные среды рабочего стола.

Отмечается, что команда разработчиков OpenMandriva провела аудит активности Беатричи и не выявила других вредоносных действий, помимо вышеупомянутых. В настоящее время ведётся работа по восстановлению удалённых репозиториев и возвращению работоспособности пакетов, переведённых в разряд устаревших. Действия Беатричи стали реакцией на череду событий, возникших после удаления из чата его товарища, отличавшегося токсичным поведением.

Давиде Беатричи известен как один из главных разработчиков приложения для голосового общения Mumble и у команды OpenMandriva не было оснований не доверять ему. Беатричи не внёс большой вклад в разработку OpenMandriva, но выступал с инициативой перевода инфраструктуры разработки с GitHub на принадлежащий ему сервер с платформой OneDev. Инициатива была воспринята неоднозначно, так как часть разработчиков была против перевода репозиториев на систему, контролируемую одним участником, и дело не продвинулось дальше создания зеркал на OneDev.

В связанном с инцидентом заявлении лидера OpenMandriva, указано, что вместе с Беатричи к проекту OpenMandriva присоединились два его знакомых. Один из них через какое-то время стал вести себя оскорбительно по отношению к другим разработчикам и пользователям, некоторые из которых после этого покинули проект. Недопустимое поведение не было замечено сразу, так как по большей части проявлялось в личной переписке. После открытых нападок на одного из участников в matrix-чате и в обсуждениях на GitHub, лидер проекта удалил обидчика из чата.

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

  1. Главная ссылка к новости
  2. OpenNews: Релиз дистрибутива OpenMandriva Lx 6.0
  3. OpenNews: Выпуск дистрибутива OpenMandriva ROME 24.12
  4. OpenNews: Выпуск платформы голосового общения Mumble 1.4
  5. OpenNews: Удаление Gem-пакета в знак протеста привело к проблемам в ряде систем на базе Chef
  6. OpenNews: Проблемы с удалением "protestware" из Debian-пакета xsnow
Обсуждение (99 +30) | Тип: К сведению | Интересно


Следующая страница (раньше) >>



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

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