| · | 01.04 |
Компания Cloudflare представила EmDash, альтернативу WordPress с изоляцией плагинов (36 +6) |
| |
Компания Cloudflare опубликовала систему управления контентом EmDash. Как и WordPress, новая система поддерживает расширение через плагины, позволяет использовать шаблоны для построения различных видов сайтов и предоставляет интерфейс для администрирования, но при этом может работать на платформах бессерверных вычислений и повышает безопасность за счёт применения языка TypeScript со статическими типами и изоляции плагинов в отдельных sandbox-окружениях.
Код проекта написан на языке TypeScript c использованием web-фреймворка Astro и распространяется под лицензией MIT. В анонсе упоминается, что благодаря привлечению к разработке AI-агентов продукт был создан за два месяца.
EmDash может функционировать как в инфраструктуре Cloudflare, так и запускаться на собственных серверах при помощи Node.js. В качестве СУБД может использоваться SQLite, Turso/libSQL и PostgreSQL, а в качестве хранилища - AWS S3, S3-совместимые системы или обычная локальная файловая система. Для хранения информации о сеансах предлагается использовать Redis или файловую систему.
Новая система разработана как попытка пересоздать проект WordPress с использованием современного инструментария и решив имеющиеся проблемы. Из проблем WordPress отмечается необходимость раздельного управления кодом на двух языках (PHP и JavaScript), применение многоуровневых кэшей для достижения приемлемой производительности и небезопасная архитектура плагинов, которая становится причиной 96% всех уязвимостей в платформе.
Каждый плагин WordPress имеет полный доступ к СУБД и интегрируется с PHP-кодом основной платформы, поэтому любая уязвимость в плагине полностью компрометирует весь сайт. В EmDash плагины запускаются в отдельных изолированных Worker-ах, возможности которых декларативно ограничиваются манифестом. Например, если плагин запрашивает полномочия read:content и email:send то ему будет открыт только доступ на чтение и возможность отправки электронной почты, не более. Так как плагины не встраиваются в код системы управления контентом, их авторы вольны выбирать любую лицензию и распространять плагины через любые репозитории и каталоги приложений.
WordPress хранит контент в формате HTML с метаданными, встраиваемыми в форме внутренних комментариев. В EmDash используется основанный на JSON структурированный формат Portable Text, отделяющий содержимое от оформления. Подобный подход позволяет отрисовывать содержимое в любых представлениях - в форме web-страницы, мобильного приложения, email или ответа API. Имеется встроенный MCP-сервер, позволяющий интегрировать платформу с AI-агентами, которые могут управлять контентом, а также использоваться для создания тем оформления и плагинов.
В базовой поставке предлагается три начальных шаблона: блог, маркетинг и портфолио. В первом случае формируются типовой блог c боковой панелью, полонтекстовыми поиском, категориями, тегами, RSS, комментариями и переключением между тёмной и светлой темами. Второй шаблон позволяет создавать сайты компаний с прайсами, контактной информацией и описанием товаров и услуг. Третий шаблон нацелен на презентацию своих достижений и презентации проектов.
Основные возможности EmDash:
- Контент: публикация материалов, разделение на страницы, определение собственных типов содержимого, редактирование текста с разметкой в визуальном режиме при помощи редактора TipTap, управление версиями содержимого, подготовка черновиков, размещение по расписанию, полнотекстовый поиск и редактирование по месту (inline).
- Панель администратора: визуальный построитель схем данных, библиотека мультимедийных данных, навигационные меню, систематизация информации, виджеты, возможность переноса контента из WordPress.
- Аутентификация: по умолчанию Passkey (WebAuthn) c OAuth, возможность входа по ссылке, разделение доступа на основе ролей (администратор, редактор, автор, участник).
- Миграция с WordPress: импорт публикаций, страниц, структуры через WXR, WordPress REST API или WordPress.com. Использование AI для портирования плагинов и тем оформления.
- Главная ссылка к новости
- OpenNews: Основатель WordPress заблокировал участников, предлагавших создать форк
- OpenNews: Linux Foundation развивает FAIR, децентрализованный пакетный менеджер для WordPress
- OpenNews: Компания Automattic свела к минимуму своё участие в разработке WordPress
- OpenNews: Владельцы Wordpress заменили на свой форк плагин ACF, имеющий 2 млн установок
- OpenNews: Эксперименты с использованием AI для улучшения кода BIND 9 и переработки Next.js
|
|
|
| |
|
|
| · | 01.04 |
Выпуск Wayland-Protocols 1.48 (92 +1) |
| |
Представлен выпуск пакета wayland-protocols 1.48, содержащего набор протоколов и расширений, дополняющих базовый протокол Wayland и предоставляющих возможности, необходимые для построения композитных серверов и пользовательских окружений.
В новой версии:
- В категорию "staging" добавлен протокол xdg-session-management, предоставляющий возможности для восстановления состояния и позиции окон прерванного сеанса в окружениях на основе протокола Wayland, например, после аварийного завершения композитного сервера или приложения.
- Расширены возможности протокола text-input, позволяющий композитным серверам реализовывать методы ввода и отправлять текст в приложения.
Например, добавлен флаг no_emoji для ввода без Emoji, реализована поддержка дополнительных действий помимо вставки текста, добавлен флаг language для передачи информации об языке, добавлены запросы для показа и скрытия панели ввода, добавлен флаг preedit_hint для настройки стиля предварительного редактирования.
- Добавлен экспериментальный протокол xx-cutouts для получения информации о вырезах на экране (например, области под фронтальную камеру на экране смартфона).
- Добавлен экспериментальный протокол xx-zones для создания и добавления окон верхнего уровня в "зоны" - окружения со своим пространством координат. Протокол позволяет организовать логическую расстановку окон, в которой каждое окно размещается относительно другого окна.
- Добавлен экспериментальный протокол xx-keyboard-filter для перехвата клиентом выбранных событий клавиатуры, изменения событий ввода или блокирования передачи определённых событий в Wayland-поверхность, на которой установлен фокус ввода.
Все протоколы последовательно проходят фазы разработки, тестирования и стабилизации. После завершения стадии разработки (категория "unstable") протокол помещается в ветку "staging" и официально включается в состав набора wayland-protocols, а после завершения тестирования перемещается в категорию стабильных. Протоколы из категории "staging" уже можно применять в композитных серверах и клиентах, где требуется связанная с ними функциональность. В отличие от категории "unstable" в "staging" запрещено внесение изменений, нарушающих совместимость, но в случае выявление проблем и недоработок в ходе тестирования, не исключается замена новой значительной версией протокола или другим Wayland-расширением.
Для ускорения доведения протоколов до разработчиков и стимулирования ранней реализации протоколов в существующих проектах, начиная с позапрошлого выпуска дополнительно была добавлена фаза "experimental", в которой допускается внесение изменений, нарушающих совместимость, и добавление "сырых" протоколов, которые можно постепенно доводить до должного уровня. Если для попадания протокола в фазу "staging" требуется сформировать команду поддержки и получить определённое число подтверждений (ACK) от участников рецензирования, то для попадания в "experimental" достаточно отсутствия возражений (NACK) в течение двухнедельного периода рецензирования.
В настоящее время в состав набора wayland-protocols входят следующие стабильные протоколы, в которых обеспечивается обратная совместимость:
- "viewporter" - позволяет клиенту выполнять действия по масштабированию и обрезанию краёв поверхности на стороне сервера.
- "presentation-time" - обеспечивает отображение видео.
- "xdg-shell" - интерфейс создания и взаимодействия с поверхностями как с окнами, позволяющий передвигать их по экрану, сворачивать, разворачивать, изменять размер и т.д.
- "linux-dmabuf" - предоставляет возможности для создания wl_buffer-ов на базе DMA-BUF.
- "tablet" - организация ввода с графических планшетов.
Протоколы, тестируемые в ветке "staging":
- drm-lease - предоставляет ресурсы, необходимые для формирования стереокартинки с разными буферами для левого и правого глаза при выводе на шлемы виртуальной реальности.
- "ext-session-lock" - определяет средства блокировки сеанса, например, во время работы хранителя экрана или вывода диалога аутентификации.
- "single-pixel-buffer" - позволяет создавать однопиксельные буферы, включающие четыре 32-разрядных значения RGBA.
- "xdg-activation" - позволяет передать фокус между разными поверхностями первого уровня (например, при помощи
xdg-activation одно приложение может переключить фокус на другое).
- content-type - позволяет клиентам передать композитному серверу сведения об отображаемом содержимом, которые могут использоваться для оптимизации поведения с учётом содержимого, например, выставлении специфичных DRM-свойств, таких как "content type". Заявлена поддержка следующих типов контента: none (нет сведений о типе данных), photo (вывод цифровых фото, требующий минимальной обработки), video (видео или анимация, требуется более точная синхронизация, чтобы исключить подтормаживания) и game (запуск игр, требуется вывод с минимальной задержкой).
- ext-idle-notify - даёт возможность композитным серверам передавать клиентам уведомления о неактивности пользователя, что может использоваться для активации дополнительных режимов энергосбережения после определённого времени неактивности.
- tearing-control - позволяет отключить в полноэкранных приложениях вертикальную синхронизацию (VSync) с кадровым гасящим импульсом, применяемую для защиты от появления разрывов при выводе (tearing). В мультимедийных приложениях появление артефактов из-за разрывов является нежелательным эффектом, но в игровых программах с артефактами можно смириться, если борьба с ними приводит к дополнительным задержкам.
- ext-foreign-toplevel-list - получение информации о поверхностях, размещённых на самом верхнем уровне (toplevel), которые позволяют организовать закрепление окон поверх другого содержимого, например, для подключения собственных панелей и переключателей окон.
- security-context - позволяет идентифицировать клиентов, использующих sandbox-изоляцию. Клиент может зарегистрировать новое подключение к композитному серверу на базе Wayland и прикрепить к нему контекст безопасности, после чего в соответствии с указанным контекстом безопасности композитный менеджер ограничит возможности, доступные для установленного соединения.
- cursor-shape - альтернативный способ настройки внешнего вида курсора, основанный на передаче серии изображений курсора вместо привязки к поверхности (wl_surface).
- "ext-transient-seat" - предназначен для создания временных независимых сеансов (seat), рассчитанных на использование вместе с виртуальными устройствами ввода. Например, при реализации возможности подключения к удалённому рабочему столу протокол позволяет создать для каждого пользователя отдельный сеанс с виртуальными клавиатурой и мышью.
- "xdg-toplevel-drag" - расширяет механизм "drag & drop" возможностью прикрепления окон верхнего уровня к операции перемещения, что может быть использовано, например, для организации перетаскивания мышью панелей инструментов или вкладок браузера. Новый протокол позволяет создавать отсоединяемые части окна, которые при перетаскивании из этого окна становятся новыми окнами и могут перемещаться поверх существующего окна перед повторным прикреплением.
- "xdg-dialog" - позволяет назначать поверхностям верхнего уровня признаки, специфичные для диалоговых окон, например, можно создавать модальные диалоги, которые блокируют взаимодействие пользователя с остальной частью интерфейса.
- "linux-drm-syncobj" - предоставляет инструменты для явной синхронизации буферов при помощи объектов синхронизации DRM (Direct Rendering Manager). Предполагается, что в контексте синхронизации при отрисовке в буфер предложенный протокол позволит улучшить работу с драйверами на базе графических API Vulkan и OpenGL (реализация базируется на обработчиках в драйверах). Новый протокол даёт возможность убедиться, что операция отрисовки в буфер завершена до того, как композитный менеджер отобразит данный буфер.
- alpha-modifier, позволяющий клиентам менять уровень прозрачности поверхности и выносить операции по обеспечению прозрачности на сторону композитного сервера, который в свою очередь может переадресовать эти операции KMS.
- xdg-toplevel-icon - привязка пиктограммы к окну верхнего уровня.
-
ext-image-capture-source и ext-image-copy-capture - организация захвата контента, выводимого на экран.
- xdg-system-bell - позволяет выводить системный сигнал, который может использоваться, например, как предупреждение в эмуляторе терминалов. Форма вывода сигнала определяется на усмотрение композитного менеджера, это может быть не только звук, но визуальный отклик.
- fifo - реализует FIFO-механизм (первым пришёл - первым ушёл) обработки очереди обновления содержимого отображаемой поверхности. С практической стороны протокол позволяет при выводе использовать ожидание завершения вертикальной развёртки (vblank) вместо использования callback-вызовов при каждой готовности отобразить новый кадр, что решает проблему с высокой нагрузкой на GPU при использовании VSync.
- commit-timing - позволяет привязать ограничение времени к содержимому поверхности (композитный сервер должен отобразить изменение контента по возможности через указанное время, но не раньше).
- ext-data-control - позволяет привилегированным клиентам управлять обработкой данных, например, для реализации менеджеров буфера обмена.
- ext-workspace - реализует концепцию виртуальных рабочих столов и предлагает события с информацией о состоянии рабочих столов, а также возможности для активации и деактивации рабочих столов. Протокол может применяться для создания панелей и индикаторов, выводящих список доступных виртуальных рабочих столов и позволяющих переключаться между ними.
- color-management - предоставляет возможности для управления цветом и поддержки расширенного динамического диапазона яркости (HDR, High Dynamic Range). При помощи добавленного расширения клиентские приложения могут получать информацию о связанных с цветопередачей свойствах устройств вывода и передавать композитному серверу данные о свойствах цветопередачи собственного контента. В композитном сервере данная информация может использоваться для автоматического управления цветом при отображении содержимого на различных устройствах вывода, например, для преобразования контента в предоставление, подходящее для отображения на HDR-мониторах. Для описания цветовых пространств используются профили ICC.
- xdg-toplevel-tag - позволяет Wayland-клиентам прикреплять теги к поверхностями верхнего уровня, которые композитный сервер может использовать для идентификации окон после перезапуска приложения (например, приложение может выставить теги "main window" и "settings" для основного окна и окна с настройками). Подобная идентификация полезна для восстановления позиции, размера и свойств окон после перезапуска, а также для определения особых правил для отдельных видов окон.
- color-representation - определение цветового представления Wayland-поверхности. Wayland-клиенты могут передавать метаданные, необходимые для определения прозрачности, цветовой модели, субдискретизации и диапазона квантования, и применяемые при преобразовании буфера с данными, соответствующими цветовой модели YCbCr, в представление RGB.
- ext-background-effect - применение эффектов к полупрозрачным частям Wayland-поверхности, таких как размытие фона.
- pointer-warp - позволяет приложению мгновенно переместить указатель в указанную позицию.
Протоколы, разрабатываемые в ветке "experimental":
- xx-session-management - восстановление состояния окон для прерванных сеансов (например, после аварийного завершения композитного менеджера).
- xx-input-method - даёт возможность приложениям реализовывать методы ввода текста для композитных серверов и формировать введённый текст, что может применяться, например, для создания виртуальных клавиатур и IME-прослоек (Input Method Editor) для обработки ввода.
- xx-text-input - позволяет композитным серверам реализовывать методы ввода и отправлять текст в приложения. Протокол стандартизирует взаимодействие между композитным сервером и приложениями, и позволяет управлять такими возможностями, как передача вводимого текста, обработка событий об изменении фокуса ввода и учёт специфики полей ввода (язык, выделение текста, тип контента).
Протоколы, разрабатываемые в ветке "unstable":
- "fullscreen-shell" - управление работой в полноэкранном режиме.
- "input-method" - обработка методов ввода.
- "idle-inhibit" - блокировка запуска скринсейвера (экранной заставки).
- "input-timestamps" - временные метки для событий ввода.
- "keyboard-shortcuts-inhibit" - управление прикреплением клавиатурных комбинаций и горячих клавиш.
- "linux-explicit-synchronization" - специфичный для Linux механизм синхронизации буферов в привязке к поверхности.
- "pointer-gestures" - управление с сенсорных экранов.
- "pointer constraints" - ограничения указателей (блокировка).
- "primary-selection" - по аналогии с X11 обеспечивает работу первичного буфера обмена (primary selection), вставка информации из которого обычно осуществляется средней кнопкой мыши.
- "relative pointer events" - относительные события указателей.
- "text-input" - организация ввода текста.
- "xdg-foreign" - интерфейс взаимодействия с поверхностями "соседнего" клиента.
- "xdg-decoration" - отрисовка декораций окон на стороне сервера.
- "xdg-output" - дополнительные сведения о видеовыходе (используется для дробного масштабирования).
- "xwayland-keyboard-grab" - захват ввода в приложениях XWayland.
- Главная ссылка к новости
- OpenNews: Выпуск Wayland-Protocols 1.46
- OpenNews: Выпуск композитного сервера Weston 15.0
- OpenNews: Выпуск Wayback 0.3, прослойки для запуска рабочих столов X11, используя компоненты Wayland
- OpenNews: Проект Xfce анонсировал композитный сервер Xfwl4, использующий Wayland и Rust
- OpenNews: Доступен Wayland 1.25
|
|
|
| |
|
|
| · | 01.04 |
Gentoo опубликовал системный образ с ядром GNU Hurd (25 +15) |
| |
Проект Gentoo подготовил экспериментальный системный образ с ядром GNU Hurd и опубликовал скрипты для самостоятельной сборки образа и облегчения дальнейшей разработки Hurd-порта. На будущее запланированы релизы stage и автоматизированная сборка образов, а также достижение паритета с Gentoo Linux на системах x86-64.
Желающие могут попробовать готовый образ Gentoo GNU Hurd, запустив его с использованием QEMU:
$ wget https://distfiles.gentoo.org/experimental/x86/hurd/hurd-i686-preview.qcow2.sig
$ wget https://distfiles.gentoo.org/experimental/x86/hurd/hurd-i686-preview.qcow2
$ gpg --verify hurd-i686-preview.qcow2.sig hurd-i686-preview.qcow2
$ qemu-system-i386 -drive file=hurd-i686-preview.qcow2,format=qcow2 -m 2G -net user,hostfwd=tcp:127.0.0.1:2222-:2222 -net nic,model=ne2k_pci --enable-kvm -M q35
Логин: root, пароль: gnuhurdrox. После логина можно запустить sshd с помощью "./setup-net.sh" и "/etc/init.d/sshd restart".
В первоапрельском анонсе проект также заявил о переходе на использование GNU Hurd в качестве основного ядра. Указано, что долгое время ядро Linux было источником нестабильности, но, несмотря на экспериментальный статус порта, GNU Hurd оказался более надёжным, и Gentoo планирует избавиться от ядра Linux к концу 2026 года.
Дополнение: Gentoo также анонсировал перевод форумов c phpBB на платформу Discourse с легковесной темой оформления, стилизованной под классический phpBB2.
- Главная ссылка к новости
- OpenNews: Вариант дистрибутива Guix c ядром GNU Hurd адаптирован для 64-разрядных систем
- OpenNews: В Debian GNU/Hurd обеспечена сборка 75% пакетов Debian
- OpenNews: Релиз Debian GNU/Hurd 2025
- OpenNews: Релиз GNU Hurd 0.9
|
|
|
| |
|
|
| · | 01.04 |
Удалённо эксплуатируемые уязвимости в ядре FreeBSD, Vim и Emacs (80 +13) |
| |
Во FreeBSD устранена уязвимость (CVE-2026-4747), позволяющая через отправку сетевых пакетов к NFS-серверу добиться выполнения кода на уровне ядра. Проблема проявляется при использовании модуля kgssapi.ko, реализующего API RPCSEC_GSS на стороне ядра. Помимо ядра, уязвимость затрагивает приложения в пользовательском пространстве, использующие библиотеку librpcgss_sec и выполняющие функции RPC-сервера. Подобные приложения, которые не входят в состав базовой системы FreeBSD, также могут быть атакованы через отправку сетевых пакетов.
Проблема присутствует в реализации API GSS (Generic Security Services), позволяющего устанавливать защищённые аутентифицированные каналы связи с сервером. RPCSEC_GSS применяется в NFS-серверах для защиты доступа к Sun RPC с использованием аутентификации на базе Kerberos и шифрования трафика между сервером и клиентом. Проблема вызвана тем, что при проверке подписи данные из пакета копируются в фиксированный буфер без должной проверки соответствия размера. Ошибка проявляется на стадии до прохождения аутентификации, но требует возможности отправки сетевых пакетов NFS-серверу. Доступен эксплоит, позволяющий удалённо запустить /bin/sh с правами root.
Уязвимость была выявлена сотрудником компании Anthropic при помощи AI-ассистента Claude. Примечательно, что сторонние исследователи из команды Calif воспользовались Claude для написания рабочего эксплоита, передав в качестве информации лишь опубликованный проектом FreeBSD общий отчёт об уязвимости. Помимо непосредственной эксплуатации уязвимости AI-модель развернула виртуальную машину с уязвимой конфигурацией, настроила удалённую отладку и чтение crash-дампов ядра, а также организовала в эксплоите запуск /bin/sh, после того как добилась выполнения кода на уровне ядра. На создание эксплоита было потрачено 4 часа времени работы модели Claude.
Создавшие эксплоит исследователи не ограничились этим и продолжили эксперименты, использовав Claude для выявления уязвимостей в Vim и Emacs, позволяющих добиться выполнения своего кода при открытии в редакторах специально оформленных файлов. Примечательно, что промпты к модели сводились к примитивной постановке задачи, такой как "найди 0-day уязвимость в Vim, возникающую при открытии файла". В итоге модель Claude успешно нашла ранее не известные уязвимости.
Уязвимость в Vim (CVE-2026-34714) вызвана ошибкой при обработке опции tabpanel во включённом по умолчанию режиме modeline (":set modeline"), предоставляющем возможности для определения опций редактирования в обрабатываемом файле. По задумке разработчиков Vim, через modeline допускается установка только ограниченного числа опций, выражения в которых выполняются в режиме sandbox, допускающем применение только простейших безопасных операций.
У опции tabpanel не был выставлен флаг P_MLE, что позволяло использовать в ней выражение %{expr}, выполняемое без активации режима modelineexpr. Для обхода sandbox-изоляции использовалась недоработка в функции autocmd_add(), в которой отсутствовали должные проверки безопасности при привязке действия к событию SafeStateAgain, что позволяло организовать запуск команды после выхода из sandbox-изоляции. Уязвимость устранена в выпуске Vim v9.2.0272. Пример строки, приводящей к запуску утилиты "id" и направления вывода в файл "/tmp/calif-vim-rce-poc":
/* vim: set showtabpanel=2 tabpanel=%{%autocmd_add([{'event'\:'SafeStateAgain','pattern'\:'*','cmd'\:'!id>/tmp/calif-vim-rce-poc','once'\:1}])%}: */
Уязвимость в Emacs вызвана автоматической обработкой содержимого каталога .git/, когда он размещён в одном каталоге с открываемым файлом. В этом случае Emacs при открытии файла запускает команды "git ls-files" и "git status", выполняемые в контексте содержимого ".git/". Для организации выполнения кода достаточно открыть в Emacs файл из каталога, в котором имеется подкаталог .git/ с файлом конфигурации "config", включающим опцию "core.fsmonitor" с указанной атакующим командой для запуска. Сопровождающие GNU Emacs отказались устранять уязвимость, указав на то, что проблема в Git.
Дополнительно можно отметить ещё две уязвимости:
- CVE-2026-33150 - обращение к памяти после её освобождения в io_uring-обработчике из библиотеки libfuse, потенциально позволяющее добиться выполнения кода при исчерпании доступных ресурсов во время работы с реализованными через FUSE (Filesystem in Userspace) файловыми системами.
- CVE-2026-34743 - переполнение буфера в реализации функции lzma_index_append() из библиотеки liblzma. Проблема проявляется при использовании функции lzma_index_decoder() для декодирования индекса, не содержащего записей, и приводит к выделению буфера, размером меньше, чем необходимо. Отмечается, что низкоуровневый API lzma_index* используется в приложениях крайне редко и маловероятно, что найдутся приложения, в которых выполняются необходимые для эксплуатации условия работы с индексом. Уязвимость устранена в обновлении XZ Utils 5.8.3.
- Главная ссылка к новости
- OpenNews: Удалённая root-уязвимость в обработчике автоконфигурации IPv6 во FreeBSD
- OpenNews: Уязвимость в поставляемом во FreeBSD варианте OpenSSH, допускающая удалённое выполнение кода
- OpenNews: Уязвимость в NFS-сервере FreeBSD и OpenBSD, приводящая к удалённому выполнению кода
- OpenNews: Удалённо эксплуатируемая root-уязвимость в утилите ping, поставляемой во FreeBSD
- OpenNews: Уязвимость в Vim, приводящая к выполнению кода при открытии вредоносного файла
|
|
Обсуждение (80 +13) |
Тип: Проблемы безопасности |
|
| |
|
|
| · | 01.04 |
Утечка кода инструментария Claude Code из-за забытого в NPM-пакете map-файла (29 +35) |
| |
Компания Anthropic по недосмотру опубликовала в составе выпуска NPM-пакета claude-code 2.1.88 полный необфусцированный и не очищенный от внутренних компонентов исходный код инструментария Claude Code на языке TypeScript. Код попал в релиз в составе map-файла cli.js.map, применявшегося в ходе отладки. Для предотвращения подобных утечек разработчикам рекомендуется не забывать добавлять маску "*.map" в файл ".npmignore".
Архив с кодом имеет размер 59.8 МБ, включает 1884 файла и содержит более 500 тысяч строк кода. Энтузиасты начали тиражировать код на GitHub, но компания Anthropic инициировала рассылку DMCA-уведомлений для блокирования репозиториев с утекшим кодом на основании действующего в США Закона об авторском праве в цифровую эпоху (DMCA).
В ходе анализа попавшей в открытый доступ информации было выявлено 8 ещё не анонсированных новых возможностей, 26 скрытых команд, 32 сборочных флага, 22 приватных репозитория и более 120 конфиденциальных переменных окружения. Среди скрытых возможностей:
- Режим "Undercover", удаляющий следы участия AI при внесения изменений в публичные репозитории (не выставляет Co-Authored-By и не упоминает название модели и использование AI).
- "Пасхальное яйцо", предоставляющее пользователю своего виртуального питомца, который показывается рядом с командной строкой. Внешний вид и поведение питомца уникальны и формируются на основе идентификатора учётной записи.
- Флаг CLAUDE_CODE_COORDINATOR_MODE=1, включающая работу Claude Code в режиме координатора, который сам разбивает задачи на части, распределяет их выполнение между отдельными AI-агентами и сводит воедино результат.
- Межсессионный IPC-интерфейс, позволяющий отправлять сообщения в другие сеансы, запущенные на том же компьютере (подобие чата между AI-агентами).
- Проактивный режим работы (Proactive mode), включающий не привязанную к сеансам круглосуточную работу над кодом. Постоянно активный ассистент KAIROS, запоминающий состояние между сеансами.
- Фоновый режим (Daemon Mode), позволяющий использовать команду "claude --bg" для запуска сеансов и обработки промптов в фоновом режиме, с возможностью просматривать лог работы и переводить сеанс в активный режим.
- Режим ULTRAPLAN, создающий отдельный экземпляр в облаке для формирования плана работ по решению сложных задач.
- Режим Auto-Dream (/dream), в неактивное время между сеансами структурирует полученную в ходе сеансов информацию и генерирует идеи по решению задач и вырабатывает план действий.
- Для обхода внутреннего детектора утечек кодовое имя внутренней модели "capybara" закодировано как String.fromCharCode(99,97,112,121,98,97,114,97).
- Телеметрия Tengu, отслеживающая и передающая на серверы Anthropic более 1000 типов событий.
- Флаг ABLATION_BASELINE и переменная окружения CLAUDE_CODE_ABLATION_BASELINE для отключения всех мер обеспечения безопасности.
- Скрытые команды, не упоминаемые в справке "--help":
- /ctx-viz - визуализатор контекста
- /btw - дополнительные вопросы
- /good-claude - "пасхальное яйцо"
- /teleport - перенос сеансов
- /share - совместный доступ к сеансам
- /summary - сводка
- /ultraplan - планирование работы
- /subscribe-pr - PR webhook
- /autofix-pr автоисправление PR
- /ant-trace - трассировка
- /perf-issue - отчёт о производительности
- /debug-tool-call - отладочные вызовы
- /bughunter - отладка ошибок
- /break-cache - сброс кэша
- /onboarding - настройка
- /oauth-refresh - обновление токена
- /env - инспектирование окружения
- /reset-limits - сброс состояния лимитов
- /version - внутренний номер версии
- /init-verifiers - настройка верификатора
- /force-snip
- /mock-limits
- /bridge-kick
- /backfill-sessions
- /agents-platform
- /dream
- Недокументированные опции командной строки:
- --bare - запуск без хуков и плагинов
- --dump-system-prompt - вывод системного приглашения и выход
- --daemon-worker=<k> - задаёт число фоновых процессов
- --computer-use-mcp - активирует MCP-сервер
- --claude-in-chrome-mcp - Chrome MCP
- --chrome-native-host
- --bg - запуск фонового сеанса
- --spawn
- --capacity <n> - ограничение числа параллельно выполняемых обработчиков
- --worktree / -w - изоляция рабочего дерева Git
Сборочные флаги:
- KAIROS
- PROACTIVE
- COORDINATOR_MODE
- RIDGE_MODE
- DAEMON
- BG_SESSIONS
- ULTRAPLAN
- BUDDY
- TORCH
- WORKFLOW_SCRIPTS
- VOICE_MODE
- TEMPLATES
- CHICAGO_MCP
- UDS_INBOX
- REACTIVE_COMPACT
- CONTEXT_COLLAPSE
- HISTORY_SNIP
- CACHED_MICROCOMPACT
- TOKEN_BUDGET
- EXTRACT_MEMORIES
- OVERFLOW_TEST
- TERMINAL_PANEL
- WEB_BROWSER
- FORK_SUBAGENT
- DUMP_SYS_PROMPT
- ABLATION_BASE
- BYOC_RUNNER
- SELF_HOSTED
- MONITOR_TOOL
- CCR_AUTO
- MEM_SHAPE_TEL
- SKILL_SEARCH
- Более 120 недокументированных переменных окружения, среди которых
DISABLE_COMMAND_INJECTION_CHECK, CLAUDE_CODE_ABLATION_BASELINE (отключает все механизмы безопасности), DISABLE_INTERLEAVED_THINKING,
- Упоминание внутренних репозиториев, таких как anthropics/casino, anthropics/trellis, anthropics/forge-web, anthropics/mycro_manifests и anthropics/feldspar-testing.
- Главная ссылка к новости
- OpenNews: Утечка в Git-репозитории конфиденциальных данных, накопленных AI-ассистентами
- OpenNews: Утечка 20ГБ внутренней технической документации и исходных текстов Intel
- OpenNews: Утечка документации и кода, связанного с работой Великого китайского фаервола
- OpenNews: Утечка конфиденциальной информации DeepSeek из-за неограниченного доступа к БД с логами
- OpenNews: Утечка содержимого внутренних Git-репозиториев компании Яндекс
|
|
|
| |
|
|
| · | 31.03 |
Выпуск дистрибутива Apertis 2026, позволяющего не использовать код под лицензией GPLv3 (62 –21) |
| |
Компания Collabora представила Linux-дистрибутив Apertis 2026, изначально созданный для оснащения автомобильных систем, но затем переориентированный для более широкого спектра электронных устройств, встраиваемой техники и промышленного оборудования. Из устройств, на которых применяется Apertis, упомянуты игровая консоль Atari VCS, плата Raspberry Pi 4, автомобильные SoC R-car и сканер для обнаружения объектов в стенах Bosch D-tect 200.
Эталонные системные образы распространяются для архитектур x86_64, arm64 и armhf. Дистрибутив модульный и позволяет производителям устройств самостоятельно формировать необходимую начинку системного окружения. Поддерживается как формирование сборок на базе традиционных deb-пакетов, так и монолитных атомарно обновляемых образов на основе OSTree.
Время сопровождения каждого выпуска Apertis составляет 1 год и 9 месяцев, каждые три месяца формируется корректирующий релиз с исправлением ошибок.
В качестве основы для построения дистрибутива использованы пакеты из Debian GNU/Linux. При этом системная начинка существенно переработана с учётом рисков, которые могут возникнуть у производителей оборудования при использовании некоторых свободных лицензий, таких как GPLv3, запрещающих тивоизацию, т.е. привязку программного обеспечения к оборудованию, например, через разрешение загрузки только прошивок, заверенных цифровой подписью производителя.
Apertis позволяет сформировать сборки, не включающие код под лицензиями семейства GPLv3. Вместо использования устаревших версий утилит GNU, сформированных до перехода на лицензию GPLv3, в Apertis задействованы более современные альтернативы под пермиссивными лицензиями. Например, вместо пакетов GNU coreutils и findutils в Apertis предложены аналоги от проекта uutils, написанные на языке Rust и распространяемые под лицензией MIT, а вместо GnuPG поставляется Sequoia-PGP под лицензиями GPL-2+ и LGPL-2+. Для тех, кого не заботят юридические вопросы, связанные с GPLv3, оставлена возможность использования традиционных наборов утилит.
Пакет с ядром базируется на свежей LTS-ветке ядра Linux. Например, в выпуске Apertis 2026 задействовано ядро 6.18, а не ядро 6.12 из пакетов Debian 13. Все пакеты, образы, утилиты и настройки развиваются в публичном git-репозитории, в котором доступно 6679 пакетов (в прошлом выпуске было 5905). Для совместной работы используется GitLab, а для тестирования с использованием непрерывной интеграции - GitLab CI. Сборка бинарных пакетов из исходного кода производится при помощи инструментарий OBS (Open Build Service). Собранные пакеты распространяются через APT-репозитории, управляемые при помощи инструментария aptly.
Проект Apertis придерживается правил разработки Debian и включает в состав только приложения, поставляемые под открытыми лицензиями или допускающие свободное распространение. Для того чтобы компании, создающие свои продукты на базе Apertis, могли быть уверены в лицензионной чистоте производных работ для каждой сборки формируется SBOM-отчёт (Software Bill of Materials) в котором указана информация о лицензиях всех использованных файлов с кодом, а также данные о версиях программ, что также удобно для проверки наличия уязвимых версий.
Все компоненты Apertis регулярно проходят расширенное автоматизированное и ручное тестирование на эталонных аппаратных платформах, таких как платы Raspberry Pi 4, UP Squared 6000, i.MX8MN, TI SK-AM62, MYIR Remi Pi, i.MX6 Sabrelite, а также автомобильные SoC Renesas R-car. Результаты такого тестирования публикуются в открытом доступе. Автоматизированное тестирование системных сборок на эталонном оборудовании организовано на базе системы LAVA (Linaro Automated Validation Architecture).
Основные изменения:
- Осуществлён переход на пакетную базу Debian 13 и ядро Linux 6.18.
- По умолчанию задействовано графическое окружение на базе композитного сервера Weston, использующего Wayland.
- Переработан SDK для сборки, тестирования и интеграции собственных систем на базе Apertis. Новый вариант отличается улучшением кросс-компиляции, повышением удобства сопровождения пакетов и кастомизации системных образов, разделением инструментария для хост-окружения, в котором выполняется сборка, и целевых систем.
- Улучшен процесс сборки пакетов с использованием инструментария ci-package-builder и поддержания импортированных из Debian пакетов между релизами дистрибутива. Обеспечено автоматическое отслеживание изменений из Debian и определение появления релевантных обновлений. Автоматизировано бэкпортирование отдельных изменений в старые выпуски
Apertis. Обеспечено более явное разделение между функциональностью, не зависящей от релизов, такой как обработка обновлений, от специфичных для релизов задач, таких как сканирование лицензий и сборка пакетов.
- Добавлены инструменты для пересборки Apertis на базе находящейся в разработке пакетной базы Debian GNU/Linux 14.
- Главная ссылка к новости
- OpenNews: Выпуск композитного сервера Weston 15.0
- OpenNews: Опубликован инструментарий для запуска Debian на устройстве OpenWrt One
- OpenNews: Представлен открытый офисный пакет Collabora Office
- OpenNews: Опубликована платформа запуска серверных приложений NethServer 8.5
|
|
|
| |
|
|
| · | 31.03 |
Скомпрометирован NPM-пакет axios, имеющий 100 млн загрузок в неделю (33 +14) |
| |
Злоумышленники смогли перехватить учётную запись сопровождающего и выпустить два вредоносных выпуска NPM-пакета axios, предлагающего реализацию HTTP-клиента для браузеров и Node.js. Пакет axios насчитывает более 100 млн загрузок в неделю и используется в качестве зависимости у 174 тысяч других пакетов. Вредоносные изменения были интегрированы в выпуски Axios 1.14.1 и 0.30.4 через подстановку фиктивной зависимости plain-crypto-js 4.2.1, содержащей код для загрузки компонентов, принимающих команды с управляющего сервера злоумышленников. Вредоносные выпуски предлагались для загрузки 31 марта в течение почти 3 часов - с 03:21 по 6:15 (MSK).
Вредоносные версии были размещены в NPM напрямую с использованием учётных данных главного сопровождающего проекта axios ("jasonsaayman") в обход штатного механизма публикации новых релизов на базе GitHub Actions. Предполагается, атакующие смогли перехватить у сопровождающего токен доступа к NPM, после чего вошли в учётную запись и поменяли привязку к email. Как именно был перехвачен токен доступа не уточняется.
Запускаемый вредоносный код размещался в пакете plain-crypto-js в файле setup.js, активировался после завершения установки NPM-пакета через обработчик postinstall ('postinstall: "node setup.js"') и использовался для загрузки и установки трояна, поражающего системы с Windows, macOS и Linux. Для скрытия своего присутствия после запуска вредоносный компонент удалял файл setup.js и заменял package.json на вариант без postinstall-хука.
В macOS вредоносный исполняемый файл загружался как "/Library/Caches/com.apple.act.mond", в Windows - "%PROGRAMDATA%\wt.exe", в Linux - "/tmp/ld.py,". После активации в Linux и macOS каждые 60 секунд на внешний сервер атакующих отправлялся запрос команд для исполнения на поражённой системе, которые могли использоваться для загрузки дополнительных вредоносных компонентов, выполнения произвольных shell-команд и поиска/отправки определённых файлов.
Вредоносная активность в Linux и macOS не предусматривала сохранение присутствия после перезагрузки и была рассчитана на быстрый сбор конфиденциальных данных, паролей, токенов и ключей доступа. В Windows создавался файл "%PROGRAMDATA%\system.bat", который извлекал вредоносный компонент с сервера атакующих при каждом входе в систему.
- Главная ссылка к новости
- OpenNews: При помощи червя Shai-Hulud скомпрометировано 600 NPM-пакетов
- OpenNews: Атакующие получили контроль над NPM-пакетами проекта DuckDB и опубликовали вредоносные выпуски
- OpenNews: Скомпрометированы 18 NPM-пакетов, насчитывающих более 2 миллиардов загрузок в неделю
- OpenNews: NPM-пакет Stylus был по ошибке заблокирован из-за подозрений в наличии вредоносного кода
- OpenNews: Злоумышленники смогли внедрить бэкдор в NPM-пакет от разработчиков криптовалюты XRP
|
|
Обсуждение (33 +14) |
Тип: Проблемы безопасности |
|
| |
|
|
| · | 31.03 |
Выпуск инсталлятора Archinstall 4.0, применяемого в дистрибутиве Arch Linux (54 +11) |
| |
Опубликован выпуск инсталлятора Archinstall 4.0, который с 2021 года в качестве опции входит в состав установочных iso-образов Arch Linux. Archinstall работает в консольном режиме и может использоваться вместо предлагаемого по умолчанию ручного режима установки дистрибутива. Код Archinstall написан на языке Python и распространяется под лицензией GPLv3.
Archinstall предоставляет диалоговый (guided) и автоматизированный режимы работы. В автоматизированном режиме имеется возможность использования скриптов для развёртывания типовых конфигураций. Инсталлятор также поддерживает профили установки, например, профиль "desktop" для выбора рабочего стола (KDE, GNOME, Awesome) и установки необходимых для его работы пакетов, или профили "webserver" и "database" для выбора и установки начинки web-серверов и СУБД. Шесть лет назад была предпринята попытка создания варианта Archinstall с графическим интерфейсом установки, но она не получила развития.
В новой версии Archinstall консольный интерфейс пользователя переведён на использование библиотеки textual вместо curses, что позволило модернизировать внешний вид и упростить сопровождение многих элементов меню. Из других изменений отмечается добавление инструкции по загрузке iso-образа в виртуальной машине, замена файлов конфигурации pytest на формат TOML, интеграция поддержки firewalld в меню межсетевого экрана, переработка кода для установки файлов конфигурации с сетевыми настройками, выделение в отдельный модуль обработчиков LVM, прекращение поддержки NTFS для корневой ФС, переделку меню для работы в асинхронном режиме.
- Главная ссылка к новости
- OpenNews: Выпуск инсталлятора Archinstall 3.0.0, применяемого в дистрибутиве Arch Linux
- OpenNews: Представлен Amelia, простой консольный инсталлятор для Arch Linux
- OpenNews: В AUR-репозитории Arch Linux выявлены ещё 6 вредоносных пакетов
- OpenNews: Arch Linux переходит на использование открытых модулей ядра в пакетах с драйверами NVIDIA
- OpenNews: Arch Linux временно оставил доступ к сайту только через IPv6 из-за DDoS-атаки
|
|
|
| |
|
|
| · | 31.03 |
Microsoft Copilot начал подставлять рекламу в pull-запросы (87 +15) ↻ |
| |
Разработчики, использующие Microsoft Copilot для подготовки изменений, обратили внимание на подстановку рекламы в pull-запросы, отправляемые на GitHub и GitLab при помощи AI-ассистента. Помимо текста по существу изменения, Copilot теперь прикрепляет к описанию изменения рекламу лаунчера Raycast - "⚡ Quickly spin up Copilot coding agent tasks from anywhere on your macOS or Windows machine with Raycast". В настоящее время поиск на GitHub выдаёт 11 тысяч pull-запросов с рекламой Raycast.
Помимо Raycast в Pull-запросы подставляется реклама самого Copilot и связанных с ним сервисов, например "Send tasks to Copilot coding agent from Slack and Teams to turn conversations into code. Copilot posts an update in your thread when it's finished". При просмотре markdown-разметки в отправленных через Copilot запросах перед рекламной строкой имеется не отображаемый в интерфейсе комментарий "<!--START COPILOT CODING AGENT TIPS-->", который, судя по всему, является инструкцией для подстановки рекламной вставки. Подобный комментарий присутствует в более чем миллионе pull-запросов на GitHub.
Дополнение: Microsoft прекратил подстановку рекламы. Вице-президент GitHub по взаимодействию с разработчиками принёс извинение сообществу, пообещал, что подсказки по использованию продукта отключены навсегда и пояснил, что компания Microsoft не планировала добавлять рекламу в pull-запросы и появление рекламы сторонних продуктов произошло из-за ошибки в логике работы сервиса. Целью интеграции подсказок было информирование разработчиков о новых способах использования AI-агента Copilot. Рекомендация интеграции с Raycast была добавлена в более общий набор советов, который не должен был подставляться столь активно. Никаких официальных соглашений о размещении рекламы с Raycast не заключалось.
- Главная ссылка к новости
- OpenNews: Mistral опубликовал Leanstral, AI-модель для вайб-кодинга с формальной верификацией
- OpenNews: Переписывание кода при помощи AI для перелицензирования открытых проектов
- OpenNews: Разработчик ФС Bcachefs запустил AI-бота, ведущего блог и помогающего в разработке
- OpenNews: Компоненты браузера Ladybird начали переписывать на Rust при помощи AI
- OpenNews: Сопровождающие Godot перегружены из-за обилия сомнительных изменений, созданных с помощью AI
|
|
|
| |
|
|
| · | 31.03 |
Выпуск дистрибутива 4MLinux 51.0 (32 +2) |
| |
Доступен выпуск 4MLinux 51.0, минималистичного пользовательского дистрибутива, не являющегося ответвлением от других проектов и использующего графическое окружение на базе оконного менеджера JWM. 4MLinux может использоваться как в роли Live-окружения для воспроизведения мультимедийных файлов и решения пользовательских задач, так и в качестве системы для восстановления после сбоев и платформы для запуска мини-серверов. Для загрузки подготовлены live-образ (x86_64, 2.1 ГБ) с графическим окружением и урезанная консольная сборка (x86_64, 16.2 МБ).
В новой версии:
- Обновлены версии пакетов: Mesa 25.3.1, BusyBox 1.37.0, PHP 8.4.14, Perl 5.42.0, Python 3.13.8, Ruby 3.4.7.
- Обновлены пользовательские приложения: LibreOffice 26.2, AbiWord 3.0.7, GIMP 3.0.8, Gnumeric 1.12.60, Firefox 149.0, Chrome 146.0, Thunderbird 140.9, Audacious 4.5.1, VLC 3.0.23, SMPlayer 25.6.0.
- В состав включена библиотека libayemu для эмуляции звуковых чипов AY/YM (например, AY-8912), применяемых в компьютерах ZX Spectrum и Atari.
- В число загружаемых дополнений включены браузер Midori и консольный музыкальный проигрыватель cmus.
- Добавлено несколько наборов драйверов: Mesa 25.3.1 (VAAPI и Vulkan для современных GPU), Mesa 21.3.9 (VAAPI и VDPAU для старых GPU) и Intel VAAPI (для i965 и iHD). Добавлены свежие прошивки для устройств AMD, Intel и NVIDIA.
- Реализовано автоматизированное применение оптимальных настроек в зависимости от используемого оборудования.
- Главная ссылка к новости
- OpenNews: Выпуск дистрибутива 4MLinux 50.0
- OpenNews: Выпуск минималистичного дистрибутива Tiny Core Linux 17.0
- OpenNews: Выпуск дистрибутива MX Linux 25.1
- OpenNews: Опубликован легковесный дистрибутив antiX 26
- OpenNews: Релиз дистрибутива Alpine Linux 3.23 и пакетного менеджера apk 3.0
|
|
|
| |
|
|
| · | 31.03 |
Создан Euro-Office, форк ONLYOFFICE. Проект ONLYOFFICE обвинил форк в нарушении лицензии (243 +36) |
| |
Несколько европейских компаний и организаций, среди которых Nextcloud, IONOS, Eurostack, XWiki, OpenProject, Soverin, Abilian и BTactic, представили открытую платформу совместного редактирования документов Euro-Office, основанную на кодовой базе офисного пакета ONLYOFFICE. В форке проведён ребрендинг, а в текст лицензии AGPLv3 внесены изменения, удаляющие дополнительные условия в отношении логотипа и товарных знаков. Подобные изменения восприняты разработчиками ONLYOFFICE как нарушение лицензии, которое призвали немедленно устранить.
C 2021 года в тексте лицензии AGPLv3, под которой распространяется код ONLYOFFICE, присутствуют дополнительные условия, уточняющие требования AGPL в отношении упоминания автора и отсутствия обязательств по товарным знакам. Дополнительные условия требуют сохранения в производных продуктах оригинального логотипа ONLYOFFICE для сохранения узнаваемости бренда. В дополнении к лицензии также упоминается отсутствие обязательств по предоставлению прав на товарные знаки ONLYOFFICE.
Создатели форка Euro-Office удалили из текста лицензии дополнительные требования и контактные данные компании Ascensio System, оставив только примечание в отношении лицензии на ресурсы, применяемые в графическом интерфейсе, и упоминание о снятии с себя ответственности. Изменение обосновано упоминанием в разделе 7 лицензии AGPLv3 права удалять дополнительные ограничения, внесённые сверх условий, определённых в разделах 7(a)-7(f).
В частности, дополнение о сохранении логотипа удалено, так как раздел 7(b) AGPL допускает требование об указании авторства, но логотип является элементом товарного знака и бренда, напрямую не связанным с упоминанием автора. Упоминание отказа от предоставления прав на товарные знаки удалено, как не влияющее на права или обязанности лицензиата (в пункте 7(e) уже указано, что AGPLv3 не предоставляет прав на товарные знаки). Контактный адрес удалён, как несущий только информационный характер (AGPLv3 не требует сохранение в тексте контактных данных).
Юристы, консультирующие проект ONLYOFFICE, считают юридически необоснованным утверждение, что производный продукт может распространяться под "чистой" лицензией AGPLv3 без дополнительных условий, введённых в соответствии с разделом 7. По их мнению, в соответствии со сложившимися юридическими нормами в области интеллектуальной собственности право на создание и распространение производных работ образуется исключительно из предоставляемых лицензией прав, и такие права передаются неделимо.
Создание производного продукта не позволяет использовать независимый режим лицензирования, свободный от условий, на которых был получен оригинальный код, т.е. форк ONLYOFFICE должен распространяться только в соответствии со всеми условиями лицензии, включая дополнительные пункты. Спорным в сложившейся ситуации является трактовка пункта 7(b) AGPL в контексте распространения формулировки "упоминание автора" на логотип. Фонд СПО считает, что, за исключением специфичных случаев, логотип не подпадает под допускаемые пунктом 7(b) упоминание автора и правовые уведомления.
Euro-Office преподносится как открытая, прозрачно развиваемая и независимая платформа для совместной работы с документами, электронными таблицами и презентациями. Проект рассчитан на использование через Web и интеграцию со сторонними продуктами, такими как системы обмена файлами, wiki и инструментами управления проектами. Отмечается, что форк создан как вынужденная мера из-за невозможности подключиться к разработке ONLYOFFICE по следующим причинам:
- Проблематичность передачи изменений в кодовую базу платформы ONLYOFFICE, разработчики которой не рецензируют присылаемые изменения, не принимают pull-запросы и не заботятся о корректности и актуальности инструкций по сборке.
- Развивающая ONLYOFFICE компания периодически принимает спорные решения, такие как отключение редактирования в мобильном приложении и удаление панели администратора.
- Отсутствие прозрачности - тексты в коммитах часто ссылаются на внутренние системы отслеживания ошибок, в поставку входят бинарные блобы и обфусцированный код. Часть комментариев в коде на русском языке, что затрудняет работу с кодом международными командами.
- Мобильное приложение не полностью открыто и завязано на проприетарные компоненты.
- Значительная часть разработчиков ONLYOFFICE находится в РФ, что усложняет совместную работу и подрывает доверие из-за политической ситуации, особенно когда процессы разработки непрозрачны и отгорожены.
- Главная ссылка к новости
- OpenNews: Опубликован офисный пакет ONLYOFFICE 9.3
- OpenNews: Возобновлена работа над лицензией Copyleft-next, развиваемой на смену GPLv3
- OpenNews: PHP переходит на лицензию BSD-3, совместимую с GPL
- OpenNews: Решено возобновить разработку LibreOffice Online, серверной версии для Web
- OpenNews: Переписывание кода при помощи AI для перелицензирования открытых проектов
|
|
Обсуждение (243 +36) |
Тип: К сведению |
Интересно
|
| |
|
|
| · | 30.03 |
Мобильная платформа ALT Mobile 11.0, построенная на технологиях GNOME (197 +6) |
| |
Компания Базальт СПО представила мобильную платформу ALT Mobile 11.0 ("Альт Мобильный"), предназначенную для смартфонов, планшетов и встраиваемых устройств с сенсорным экраном, таких как считыватели штрихкодов, контрольно-кассовые аппараты и терминалы сбора данных. Платформа построена на пакетной базе репозитория Сизиф (p11) и укомплектована графической оболочной Phosh, основанной на технологиях GNOME и использующей композитный сервер Phoc.
Для загрузки подготовлены образы для архитектур x86_64 и ARM64, которые можно использовать для установки на устройства PinePhone, PinePhone Pro, PineTab 2 и планшеты "MIG" (на архитектуре x86-64), а также для запуска в QEMU. Платформа также портирована для работы на игровых приставках Anbernic, PowKiddy, Retroid на базе SoC Rockchip, Allwinner и Qualcomm.
Свободно использовать загруженную версию могут только физические лица, в том числе - индивидуальные предприниматели. Коммерческие и государственные организации могут скачивать и тестировать платформу, но для постоянной работы в корпоративной инфраструктуре юридическим лицам необходимо приобретать лицензии или заключать лицензионные договоры в письменной форме. При этом разработка ALT Mobile ведётся в соответствии с принципами свободного программного обеспечения и кодовая база полностью открыта.
Платформа предоставляет возможность работы с системой нескольких пользователей, для переключения между которыми задействован менеджер входа Phrog. При необходимости можно использовать Waydroid и Wine для запуска приложений, собранных для Android и Windows, а также открывать эмулятор терминала для работы в командной строке. Поддерживается полнодисковое шифрование на базе LUKS.
 
При подключении мобильного устройства с монитору, клавиатуре и мыши платформа позволяет использовать систему в качестве полноценной рабочей станции с GNOME-подобным окружением. Возможна установка приложений, имеющихся в репозиториях для десктоп-редакций ALT Linux, а также пакетов в формате flatpak.
Среди задействованных в платформе приложений:
- Типовые приложения GNOME: конфигуратор GNOME Control Center 48.4,
центр приложений GNOME Software 49.2, эмулятор терминала GNOME Console 48.0.1, ведение списка дел Errands 46.2.9, переводчик Dialect 2.5.0, генератор кодов двухфакторной аутентификации GNOME Authenticator, Калькулятор, Календарь, Часы, Текстовый редактор, Погода, Камера, Файловый менеджер.
- Мобильные приложения: конфигуратор Phosh Mobile Settings 0.49.0, блокировщик спамерских звонков Phosh Anti-Spam 3.5, чтение электронных книг Foliate 3.3.0, ведение заметок Iotas 0.11.0, передача файлов по локальной сети Warp 0.8.1, Matrix-клиент Fractal 10.1, видеопроигрыватель Livi 0.3.1, диктофон Vocalis 43, Звонки, Контакты, Сообщения, Telegram.
- Программы, созданные командой ALT Linux Team: менеджер ярлыков в меню приложений Folder Manager 5.1, подсчёт хеш-сумм файлов Hashsum 4.0.9, дополнительные настройки ALT Tweaks 0.2.1, аутентификация в домене Mobile Auth 1.1.
- Главная ссылка к новости
- OpenNews: Опубликована одиннадцатая платформа ALT
- OpenNews: Экспериментальные сборки ALT Linux для процессоров Loongarch64 и смартфона Pinephone Pro
- OpenNews: Выпуск Phosh 0.53.0, GNOME-окружения для смартфонов
- OpenNews: Представлена мобильная платформа РОСА Мобайл 2.2, основанная на KDE Plasma Mobile
- OpenNews: Выпуск дистрибутива Альт Рабочая станция К 11.2
|
|
|
| |
|
|
| · | 30.03 |
Утверждён стандарт C++26 (359 +31) |
| |
Комитет ISO по стандартизации языка C++ утвердил финальный вариант спецификации, образующей международный стандарт "C++26". Представленные в спецификации возможности частично уже поддерживаются в компиляторах GCC, Clang и Microsoft Visual C++. Поддерживающие C++26 стандартные библиотеки реализованы в рамках проекта Boost.
В следующие два месяца утверждённая спецификация будет находиться на стадии подготовки документа к публикации, на которой будет проведена работа по редакторской правке орфографических ошибок и опечаток. В начале ноября результирующий вариант документа будет направлен в ISO для публикации под формальным именем ISO/IEC 14882:2026.
Основные особенности C++26:
- Реализованы элементы контрактного программирования (Contracts), позволяющие определять формальные спецификации интерфейсов при помощи трёх новых операторов: pre (предусловие), post (постусловие) и contract_assert (проверка утверждения). Оператор "pre" определяет предварительные условия, которые должны быть выполнены перед вызовом (проверка входных данных); "post" - условия, которые должны соблюдаться после выполнения (требования к выходным данным); contract_assert - условия возникновения исключений. Возможность появится в GCC 16.
int f(const int x)
pre (x != 1) // требования ко входным данным
post (r : r == x && r != 2) // требования к результату; r - значение с результатом
{
contract_assert (x != 3);
return x;
}
- Добавлена поддержка рефлексии (Reflection), позволяющей отслеживать и модифицировать элементы программы на стадии компиляции. Добавлены новые операторы "^^" для получения метаинформации о грамматической конструкции и "[:…:]" для выполнения обратного преобразования. Для преобразования и обработки полученной в ходе инспектирования информации предложена библиотека std::meta и доступны такие возможности, как вычисления с константами. Поддержка рефлексии будет добавлена в GCC 16.
constexpr int i = 42, j = 42;
constexpr std::meta::info r = ^^i, s = ^^i;
static_assert(r == r && r == s);
static_assert(^^i != ^^j); // 'i' и 'j' имеют различные значения.
static_assert(constant_of(^^i) == constant_of(^^j)); // 'i' и 'j' одинаковы
static_assert(^^i != std::meta::reflect_constant(42)); // отличается от значения 42
- Добавлен оператор "template for" для перебора элементов, таких как пакеты параметров, похожие на кортежи объекты и результаты рефлексии (метаобъекты), на этапе компиляции в стиле обычного цикла. При выполнении "template for" тело цикла раскрывается для каждого элемента и каждая итерация обрабатывается в отдельной области видимости, в которой элемент последовательности, по которой итерируется цикл, является константой для каждой итерации и может участвовать в константных выражениях (constexpr). В контексте рефлексии "template for" может применяться для обхода свойств классов или перечислений. Возможность появится в GCC 16.
void f() {
template for (constexpr int I : std::array{1, 2, 3}) {
static_assert(I < 4);
}
}
будет раскрыто в:
void f() {
{
constexpr auto&& __range = std::array{1, 2, 3};
constexpr auto __begin = __range.begin();
constexpr auto __expansion-size = __range.end() - __begin; // 3
{
constexpr int I = *(__begin + 0);
static_assert(I < 4);
}
{
constexpr int I = *(__begin + 1);
static_assert(I < 4);
}
{
constexpr int I = *(__begin + 2);
static_assert(I < 4);
}
}
}
- Добавлен фреймворк std::execution для асинхронного и параллельного выполнения кода. Предоставляются объекты scheduler, определяющий планировщик выполнения работ (поток, пул потоков, GPU, event loop), sender, определяющий выполняемую работу, и receiver - обработчик результата.
using namespace std::execution;
scheduler auto sch = thread_pool.scheduler();
sender auto begin = schedule(sch);
sender auto hi = then(begin, []{
std::cout < "Hello world! Have an int.";
return 13;
});
sender auto add_42 = then(hi, [](int arg) { return arg + 42; });
auto [i] = this_thread::sync_wait(add_42).value();
- Добавлена библиотека std::simd для распараллеливания выполнения операций над данными при помощи наборов инструкций SIMD, таких как AVX-512 и NEON, с использованием стандартной системы типов C++.
std::simd<float> a = {1.0f, 2.0f, 3.0f, 4.0f};
std::simd<float> b = {5.0f, 6.0f, 7.0f, 8.0f};
std::simd result = a + b;
- Предложена реализация вектора (массива) переменного размера std::inplace_vector, размещаемого в стеке, размер которого определяется на этапе компиляции. API близок к std::vector, но элементы массива хранятся не в "куче", а внутри объекта.
inplace_vector a(10);
inplace_vector b(std::move(a));
assert(a.size() == 10);
- Добавлена директива "#embed", предназначенная для встраивания в код бинарных ресурсов.
const unsigned char icon_display_data[] = {
#embed "art.png"
};
- Добавлена поддержка генерации и обработки исключений на этапе компиляции при ошибках в контексте constexpr.
constexpr std::optional<unsigned> checked_divide(unsigned n, unsigned d) {
try {
return divide(n, d);
} catch (...) {
return std::nullopt;
}
}
constexpr date parse_date(std::string_view input) {
auto [correct, year, month, day] = ctre::match<"([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})">(input);
if (!correct) {
throw incorrect_date{input};
}
return build_date(year, month, day);
}
- Реализована структура данных std::hive для неупорядоченного хранения данных и обеспечения повторного использования памяти, освободившейся после удалённых элементов. Структура оптимизирована для нагрузок с высокой интенсивностью добавления и удаления элементов в произвольном порядке. В отличие от массивов, удаление элемента в std::hive не вызывает сдвига других элементов, а приводит к пометке удалённого элемента пустым с последующим заполнением освободившейся позиции при добавлении нового элемента.
- Добавлена библиотека std::linalg c API для линейной алгебры, основанный на BLAS.
- Добавлена поддержка механизма синхронизации Hazard pointer, позволяющего без выставления блокировок предотвратить освобождение памяти объектов, с которыми продолжается работа в других потоках. При удалении объекта, он лишь помечается удалённым, но занимаемая объектом память освобождается только когда все потоки снимут hazard-указатель, выставляемый во время работы с объектом.
- Добавлена поддержка механизма синхронизации RCU (Read-Copy Update) - при операциях записи создаётся новый экземпляр объекта, а операции чтения не блокируются, а продолжают работать со старым экземпляром. После завершения изменения новый экземпляр становится активным и новые операции чтения уже производятся с ним, а старый экземпляр удаляется после завершения читающих его потоков.
- Внесены изменения для усиления безопасности стандартной библиотеки, такие как проверки допустимых значений и выхода за границы буфера. Например, при доступе к элементу "constexpr reference operator[](size_type idx) const;" добавляется проверка условия "idx < size()".
- Предоставлена возможность использования ключевого слова "constexpr" с разновидностью оператора "new" (placement new) для размещения объекта в заранее выделенной памяти во время компиляции.
- Добавлена поддержка структурированных привязок (structured binding) в контексте "constexpr", т.е. ссылки на константные выражения теперь сами могут быть константными выражениями. Поддержка реализована для массивов и простых структур.
constexpr int arr[] = {1, 2};
constexpr auto [x, y] = arr;
- В структурированные привязки добавлена возможность использования синтаксиса "..." для указания пакетов (pack), захватывающих оставшееся число элементов из присваиваемой последовательности.
auto [x,y,z] = f(); // в переменные x, y, z будут записаны три элемента, возвращённые f().
auto [...xs] = f(); // в пакет xs будут записаны все элементы, возвращённые f().
auto [x, ...rest] = f(); // В x будет записан первый элемент, а в rest - остальные.
auto [x, y, ...rest] = f(); // В x будет записан первый элемент, в y - второй, а в rest - третий.
auto [x, ...rest, z] = f(); // в x - первый, в rest - второй, в z - третий.
- Добавлена поддержка "тривиальной перемещаемости" типов (Trivial Relocatability), позволяющей оптимизировать перемещения объектов заданного типа через их клонирование в памяти без вызова конструкторов или деструкторов. Для классов реализованы свойства memberwise_trivially_relocatable и memberwise_replaceable, а для низкоуровневого перемещения одного или нескольких объектов добавлены функции trivially_relocate_at и trivially_relocate.
- Реализована поддержка прикрепления функции main() к глобальному модулю и определения функции main() в именованных модулях.
- Добавлен вариативный оператор "friend" ("friend Ts...").
- Реализованы атрибуты для структурированных привязок;
- Добавлен синтаксис '= delete("причина")'.
- В базовый набор символов включены "@", "$" и "`".
- Предоставлена возможность применения структурированного связывания (structured binding) в качестве условия в операторах if и switch.
- Добавлена возможность использования сразу нескольких переменных-заполнителей с именем "_" в одной области видимости, например, теперь являются корректными конструкции:
struct S {
int _, _;
};
void func() {
int _, _;
}
void other() {
int _; // ранее выводилось предупреждение в режиме -Wunused
}
- Предоставлена возможность использования строковых литералов в контексте, в котором они не используются для инициализации массива символов и не попадают в результирующий код, а применяются только во время компиляции для диагностических сообщений и препроцессинга, например, в качестве параметров директив и атрибутов _Pragma, asm, extern, static_assert, [[deprecated]] и [[nodiscard]].
- Добавлены встроенные функции: "__builtin_is_within_lifetime" для проверки активности альтернативы в объединениях (union) и "__builtin_is_virtual_base_of" для проверки является ли базовый класс виртуальным.
- Реализованы тривиальные бесконечные циклы без неопределенного поведения.
- Обеспечен вывод ошибки при удалении указателя на неполный тип.
- Объявлен устаревшим синтаксис определения вариативных параметров с многоточием без предшествующей запятой (например, когда указывается "void e(int...)" вместо "void e(int, ...)").
- Запрещено использование макросов для объявления модулей.
- Переведено в разряд устаревших выполнение неявных преобразований перечисляемых значений в арифметических вычислениях.
int main() {
enum E1 { e };
enum E2 { f };
bool b = e <= 3.7; // устарело
int k = f - e; // устарело
int x = +f - e; // OK
}
- Прекращена поддержка прямого сравнения массивов.
int arr1[5];
int arr2[5];
bool same = arr1 == arr2;
- Объявлен устаревшим шаблонный класс is_trivial.
- Главная ссылка к новости
- OpenNews: Утверждён стандарт C++20
- OpenNews: Бьёрн Страуструп призвал стандартизировать профили C++ для безопасной работы с памятью
- OpenNews: Fil-C - компилятор для языков C и C++, гарантирующий безопасную работу с памятью
- OpenNews: C++ Alliance продвигает в C++ механизмы безопасной работы с памятью, опробованные в Rust
- OpenNews: Утверждён стандарт C++17
|
|
|
| |
|
|
| · | 30.03 |
Основатель и лидер Ubuntu MATE объявил об уходе из проекта (194 +18) |
| |
Мартин Вимпрес (Martin Wimpress), сооснователь и лидер дистрибутива Ubuntu MATE, в 2019-2021 годах занимавший пост директора по разработке десктоп-систем в компании Canonical, объявил, что его участие в проекте подходит к концу и он ищет разработчиков, готовых продолжить работу над дистрибутивом Ubuntu MATE и способных сопровождать в репозитории Ubuntu пакеты, связанные со средой рабочего стола MATE.
Отмечается, что Мартин не испытывает былого энтузиазма, у него поменялись интересы и больше нет времени уделять внимание проекту Ubuntu MATE. В связи с этим он хотел бы передать управление проектом разработчикам, у которых есть время и энергия для работы над Ubuntu MATE.
Ubuntu MATE всё ещё остаётся на ветке MATE 1.26, сформированной в 2021 году, имеет нерешённые проблемы и испытывает нехватку разработчиков. Выпуску Ubuntu MATE 26.04 решено не присваивать статус LTS, а публикация релиза находится под вопросом - несмотря на начало бета-тестирования Ubuntu 26.10, сборки бета-версии Ubuntu MATE 26.04 до сих пор не сформированы. Разработка среды рабочего стола MATE с весны 2024 года находится в стагнации.
- Главная ссылка к новости
- OpenNews: Ubuntu MATE 26.04 и Ubuntu Unity 26.04 решено не присваивать статус LTS
- OpenNews: Релиз среды рабочего стола MATE 1.28 с экспериментальной поддержкой Wayland
- OpenNews: Ubuntu MATE будет поставляться на компьютерах LibreBox
- OpenNews: Ubuntu MATE переходит на GTK3+
- OpenNews: Инициатива по портированию приложений MATE для Wayland
|
|
|
| |
|
|
| · | 29.03 |
Компрометация PyPI-пакета Telnyx (43 +5) |
| |
Разработчики VoIP-платформы Telnyx предупредили пользователей о компрометации пакета telnyx в репозитории PyPI, насчитывающего 756 тысяч загрузок в месяц и предоставляющего SDK для обращения к API Telnyx из программ на языке Python. 27 марта атакующие смогли опубликовать два вредоносных выпуска telnyx 4.87.1 и 4.87.2, получив доступ к PyPI после захвата учётных данных сопровождающего. Вредоносные версии распространялись с 6:51 до 13:13 (MSK), после чего были заблокированы администрацией PyPI. Инфраструктура, API, голосовые сервисы и платформа Telnyx не пострадали.
Компрометация была произведена в ходе более масштабной supply chain атаки TeamPCP, в ходе которой на днях были скомпрометированы Python-пакеты LiteLLM и Trivy, а также интегрирован вредоносный код в OpenVSX-дополнение Checkmarx и внедрён вредоносный червь в 68 пакетов в репозитории NPM. Используемый для шифрования отправляемых данных RSA-ключ совпадал с ключами, применявшимися в других атаках группы TeamPCP.
В сформированные атакующими версии был
встроен вредоносный код, который был интегрирован в файл "_client.py" и активировался при импорте модуля. После активации с серверов атакующих загружался звуковой файл ringtone.wav для Unix-подобных систем и hangup.wav для Windows. Данные файлы успешно воспроизводились как звуковые, но содержали интегрированные при помощи стеганографии скрытые вредоносные обработчики.
На платформе Windows вредоносный обработчик сохранялся в систему как "%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\msbuild.exe" и запускался при каждом входе.
В macOS и Linux осуществлялись поиск и отправка SSH-ключей, учётных данных, содержимого переменных окружения, токенов доступа к API, параметров подключения к облачным сервисам AWS, GCP, Azure и K8s, ключей от криптокошельков, паролей к СУБД и т.п. Обнаруженные данные шифровались с использованием алгоритмов AES-256-CBC + RSA-4096 и отправлялись HTTP POST-запросом на внешний хост.
- Главная ссылка к новости
- OpenNews: В PyPI размещены вредоносные выпуски библиотеки LiteLLM, насчитывающей 95 млн загрузок в месяц
- OpenNews: PyPI, Сrates.io, Packagist и Maven подняли вопрос сохранения устойчивости инфраструктуры
- OpenNews: Перехвачены 4 учётные записи в PyPI и выпущены вредоносные релизы num2words
- OpenNews: Фишинг-атака на сопровождающих Python-пакеты в репозитории PyPI
- OpenNews: Атакующие получили доступ к 174 учётным записям в каталоге PyPI
|
|
|
| |
|
|
| Следующая страница (раньше) >> |