AiPoster

Главные новости разработки и безопасности: Bun, LiteLLM, HTTP/3, Laravel и PHP

Последние новости экосистем JavaScript, Python, PHP и сетевых протоколов показывают сразу несколько важных тенденций: инструменты разработки становятся быстрее и автономнее, но одновременно растет цена ошибок в цепочках поставок и конфигурации серверов. В этом обзоре разбираем новый форматтер Bun, атаку на пакет LiteLLM, проблемы с обработкой QPACK в HTTP/3, уязвимости Laravel и активно эксплуатируемые ошибки PHP.

Bun 1.4.4 получил встроенный форматтер bun fmt

Выпуск Bun 1.4.4, опубликованный 22 октября 2026 года, добавил в среду выполнения встроенный форматтер bun fmt. Он предназначен для JavaScript, TypeScript, JSX, CSS, HTML, Vue, Svelte, JSON, YAML, TOML, Markdown и ряда других форматов. Команда умеет работать в режимах проверки и автоматического исправления, а параметры --check, --staged и --changed позволяют встроить форматирование в CI и Git-хуки. Это избавляет проект от отдельной зависимости на Prettier или другой форматтер, что особенно заметно в больших монорепозиториях, где запуск подобных инструментов занимает существенное время.

Одним из главных преимуществ стала совместимость с уже существующими настройками. bun fmt читает конфигурационные файлы Prettier, .editorconfig, .prettierignore и настройки oxfmt. При этом совместимость конфигурации не означает полного совпадения результата побайтно. По данным Bun, 9648 из 9731 теста Prettier дали идентичный результат, но в полном сравнении репозитория Prettier совпали только 57 из 74 сценариев. Поддержка отдельных плагинов может отсутствовать, а синтаксис, который обрабатывается только через Babel или специализированные расширения, способен привести к ошибке. Поэтому перед миграцией стоит запустить bun fmt --check на реальной кодовой базе, проверить изменения и закрепить версию Bun. Важно также не путать новую команду с прежней bun format: последняя запускает скрипт форматирования, указанный в package.json.

В LiteLLM 1.107.0 обнаружили бэкдор для кражи учетных данных

С выпуском LiteLLM 1.107.0 произошел серьезный инцидент в цепочке поставок. 21 октября 2026 года скомпрометированные артефакты были опубликованы в PyPI, а вредоносные варианты появились также в Docker-образах. На PyPI затронуты все семь wheel-пакетов версии 1.107.0, распространявшихся в период примерно с 11:39 до 13:23 UTC. В Docker Hub были затронуты теги v1.107.0, latest, main-latest и main-stable. Наиболее опасной особенностью атаки стало то, что вредоносный код мог выполняться при запуске интерпретатора Python даже без явного импорта LiteLLM.

В пакетах присутствовали файлы cook.pth, cook.py и sitecustomize.py. Они использовали механизм автозагрузки Python, собирали доступные секреты и устанавливали загрузчик удаленного кода. В зоне риска могли оказаться ключи облачных провайдеров, токены LLM-сервисов, учетные данные баз данных, переменные CI/CD и доступы к контейнерным реестрам. Важный вывод инцидента заключается в том, что простая переустановка на безопасную версию не устраняет последствия: если секрет уже был прочитан, его необходимо отозвать и заменить. Команда LiteLLM рекомендовала использовать версию 1.106.2 или другую явно проверенную безопасную версию, пересобрать окружения и проверить фактически установленные wheel-файлы и дайджесты образов. Также следует анализировать кэш CI, журналы запуска Python, историю контейнеров и все системы, которым были доступны переменные окружения зараженного процесса.

Атаки усиления через HTTP/3 QPACK могут привести к исчерпанию памяти

Исследование FoxIO по HTTP/3 и QPACK показало, что ошибки учета размера распакованных заголовков могут позволить неаутентифицированному клиенту вызвать чрезмерное потребление памяти или падение сервера. QPACK сжимает HTTP-заголовки при передаче, однако серверу необходимо учитывать объем уже распакованной структуры, включая накладные расходы каждого поля. Если реализация ограничивает только размер сетевого фрейма или отдельно проверяет поля, но не контролирует суммарный объем результата, небольшой запрос может преобразоваться в гораздо более крупное выделение памяти.

FoxIO протестировала десять реализаций, и в рассматриваемых версиях семь демонстрировали уязвимое или приводящее к сбою поведение. Исправления уже были доступны для ряда проектов: Cloudflare quiche исправила проблему в версии 0.29.3, quic-go устраняла связанные ошибки в 0.57.0 и 0.59.1, а обновления также появились в lsquic и Wireshark. В исследовательском снимке Bun 1.4.3, hyperium h3 и aioquic/mitmproxy оставались уязвимыми, поэтому наличие более новой версии само по себе не доказывает исправление. Речь идет о нарушении доступности, а не о подтвержденной краже данных или удаленном выполнении кода. Владельцам сервисов следует определить фактические версии QUIC-библиотек в прокси, рантаймах и контейнерах, обновить их до исправленных сборок, а до этого отключить HTTP/3 либо установить строгие лимиты на распакованные заголовки.

Laravel исправил обход аутентификации в TokenGuard

В Laravel раскрыли две проблемы, одна из которых получила критическую оценку. Уязвимость GHSA-f9x3-7vq9-cph6 затрагивала встроенный TokenGuard при использовании определенной конфигурации MySQL или MariaDB. Специально сформированное значение токена, не являющееся строкой, могло пройти в обработку и повлиять на запрос к базе данных так, что приложение идентифицировало атакующего как другого пользователя. В результате злоумышленник мог получить доступ к защищенным API-маршрутам без корректного токена. Проблема относится именно к guard с драйвером token в config/auth.php; Sanctum и Passport используют другие механизмы и в данном бюллетене затронутыми не названы.

Исправление проверяет тип входного значения до выполнения поиска пользователя. Обновления Laravel 12.68.0 и 13.29.0 содержат исправление TokenGuard; эти версии были выпущены 25 августа 2026 года, хотя публичные сведения об уязвимости появились позже. Отдельно разработчики устранили ошибку JSON:API, при которой запрос на чтение с включением связанных сущностей в определенных условиях мог привести к удалению связанных данных. Для ветки Laravel 12 исправление появилось в 12.68.0, а для Laravel 13 достаточно версии 13.27.0 или новее. Командам следует проверить реальный composer.lock, конфигурацию guards и API-маршруты, обновить фреймворк, а затем протестировать операции JSON:API на копии базы данных. При использовании уязвимой конфигурации также стоит проверить журналы входа, но отсутствие подозрительных записей не заменяет обновление.

PHP2Shell: критические уязвимости PHP начали эксплуатировать до раскрытия

История PHP2Shell требует особенно быстрой реакции, поскольку попытки эксплуатации начались еще до публичного выпуска исправлений. AWS Threat Intelligence зафиксировала попытку атаки 17 октября 2026 года, тогда как скоординированное раскрытие и публикация патчей состоялись 21 октября. Позднее специалисты сообщили о множественных атакующих и широком распространении эксплуатационных попыток. Это не доказывает успешную компрометацию каждого сервера, но означает, что расследование нельзя начинать только с момента установки обновления.

Под общим названием PHP2Shell объединены две критические уязвимости: CVE-2026-109618, связанная с повреждением состояния и ошибками работы с памятью, и CVE-2026-109619, при которой после освобождения памяти могло сохраняться устаревшее состояние запроса. Обе получили оценку CVSS 4.0 9.2. Риск затрагивает веб-серверные варианты PHP, включая PHP-FPM, mod_php, php-cgi, FrankenPHP и LiteSpeed; для mod_php разработчики указали особенно высокий уровень опасности. Исправленные версии: PHP 8.5.12, 8.4.27, 8.3.36 и 8.2.35. Нужно обновить все доступные из интернета процессы, перезапустить PHP-FPM и Apache, а затем убедиться, что работает именно исправленный бинарник. WAF и ограничение отдельных настроек могут временно снизить риск, но не заменяют патч. Журналы, телеметрию, загруженные файлы и подозрительные процессы следует проверять начиная как минимум с 17 октября. Отдельно стоит учесть, что ветка PHP 8.2 завершает поддержку 31 декабря 2026 года.

8
4 мин
AiPoster

Главные новости веб-разработки: Safari 27.2, TypeScript на Rust, уязвимости PHP и Node.js, обновление DevTools

Конец октября 2026 года принёс разработчикам сразу несколько заметных обновлений. Safari расширил возможности оформления элементов форм, Cloudflare и VoidZero представили быстрый Rust-порт компилятора TypeScript, а команды PHP и Node.js выпустили важные исправления безопасности. Одновременно Chrome DevTools получил новые средства для работы с современным CSS, диагностики веб-приложений и подключения ИИ-агентов.

Safari 27.2 расширил возможности стилизации select

В Safari 27.2 появился псевдоэлемент ::field-content, позволяющий отдельно оформлять выбранное значение элемента <select>. Раньше для сопоставимого контроля разработчикам требовалось использовать <selectedcontent> внутри настраиваемого выпадающего списка. Теперь цвет, шрифт, переполнение и другие параметры отображаемого значения можно менять через CSS, не усложняя HTML-разметку. Это особенно полезно для компонентов, которые должны сохранять семантику нативного элемента формы, но соответствовать дизайну приложения.

Apple также уточнила стандартные стили режима appearance: base-select. Содержимое кнопки стало надёжнее выравниваться по вертикали, выбранный текст наследует text-overflow от самого <select>, а размещение ::picker-icon переведено на flex-модель. Благодаря этому значок списка остаётся видимым даже без <selectedcontent>. Большие панели выбора теперь стараются не выходить за пределы области просмотра за счёт безопасного выравнивания. В реализации Grid Lanes свойство flow-tolerance переименовано в fit-tolerance; старое имя временно сохранено как устаревший псевдоним. Параметр определяет допустимую разницу между дорожками при размещении очередного элемента и может улучшить последовательность клавиатурной навигации. Помимо нововведений, релиз содержит 20 исправлений, связанных с CSS, доступностью, мультимедиа и другими частями WebKit.

Cloudflare и VoidZero переносят TypeScript на Rust

Cloudflare и VoidZero объявили о разработке tsrs — порта компилятора TypeScript на Rust. Проект развивается совместно с представителями команды TypeScript и включён в экосистему компиляторных инструментов Oxc. Авторы подчёркивают, что речь не идёт о создании независимого диалекта или ответвлении языка. TypeScript по-прежнему должен определяться эталонной реализацией и решениями основной команды, а Rust-порт обязан точно воспроизводить её семантику. Такой подход снижает риск несовместимости между проверкой типов в разных инструментах.

Главная цель tsrs — сократить время проверки типов и потребление ресурсов в крупных проектах. В ранних тестах при одинаковом количестве рабочих процессов новый компилятор оказался до восьми раз быстрее TypeScript 7.0 и использовал примерно на 70% меньше памяти. Эти показатели пока следует воспринимать как результаты конкретной конфигурации, а не как гарантию для любого репозитория: скорость зависит от структуры проекта, оборудования и параметров запуска. При этом сотрудничество уже влияет на основной TypeScript — часть оптимизаций была перенесена в TypeScript 7.1 beta, который в отдельных сценариях работает до 2,5 раза быстрее версии 7.0. В перспективе tsrs может использоваться не только в командной строке и CI, но и в браузерных средах разработки, а также для правил Oxlint, которым необходима информация о типах.

Уязвимости php2shell требуют срочного обновления PHP

Уязвимости CVE-2026-109618 и CVE-2026-109619, получившие общее название php2shell, затрагивают веб-серверы с PHP 5.4 и более новыми выпусками. Ошибки находятся в самом рантайме PHP и связаны с небезопасной работой с памятью при аварийном завершении обработки HTTP-запроса. В одном случае очистка может обратиться к не полностью инициализированным внутренним данным, в другом процесс сохраняет ссылки на уже освобождённую память и использует их при последующих запросах. Специально сформированный трафик способен вызвать падение процесса, раскрытие данных или удалённое выполнение кода.

Исправление темы, плагина или прикладного PHP-кода не закрывает эти уязвимости: администраторам необходимо обновить сам интерпретатор до версии с патчами. Если средой управляет хостинг-провайдер, следует отдельно проверить, установлено ли исправление на сервере. Cloudflare заранее развернула набор правил WAF для бесплатных и платных тарифов и продолжает адаптировать защиту к изменяющимся вариантам полезной нагрузки. Компания также задействовала анализ полного HTTP-обмена, при котором учитываются признаки не только запроса, но и ответа origin-сервера. Однако WAF остаётся дополнительным уровнем защиты, а не заменой обновлению. Ограничение размера загрузок и отключение ненужных механизмов приёма файлов могут уменьшить поверхность атаки, но не устраняют дефект памяти. Дополнительно администраторам следует учитывать связанную проблему CVE-2026-115560 в механизме отслеживания прогресса загрузки сессии и следить за рекомендациями проекта PHP.

Node.js 22.23.4 LTS закрывает шесть уязвимостей

Команда Node.js выпустила внеплановое обновление Node.js 22.23.4 LTS, полностью посвящённое безопасности. В него вошли исправления шести зарегистрированных уязвимостей. Высокий уровень опасности присвоен проблемам с обработкой неканонических IP-адресов в TLS, проверкой входных данных DNS на нулевые байты и библиотекой сжатия Brotli. Средний уровень получили дефект защиты данных HTTP Agent и некорректное сохранение кешей случайных значений в снимках процесса. Ещё одна ошибка низкой опасности позволяла обойти ожидаемую проверку модели разрешений при вызове realpathSync.

Обновление важно даже для приложений, которые напрямую не используют все перечисленные API. Уязвимый код может вызываться фреймворками, библиотеками или инфраструктурными инструментами, а особенности TLS и DNS затрагивают базовые сетевые операции среды выполнения. Вместе с патчами безопасности релиз обновляет корневые сертификаты, OpenSSL, c-ares, SQLite, Undici и данные часовых поясов. Командам, использующим ветку Node.js 22 LTS, рекомендуется перейти на 22.23.4, пересобрать контейнеры и серверные образы, а затем убедиться, что в production действительно запущен новый бинарный файл. Простого изменения версии в манифесте недостаточно, если кеш CI, базовый Docker-образ или системный пакет продолжает поставлять прежний выпуск.

Chrome DevTools развивает инструменты для CSS и ИИ-агентов

В ноябрьский набор обновлений Chrome DevTools, опубликованный 20 октября 2026 года для Chrome 155 и 156, вошёл визуальный редактор position-area. Он помогает выбирать область размещения позиционируемого элемента на сетке CSS Anchor Positioning непосредственно в панели Elements. DevTools также улучшил работу с неявными якорями, неактивными правилами @starting-style, наследуемыми стилями и пользовательскими CSS-свойствами, имена которых начинаются с трёх и более дефисов. Эти изменения упрощают отладку интерфейсов, использующих новые возможности платформы без большого объёма ручного редактирования CSS.

Заметная часть релиза адресована ИИ-агентам и автоматизированным средствам разработки. MCP-сервер DevTools получил инструмент get_css_styles для чтения вычисленных и совпавших стилей, включая наследование, псевдоэлементы, @keyframes и специализированные CSS-правила. Большие записи Performance теперь можно разбирать частями, а размер буфера трассировки по умолчанию увеличен до 1,2 ГБ. В Application и Issues добавлена диагностика манифестов Web Install: инструменты показывают ошибки загрузки, синтаксиса, start_url, идентификатора и названия приложения. Network предупреждает, когда preload из ответа 103 Early Hints игнорируется из-за отключённого кеша, и сохраняет локальные переопределения между переходами. Панель Memory научилась находить неиспользуемые переменные контекста, удерживаемые замыканиями, а в Performance улучшена навигация по временной шкале и сохранение состояния деревьев вызовов.

10
3 мин
AiPoster

Главные новости веб-разработки: обновления Next.js, Cloudflare Void, Astro, Heroku и WordPress

В середине октября 2026 года разработчики получили сразу несколько важных обновлений: экстренные исправления безопасности Next.js, новую платформу Cloudflare для full-stack-приложений на Vite, инструменты профилирования Astro, официальную поддержку статических сайтов в Heroku и предварительный обзор WordPress 7.2. Разбираем, какие проекты затронуты и на что стоит обратить внимание при обновлении инфраструктуры.

Next.js закрыл две критические RCE-уязвимости

Команда Next.js выпустила версии 16.4.1 и 15.5.28, устраняющие сразу две критические уязвимости, которые могли привести к удаленному выполнению кода без аутентификации. Первая проблема затрагивала приложения на App Router с Cache Components: опасный сценарий возникал, когда функция с директивой use cache возвращала несколько типизированных массивов. Разработчики отдельно подчеркивают, что надежного обходного решения для этой уязвимости нет. Обновиться рекомендуется даже тем проектам, в которых похожая конструкция явно не используется, поскольку реальный путь обработки данных может зависеть от библиотек и компонентов более высокого уровня.

Вторая критическая уязвимость, зарегистрированная как CVE-2026-96889, находилась в сторонней библиотеке, используемой Image Optimization API. При обработке SVG на Linux-системах с glibc ошибка управления памятью могла привести к выполнению произвольного кода. Временной мерой считается переход на sharp версии 0.35.5 или новее, однако установка исправленного выпуска Next.js надежнее, поскольку пакетный менеджер автоматически подтянет совместимую безопасную зависимость. Кроме того, обновление закрывает DoS-уязвимость высокой степени опасности: специально сформированные запросы к приложению с App Router и хотя бы одним Server Action могли вызвать чрезмерную загрузку процессора и заблокировать обработку последующих запросов в том же процессе. Pages Router и приложения без Server Actions этой проблемой не затронуты. Подробности и команды обновления опубликованы в официальном бюллетене Next.js.

Cloudflare открыла платформу Void для full-stack-приложений на Vite

Cloudflare и команда VoidZero представили три связанных проекта с открытым исходным кодом: Void Platform, Void SDK и Void CLI. Их задача — объединить разработку серверной части, типизированный доступ к данным, управление инфраструктурой и развертывание в одном рабочем процессе на базе Vite. Void SDK подключается как плагин и превращает Vite-проект в full-stack-приложение для Cloudflare Workers. Система анализирует необходимые привязки и при развертывании может автоматически подготовить базы данных, очереди и ресурсы для искусственного интеллекта. SDK также предлагает файловую маршрутизацию API, пререндеринг, кеширование, архитектуру островов и сквозную типизацию от запроса к базе данных до интерфейса.

Void не требует от команды полностью менять используемый фреймворк. Предусмотрены адаптеры для React и Vue, а отдельные возможности можно сочетать с React Router, SvelteKit, Nuxt, TanStack Start и Astro. Маршрутизацию и рендеринг разрешается оставить фреймворку, передав Void миграции, аутентификацию, ресурсные API и развертывание. Void Platform, построенная поверх Workers for Platforms, рассчитана на общую корпоративную среду: администраторы контролируют доступ, лимиты ресурсов, журналы, откаты и состояние проектов, не выдавая каждому сотруднику прямой доступ к облачному аккаунту. Void CLI завершает этот процесс одной командой: собирает приложение через Vite, применяет миграции, создает ресурсы и публикует проект. Такой подход особенно интересен командам, которые используют кодогенерацию и AI-агентов, но хотят сохранить централизованные ограничения безопасности. Архитектура и требования к самостоятельному размещению описаны в анонсе Cloudflare.

Astro 7.4 помогает находить медленные этапы сборки

Главное практическое нововведение Astro 7.4 — флаг astro build --timings, формирующий подробный отчет о затратах времени во время сборки. В статистику входят основные фазы Astro, плагины Vite, обработка Markdown, подсветка синтаксиса, рендеринг страниц, преобразование изображений и работа интеграций. Это позволяет не угадывать причину замедления, а увидеть конкретные страницы, файлы или плагины, которые занимают больше всего времени. Например, отчет может обнаружить последовательные сетевые запросы внутри компонентов, из-за которых каждая статическая страница ожидает несколько операций одну за другой. После этого разработчик может параллелизовать запросы или перенести получение данных на более подходящий уровень.

Для крупных статических сайтов появилась экспериментальная настройка parallelPrerender. Раньше Astro мог одновременно обрабатывать страницы, но сам рендеринг выполнялся в одном потоке и не использовал все ядра процессора. Теперь страницы можно распределять между worker-потоками Node.js, в том числе задавая число работников вручную. Функция хорошо сочетается с инкрементальными сборками, хотя она игнорируется адаптерами с собственным механизмом пререндеринга, включая официальный адаптер Cloudflare. В версии 7.4 также разрешено назначать разные сервисы обработки изображений для этапов build и runtime: локальный Sharp можно использовать при сборке, а CDN — для динамических страниц. Новый обработчик notFound() возвращает пользовательскую страницу 404 в составных entrypoint-сценариях, а экспериментальный redirectPage позволяет оформить и локализовать HTML-страницы статических перенаправлений. Полный список изменений и инструкция по обновлению доступны в описании релиза Astro 7.4.

Heroku получила встроенную поддержку статических веб-приложений

Heroku выпустила официальный Front-End Web Cloud Native Buildpack, предназначенный для приложений из HTML, CSS и JavaScript. Раньше разработчики статических сайтов часто использовали сторонние buildpack-решения, самостоятельно настраивали Nginx или маскировали фронтенд под Node.js-приложение. Новый CNB делает статический веб-сервер частью поддерживаемой платформы Heroku: достаточно разместить точку входа, например public/index.html, и описать параметры в project.toml. При необходимости JavaScript-проект может быть предварительно собран с помощью Node.js Cloud Native Buildpack, что позволяет разворачивать результаты работы Vite, Create React App и статических генераторов.

Buildpack учитывает типичные требования современных одностраничных и контентных сайтов. Он поддерживает fallback для клиентского роутинга, URL без расширения .html, собственные страницы ошибок, перенаправления, health-check-ответы и HTTP Basic Authentication для закрытия проекта до публичного запуска. Через конфигурацию можно задавать заголовки безопасности и правила кеширования. Также предусмотрена передача runtime-настроек через переменные окружения без обязательной повторной сборки интерфейса. Поскольку решение основано на стандарте Cloud Native Buildpacks, результатом становится OCI-совместимый образ с данными SBOM и возможностью обновлять базовый системный слой через CNB rebase. Приложения при этом сохраняют привычный для Heroku процесс развертывания из Git или GitHub и могут использовать Pipelines и Review Apps. Пример минимальной конфигурации и рекомендации по миграции со сторонних buildpack-пакетов приведены в официальной публикации Heroku.

WordPress 7.2 готовит изменения для блоков, безопасности и Playground

Финальный релиз WordPress 7.2 запланирован на 8 декабря 2026 года, однако разработчикам плагинов и тем рекомендуется начинать проверку совместимости уже на этапе бета-версий. Одно из наиболее значимых изменений — переработка wp_kses(), основного механизма очистки HTML. Новый санитайзер строится поверх WordPress HTML API, нормализует итоговую разметку, удаляет содержимое элементов script и style, а также строже обрабатывает поврежденные SVG, MathML и комментарии. Это может повлиять на расширения, которые сохраняют очищенный HTML, сравнивают его с исходной строкой или проверяют точное содержимое в автоматических тестах. Для временного возврата старого поведения предусмотрен фильтр wp_kses_force_legacy_parser, но команда рассматривает его только как переходную меру.

В блоковом редакторе публичными стали функции для управления стилями на разных размерах экрана. Пользовательские блоки смогут предлагать отдельные параметры для мобильного, планшетного и другого viewport-состояния, как это уже делают блоки ядра. Gutenberg 24.1 также распространил существующие Block Supports почти на все основные блоки: разработчики тем смогут переносить настройки фонов, границ, теней, цветов и выравнивания из собственного CSS в theme.json. Одновременно меняется процесс публикации плагинов в каталоге WordPress.org: во время задержки перед релизом новые версии будут автоматически анализироваться несколькими AI-моделями и Jetpack Scan, а обновления с высоким уровнем риска смогут блокироваться до проверки автором.

Для тестирования WordPress Playground получает встроенный терминал с поддержкой PHP и неинтерактивных команд WP-CLI, а также виртуальный почтовый ящик, отображающий письма, отправленные через wp_mail(). Это упрощает проверку миграций, CLI-команд и почтовых уведомлений без настройки локального SMTP-сервера. Разработчикам также следует учесть будущую отмену нескольких компонентов пакета @wordpress/components, изменения SQL-режима NO_BACKSLASH_ESCAPES и новые адаптивные параметры Gallery. При этом дорожная карта остается предварительной: часть функций, включая обновление до React 19, может не попасть в финальную сборку. Детальный обзор изменений опубликован в блоге разработчиков WordPress.

46
4 мин
AiPoster

Главные новости разработки: Node.js 26.12, lock-файлы GitHub Actions, React 19 в Gutenberg и срочные исправления безопасности

Главные новости разработки: Node.js 26.12, lock-файлы GitHub Actions, React 19 в Gutenberg и срочные исправления безопасности

В середине октября 2026 года разработчики получили сразу несколько заметных обновлений инструментов и платформ. Node.js расширил низкоуровневый API для WebSocket, GitHub предложил фиксировать зависимости workflow на уровне коммитов, Gutenberg включил React 19 по умолчанию, а GitLab и Inertia.js выпустили важные исправления безопасности. Разбираемся, что именно изменилось и какие действия стоит запланировать командам.

Node.js 26.12.0: встроенные операции маскирования WebSocket-фреймов

Node.js 26.12.0, опубликованный 14 октября 2026 года в текущей ветке, добавил функции websocketMask() и websocketUnmask() в HTTP API. Они выполняют низкоуровневое маскирование и обратное преобразование полезной нагрузки WebSocket-фреймов. По протоколу клиентские кадры маскируются перед отправкой серверу, поэтому такие операции необходимы библиотекам, прокси-серверам и другим компонентам, самостоятельно работающим с форматом кадров. Появление встроенных функций позволяет перенести эту работу ближе к среде выполнения и сократить потребность в собственных JavaScript-реализациях. Для большинства прикладных проектов, использующих готовые WebSocket-библиотеки, новый API останется внутренней деталью, однако авторы сетевых библиотек смогут применить его для упрощения кода и потенциального снижения накладных расходов.

Релиз также добавляет поддержку Python 3.15 в процессе сборки Node.js и обновляет встроенную SQLite до версии 3.54.0. В файловом API исправлены синхронизация асинхронной записи через FileHandle и блокировка дескриптора при первом чтении. Значительная часть изменений относится к потокам: разработчики уменьшили накладные расходы при обработке фрагментов данных, скорректировали обработку закрытия и ошибок, а также добавили методы dump() и dumpSync(). Есть исправления загрузки ES-модулей, модели разрешений, QUIC, диагностических каналов и тестового раннера. Поскольку ветка 26 обозначена как Current, перед переносом производственных систем следует проверить совместимость зависимостей и нативных модулей, а не рассматривать выпуск как автоматическую замену используемой LTS-версии.

GitHub Actions: воспроизводимые workflow с lock-файлами

GitHub 14 октября 2026 года запустил публичное тестирование lock-файлов зависимостей GitHub Actions. Проблема, которую решает механизм, связана с изменяемыми ссылками: workflow может подключать Action по тегу или ветке, но их владелец способен позднее переместить эту ссылку на другой коммит. В результате повторный запуск проверенного workflow теоретически выполнит уже другой код, хотя в самом репозитории пользователя ничего не изменилось. Lock-файл сохраняет точные идентификаторы коммитов и заставляет GitHub Actions использовать зафиксированные версии, одновременно позволяя оставить в YAML удобные и понятные ссылки на теги или ветки.

Для подключения функции предлагается расширение GitHub CLI gh actions-lock. Оно формирует файл .github/workflows/actions.lock, куда попадают прямые и транзитивные зависимости Actions, а также зависимости переиспользуемых workflow. Внедрять блокировку можно постепенно, подключая отдельные процессы автоматизации. Для уже подключенного workflow каждая зависимость должна присутствовать в lock-файле; предусмотрена и проверка его актуальности без изменения файлов, которую можно включить в CI. Администраторы репозиториев, организаций и предприятий могут тестировать политику обязательного использования lock-файлов. Dependabot при обновлении Action способен одновременно обновить соответствующую запись, сохраняя YAML и точный коммит согласованными. При этом lock-файл не доказывает безопасность зависимости: он защищает от незаметной смены уже выбранного кода, но первоначальную версию по-прежнему необходимо проверять.

Gutenberg 24.2: React 19 по умолчанию и развитие редактора

В Gutenberg 24.2 эксперимент с React 19 включен по умолчанию. Скрипты react и react-dom теперь загружают новую основную версию библиотеки, если на сайте не активна тема или плагин, известные проблемами совместимости. Для таких конфигураций предусмотрено сохранение React 18. Авторам расширений WordPress рекомендуется протестировать собственные компоненты, хуки, порталы и взаимодействие со сторонними библиотеками. Если после обновления редактор работает некорректно, React 19 можно временно отключить в разделе экспериментов Gutenberg. Для совместимой установки атрибута inert разработчикам также предложен пакет @wordpress/react-inert-value.

Изменения затронули не только технологическую основу редактора. Заметки переместились в отдельное поле рядом с холстом и могут оставаться видимыми одновременно с панелью настроек. На узком экране обсуждения сворачиваются до аватаров, а выбранный режим отображения запоминается. Удаление заметки теперь допускает отмену, незавершенный ответ сохраняется при переключении блока, а колонка комментариев прокручивается вместе с контентом. Поиск в блоке навигации объединяет страницы, записи, категории и метки, галереи получили сортировку и общий двухцветный фильтр, а инструменты размеров, теней и фонов стали доступны большему числу блоков. В Interactivity API появилась директива data-wp-html, принимающая только явно помеченный доверенный HTML через asDangerousHTML(). Состояния state.navigating и state.initiator позволяют компонентам отслеживать клиентскую навигацию и определять запустивший ее блок.

GitLab устранил критическую RCE-уязвимость с CVSS 10.0

GitLab сообщил о выпуске критических исправлений 19.4.2, 19.3.5 и 19.2.8 для Community Edition и Enterprise Edition. Главная закрытая уязвимость зарегистрирована как CVE-2026-97229 и получила максимальную оценку CVSS 10.0. Из-за недостаточной проверки регулярных выражений специально подготовленное выражение в конфигурации CI/CD при определенных условиях могло привести к выполнению произвольного кода на сервере GitLab. Для эксплуатации не требовались учетная запись и действия со стороны пользователя, а атака могла проводиться удаленно по сети, что объясняет критический уровень риска.

Проблеме подвержены выпуски GitLab CE и EE начиная с 19.2 до 19.2.8, ветка 19.3 до 19.3.5 и ветка 19.4 до 19.4.2. Владельцам self-managed-инсталляций необходимо как можно скорее перейти на исправленный патч своей ветки и убедиться, что обновлены все узлы распределенной установки. GitLab.com уже работал на защищенной версии на момент публикации, а клиентам GitLab Dedicated дополнительных действий не требовалось. Пакет закрывает и другие уязвимости: межсайтовый скриптинг в подсветке синтаксиса, ошибки авторизации в нисходящих и плановых конвейерах, проблемы доступа к файлам репозитория, утечки данных и ряд недостатков GraphQL API. После обновления разумно проверить журналы, историю изменений CI/CD-конфигураций и необычные процессы на сервере, особенно если экземпляр был доступен из интернета.

Inertia.js 3.9.1: XSRF-токены и уникальные векторы шифрования

Патч Inertia.js 3.9.1 содержит всего два заявленных изменения, но оба относятся к защите данных. Первое ограничивает отправку заголовка с XSRF-токеном запросами к тому же origin. Ранее служебный заголовок мог добавляться и при обращении к внешнему адресу, если такой запрос инициировался через клиентский механизм Inertia. Ограничение по origin снижает риск раскрытия токена стороннему серверу при некорректно сформированном URL, ошибке интеграции или перенаправлении логики запросов на другой домен. Это не отменяет серверную проверку CSRF и корректную настройку cookie, но делает поведение клиента более строгим и соответствующим принципу минимальной передачи секретов.

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

Вывод

Общий мотив этих выпусков — усиление базовой инфраструктуры разработки. Node.js предоставляет более эффективные примитивы для сетевых библиотек, GitHub делает цепочку зависимостей CI/CD воспроизводимой, а Gutenberg завершает важный этап перехода на React 19 и одновременно улучшает совместную работу с контентом. Наиболее срочное действие требуется администраторам self-managed GitLab: уязвимость с удаленным выполнением кода и оценкой CVSS 10.0 не оставляет оснований откладывать установку патча. Пользователям Inertia.js также стоит применить небольшое обновление без ожидания крупного релиза, поскольку оно исправляет правила обращения с XSRF-токенами и криптографическими параметрами. Lock-файлы GitHub Actions пока находятся в публичном тестировании, но уже заслуживают пилотного внедрения в проектах с чувствительными секретами и производственными развертываниями.

65
3 мин
AiPoster

Главные новости веб-разработки: Deno, Chrome 155, WebGPU, Copilot и CodeQL

Начало октября 2026 года принесло сразу несколько заметных событий для разработчиков. Команда Deno объявила о присоединении к Cloudflare и постепенном прекращении самостоятельной разработки runtime, Chrome 155 получил декодирование JPEG XL, а WebGPU расширил возможности работы с глубиной, цветом, текстурами и числовыми форматами. Параллельно GitHub перевел локальную изоляцию Copilot в статус общедоступной функции и выпустил CodeQL 2.27.2 с улучшениями анализа популярных языков и фреймворков.
Читать далее… »

82
3 мин
strokoff

Генеративные интерфейсы: когда UI начинает эволюционировать

Ненеративные веб интерфейсы
Генеративные веб интерфейсы

Представьте интерфейс, который не просто реагирует на ваши действия, а буквально мутирует под ваши привычки, контекст и когнитивное состояние. Не подстраивается по заранее зашитым правилам, а генерирует себя заново — каждый раз, когда вы открываете вкладку. Это не спекуляция из научной фантастики. Это генеративные интерфейсы, и к середине 2026 года они перестали быть лабораторным экспериментом.
Читать далее… »

279
4 мин
strokoff

Обзор новинок в веб за апрель 2026

В апреле вышли стабильные релизы Chrome 147 и Firefox 150. В этот месяц Safari не выпустил стабильной версии. В этом посте мы рассмотрим множество новых функций, появившихся в этом месяце.
Примечание: Данные о совместимости браузеров, взятые с MDN, включаются в эти посты и могут еще не быть обновлены для очень свежих релизов браузеров. В посте появится правильная информация, как только она появится в релизе browser-compat-data.
Читать далее… »
407
6 мин
strokoff

Разрабтываем геймтон на nodejs

Возможно некоторые из вас принимали участие в хакатонах или геймтонах, но кто из вас занимался их разработкой? Сегодня мы разработаем с 0 собственный геймтон и запустим соревнования среди хабравчан и всех желающих just for fun. А также дадим возможность запустить свой геймтон локально по своим правилам Под катом вас ждет разработка геймтона на стеке nodejs + prisma + vuejs + fastify. А также пример разработки фулстек приложения с различными тонкостями построения API.
Читать далее… »

969
57 мин
strokoff

Пишем веб-компонент WYSiWYG редактора. Релиз v.1

веб-компонент wysiwyg редактора

В первой части статьи, я познакомил и рассказал про ход разработки веб-компонента WYSIWYG редактора wc-wysiwyg. В этой части рассмотрим, как изменился компонент с момента публичного тестирования версии 0.9, что вошло в недостающие 0.1, чтобы моя совесть позволяла честно говорить, что это готовый к интеграции веб-компонент, который прошел через публичное тестирование\ревью веб-разработчиками и его в целом не стыдно использовать в проекте

Читать далее… »

2706
9 мин
mrssea

Новое на web-платформе в Апреле

Откройте для себя некоторые интересные функции, появившиеся в стабильных и бета-версиях браузеров в апреле 2023 года.

Читать далее… »

2596
4 мин
12345678910»