Источники проверены по состоянию на 23 октября 2026 г. (UTC) Период покрытия: 25 июля — 23 октября 2026 г., основное внимание уделяется новым объявлениям и последующим исправлениям с сентября по октябрь. Аудитория: инженеры и специалисты по обеспечению безопасности, которые поддерживают службы Node.js, Java, Python, контейнеры, создают конвейеры и среды разработки.
В этой статье обобщаются недавние важные угрозы безопасности в средах выполнения Node.js, Java и Python, стандартных библиотеках, общих серверных платформах и зависимостях, а также приводятся область воздействия, фиксированные версии, временные меры по снижению риска, выбор исправлений и методы проверки.
Оцените влияние на версии компонентов, включенные функции и доступные точки входа. Факты об уязвимостях взяты из официальных сообщений; даты относятся к публичному раскрытию, если явно не указано более ранний выпуск исправления. Мы не делаем выводов о неподтвержденных условиях эксплуатации, баллах CVSS или эксплуатации в дикой природе. Рекомендации по развертыванию определяются как рекомендации по внедрению.
TL;DR: приоритеты исправления
- Обновите сначала среду выполнения, в которой фактически размещена служба. Обновите соответствующую ветку Node.js как минимум до 22.23.4 / 24.22.1 / 26.12.1. Службы, использующие Node 24, могут обновиться до 24.22.1 в рамках той же основной версии или более поздней версии, содержащей те же исправления. S1S2
- Обновите зависимости приложения Node отдельно. Для Next.js используйте 15.5.28 / 16.4.1 в качестве базовой линии обновления; при независимом использовании React Server Components проверьте фактически установленный пакет
react-server-dom-*. Только обновление двоичного файла Node не устраняет эти уязвимости платформы. S8S9S10S11S12 - Java: охватить оба раунда обновлений. Установите сборку поставщика, включающую как CPU от 20 октября, так и CVE-2026-91403 от 21 октября. См. раздел 2.2 для внеполосных версий Oracle JDK 11-27; сверяйте другие дистрибутивы с их собственными пакетами безопасности и полными номерами сборок. Обновите соответствующую ветку Tomcat до 9.0.123/10.1.61/11.0.27. S16S17S18S20S21S22S23
- Python: обновляйте интерпретатор, пакеты приложений и пакеты сертификатов отдельно. См. базовые версии интерпретатора в разделе 2.3;
certifiрекомендует ≥2026.10.19,pip≥26.2.2 при использованииuv≥0.13.4. Каждый существующий венв необходимо проверить. Для кодов, связанных сwrap_bio(), необходимо также передать правильный и непустойserver_hostname. S29S30S31S33S35S36S37 - Если немедленное обновление невозможно, уменьшите риски в соответствующих точках входа. Установите приоритет остановки ненадежного декодирования Brotli, затронутой обработки изображений/пейджинга/архивирования, а также изоляции проблемных LDAP или записей аутентификации; проверка сертификатов TLS и имен хостов. Входящий WAF не может охватывать исходящие пути, например приложения, получающие вредоносные сжатые ответы. S3S11S25S27S30S32
- Перестройте, замените старые процессы и проверьте реальные пути обслуживания. Сохраните файл блокировки и дайджест образа, пересоберите приложение и образ, разверните замены для всех рабочих/JVM/контейнеров; проверьте фактический процесс, дерево зависимостей, хранилище доверенных сертификатов и регрессионные тесты бизнеса. Новая версия командной строки сама по себе не означает, что исправление завершено.
- Если LiteLLM 1.107.0 был установлен или запущен, следуйте процедурам реагирования на инциденты. Проект подтвердил компрометацию выпуска 21 октября. Изолируйте уязвимые среды, исследуйте их в чистой среде, перестройте и поменяйте открытые учетные данные. Не запускайте Python/pip в подозрительной среде для предварительной проверки. Подробности см. в разделе 9. S41
1. Обзор уязвимостей и оценка рисков
1.1 Приоритезация исправлений в зависимости от фактического воздействия
Приведенные ниже приоритеты развертывания представляют собой рекомендации по реализации. Метки серьезности следуют за каждым поставщиком, включая рейтинг Apache Important. CVSS 3.1 и 4.0 — разные системы подсчета очков; не ранжируйте проблемы в них только по баллам.
| Экосистема/слой | Ключевые вопросы | Официальная оценка или подтвержденная оценка | Приоритетное развертывание |
|---|---|---|---|
| Собственная зависимость Node.js | CVE-2026-111497: Brotli записан за пределами границ, и существует риск RCE. | Node:High | Декодирование данных Brotli S1S3 в теле внешнего запроса или внешнем ответе. |
| Node.js TLS / DNS | CVE-2026-105482, 105483, 106069: анализ и проверка личности несовместимы. | High | URL сканирование, прокси, Webhook, динамический целевой адрес S1S5S6 |
| Node.js HTTP/2 | CVE-2026-56846, 56848: Память исчерпана и UAF | High | Node напрямую обрабатывает недоверенный трафик HTTP/2 S7 |
| React / Next.js | RSC / use cache typed arrays RCE | Critical;CVSS 4.0 9.5 | Сервер RSC, соответствующие компоненты кэша и путь к данным S9S10 |
| Next.js Оптимизация изображения | CVE-2026-96889: SVG Обработка изображений RCE | Critical;CVSS 4.0 9.5 | Экземпляры на glibc Linux, которые могут обрабатывать ненадежные изображения S11 |
| Next.js Server Actions | Специально созданный запрос приводит к исчерпанию CPU. | High;CVSS 4.0 8.2 | App Router и хотя бы один Server Action S12 |
| Java TLS Траст | CVE-2026-91403: Продолжайте доверять затронутому промежуточному звену CA. | CVSS 3.1 9.1 | TLS/API Сценарий S17 с использованием затронутой цепочки доверия |
| Tomcat | Обход аутентификации JNDIRealm, путаница между перекрестными запросами HTTP/2, утечка ответа AJP | Important | Соответствует пути Realm / Connector / async Servlet S21S22S23 |
| Spring for GraphQL | CVE-2026-59285: десериализация подкачки RCE | High | Jackson 2 + Connection Пейджинг + Эксплуатируемый путь к классам S25 |
| Spring Security | CVE-2026-59270: раскрыт известный встроенный идентификатор управления LDAP. | Critical | Встроенный LDAP включен, и порт прослушивания доступен злоумышленнику S27. |
CPython ssl | CVE-2026-19445: SNI контекста переключения приводит к UAF | Critical | Python сам по себе завершает TLS и соответствует условию жизненного цикла контекста S29. |
CPython ssl | CVE-2026-19553: пропустить проверку, если имя хоста отсутствует. | High | wrap_bio() / В связанном асинхронном вызове отсутствует ожидаемое имя хоста S30 |
CPython tarfile | CVE-2026-82049: обход комбинации жесткой ссылки и символической ссылки. | High | Автоматически извлекать ненадежный tar-архив S32 |
| Django / GeoDjango | CVE-2026-15307: файл записи пространственного запроса, SSRF, при условии RCE. | High | Пространственные запросы или связанные интерфейсы администрирования, принимающие ненадежные входные данные S38 |
| Зависимость сертификата Python | certifi: недоверие к сертификату, связанное с emSign. | Critical; GHSA, неизвестно CVE | TLS клиент и инструмент управления пакетами S36S37 все еще используют уязвимый CA bundle |
Сокращения: RCE означает удаленное выполнение кода, UAF означает использование после освобождения и SSRF означает подделку запроса на стороне сервера. Прямые разрешения RCE обычно являются разрешениями процесса, в котором размещено приложение, и не могут автоматически быть эквивалентны корневым разрешениям.
Рекомендуемая последовательность: сначала обрабатывает RCE, который доступен извне и соответствует условиям обхода аутентификации, утечки данных между пользователями и проблем с аутентификацией сертификатов; в то же время запланируйте обновления для общедоступной точки входа DoS. Нет необходимости запускать атакующие полезные нагрузки в производство, чтобы доказать возможность использования. Зависимости существуют, пути кода доступны и условия атаки соблюдены. Это три проблемы, которые необходимо проверять отдельно.
1.2 Три границы, которые легко спутать
- Обновите среды выполнения и зависимости отдельно. Обновления безопасности для Node, JDK, CPython не восстанавливают автоматически автономные установки Next.js, Spring, Django, certifi или собственные расширения.
- Порог исправления не зависит от текущего базового показателя развертывания. Первое исправление уязвимости в августе не гарантированно покрывает новые проблемы, возникшие с сентября по октябрь; В разделе 2 в качестве цели реализации используются проверенные последующие обновления.
- Отличьте уязвимость от фактического взлома цепочки поставок. Для распространенных уязвимостей исправления устраняют будущие пути атаки; при запуске вредоносных пакетов необходимо изучить влияние учетных данных и устойчивости. LiteLLM Раздела 9 является официально подтвержденным событием. S41
Наличие подтвержденной эксплуатации в дикой природе должно основываться на официальных сообщениях. Поставщик не упомянул об эксплуатации и не может доказать отсутствие атаки; исправление должно выполняться на основе фактической поверхности атаки.
2. Быстрая проверка фиксированной версии и базовой линии развертывания.
Источник: 2.1 Node.js、React、Next.js
| компонент/ветвь | Рекомендуемая базовая версия | Инструкция по применению |
|---|---|---|
| Node.js 22.x | 22.23.4 | Релиз безопасности S1S2 от 21 октября. |
| Node.js 24.x | 24.22.1 | Применяется к ветке 24.x; 24.22.0 не содержит исправления безопасности от 21 октября S1S2. |
| Node.js 26.x | 26.12.1 | Релиз безопасности в том же пакете S1S2 |
| Node.js 20 и более ранние вышестоящие ветви | Миграция в поддерживаемую ветку | Node 20 не принимает это исправление исходной версии; расширенную поддержку поставщика необходимо проверять отдельно S3 |
| Next.js 15.x | 15.5.28 | Обновлено 14 октября S8 |
| Next.js 16.x | 16.4.1 | То же, что и выше S8 |
| Автономный филиал RSC 19.0 / 19.1 / 19.2 / 19.3 | 19.0.9 / 19.1.10 / 19.2.9 / 19.3.1 | Проверьте три пакета react-server-dom-* отдельно; не просто смотреть на верхний слой react S10 |
Next фактически загружен sharp | ≥0.35.5 | Официальные условия временного исправления уязвимости SVG; не заменяет другие патчи Next.js S11 |
Node официально перечисляет ветки обслуживания, затронутые октябрьской уязвимостью, но не предоставляет поэлементно первоначально представленную версию исправления, поэтому точную начальную версию каждой уязвимости нельзя определить только на основе диапазона ветвей обслуживания. При развертывании отдавайте приоритет использованию указанной выше версии той же ветки или последующей версии, в которой подтверждено наличие тех же исправлений.
2.2 Java: октябрь CPU плюс внеполосное обновление сертификата.
Эта таблица относится к Oracle JDK. Второй столбец охватывает только CPU от 20 октября; третий включает внештатный релиз от 21 октября. Версии CPU сами по себе не покрывают все риски Java, обсуждаемые здесь. S16S17S18
| филиал | 20 октября CPU | Oracle выпущен вне группы 21 октября. |
|---|---|---|
| 11 | 11.0.33 | 11.0.33.0.2 |
| 17 | 17.0.21 | 17.0.21.0.2 |
| 21 | 21.0.13 | 21.0.13.0.2 |
| 25 | 25.0.5 | 25.0.5.0.2 |
| 27 | 27.0.1 | 27.0.1.0.2 |
| 8 | 8u511 | В таблице общедоступных выпусков по-прежнему отображается 8u511; конкретная сборка безопасности и восстановление цепочки доверия должны быть проверены и не могут быть определены только на основе короткого номера версии. |
**Java 8 необходимо сверить с полной информацией о сборке:**Oracle В предупреждении указана 8u511 как затронутая версия, а в списке выпусков перечислены последующие обновления с тем же коротким именем. Статус исправления невозможно определить только по короткому номеру версии «8u511». Вам следует подтвердить конкретную сборку безопасности и исправления цепочки доверия. S17S18
Temurin, Corretto, Zulu, Microsoft Build of OpenJDK, версия выпуска OpenJDK и т. д., проверьте их соответствующие объявления и полные номера пакетов/сборок. Например, официальная запись выпуска Adoptium сообщает, что соответствующая сборка перепакована с добавлением исправления eMudhra; то же имя исходной версии не означает, что содержимое пакета такое же. Правила суффикса .0.2 для Oracle нельзя механически применять к другим издателям. S20
| Компоненты приложения Java | Рекомендуемая базовая версия | Примечания |
|---|---|---|
| Tomcat 9 / 10.1 / 11 | 9.0.123 / 10.1.61 / 11.0.27 | Проверяйте ветку за веткой; Tomcat 10.0 прекращено обслуживание S21S22S23 |
| Spring for GraphQL 2.0.x | 2.0.5(OSS) | Коммерческая поддержка также 2.0.4.1 S25. |
| Spring Security 7.1 / 7.0 | 7.1.1 / 7.0.7(OSS) | Соответствует минимальной версии исправления, объявленной в августе; перед развертыванием вам необходимо ознакомиться с последующим бюллетенем по безопасности S27S28. |
| Spring Security 6.5 / 6.4 / 5.8 / 5.7 | 6.5.12 / 6.4.19 / 5.8.28 / 5.7.26 | Объявление указано как исправление коммерческой поддержки; миграция оценивается, когда нет соответствующей поддержки и нельзя предполагать, что Maven Central доступен бесплатно S27 |
Обновления Spring должны соответствовать минимальной версии проекта Spring Boot BOM, Java и линиям совместимости. Не присваивайте всем модулям Spring один и тот же номер напрямую только для того, чтобы получить патч.
2.3 CPython, Django и зависимости сертификатов
Второй столбец таблицы ниже посвящен проблеме TLS, раскрытой в сентябре; различия ветвей для tarfile показаны в разделе 5.3.. В выпусках от 21 октября также обновлены встроенные инструменты для создания сертификатов, поэтому последний столбец включает базовые показатели более позднего развертывания. S29S30S33S35
| CPython филиал | Минимальная версия сентябрьского пакета безопасности | Рекомендуемый базовый уровень развертывания |
|---|---|---|
| 3.10 | 3.10.22 | Последний выпуск исходной версии — EOL; организовать миграцию или проверить поддержку расширения выпуска S34 |
| 3.11 | 3.11.17 | 3.11.17 и обновите pip/certifi в каждой среде индивидуально. |
| 3.12 | 3.12.15 | 3.12.15 и обновите pip/certifi в каждой среде индивидуально. |
| 3.13 | 3.13.16 | 3.13.17 |
| 3.14 | 3.14.8 | 3.14.9 |
| 3.15 | Финальная версия 3.15.0 включает оба исправления TLS: S31S47. | 3.15.1 |
Восходящие версии безопасности 3.11 и 3.12 могут выпускаться только в исходном коде; при использовании пакета операционной системы проверьте рекомендации поставщика по резервному порту и полную версию пакета, и нет необходимости принудительно заменять систему Python на самоскомпилированную версию. S33S34
| независимая зависимость | Рекомендуемая базовая версия | Описание |
|---|---|---|
| Django 5.2 / 6.0 / 6.1 | 5.2.18 / 6.0.9 / 6.1.2 | Включить последующую коррекцию S38S39 6 октября. |
| certifi | ≥2026.10.19 | Начальный патч GHSA — .18; PSF рекомендует .19 для сохранения совместимости с незатронутыми сертификатами. S36S37 |
| pip | ≥26.2.2 | Встроенную копию certifi необходимо обновить отдельно S35S37 |
| uv (если используется) | ≥0.13.4 | Обновите S37 в соответствии с фактическим методом установки. |
Эти базовые показатели охватывают перечисленные исправления. Еще одна проблема средней серьезности в tar_filter была обнаружена 22 октября. По состоянию на 23 октября 2026 г. официальная версия обслуживания, содержащая это исправление, еще не подтверждена; поэтому нельзя считать, что 3.13.17 / 3.14.9 / 3.15.1 охватывают все проблемы с tar-файлами. См. раздел 5.4. S40.
2.4 Проверка резервных копий распространения
Принципы реализации, применимые к Ubuntu, Debian, RHEL и другим пакетам программного обеспечения:
- Запишите версию операционной системы, источник репозитория, полную версию пакета и номер бюллетеня безопасности поставщика.
- Убедитесь, что рекомендации охватывают конкретный CVE и идентифицируют фиксированный пакет для соответствующего выпуска дистрибутива.
- Сравните двоичные файлы/библиотеки, загруженные реальным запущенным процессом, а не только короткую версию исходного кода.
- Если нет никаких свидетельств наличия исправления поставщика, оставьте это «на подтверждение» и не принимайте это как единственный вывод о том, что номер версии выглядит старым или новым.
Существуют различия в версиях пакета apt/RPM и стратегиях обратного переноса в разных дистрибутивах. Бюллетень безопасности и полная версия пакета каждого дистрибутива должны иметь преимущественную силу.
3. Экосистема Node.js / JavaScript: анализ причин и исправление.
3.1 CVE-2026-111497: Запись за пределы встроенного декодера Brotli
Раскрытие информации: 21 октября 2026 г.; Официальная оценка Node: High. Затронутые сборки Node 22.x, 24.x, 26.x требуют установки раздела исправлений 2.1. Node В объявлении не указан числовой балл CVSS. S1
Проблема возникает в собственной логике декодирования при обработке искаженного сжатого потока Brotli, что может привести к записи за пределами допустимого диапазона. Официальное описание Vercel подтверждает, что исследовательская демонстрация включает в себя утечки памяти процесса и выполнение команд. Сможет ли злоумышленник добраться до декодера, зависит от того, действительно ли приложение или зависимость декодируют данные, которыми оно управляет. S3
Оба направления необходимо проверять одновременно:
- inbound: платформа или промежуточное программное обеспечение автоматически распаковывает тело запроса Brotli, отправленное пользователем.
- **outbound:**HTTP Клиенты, программы захвата изображений и т. д. получают доступ к источникам, контролируемым злоумышленниками, и автоматически распаковывают возвращаемый контент.
Отключение сжатия Brotli ответов, отправляемых в браузеры, не удаляет точку входа декодирования. Защита входящего трафика WAF также не распространяется на приложения, получающие и декодирующие внешние ответы. S3
**Направление обновления:**Node Переместите исправление Brotli в собственную зависимость и дополните недопустимую проверку статуса декодирования и распространение ошибок. При поддержке самоскомпилированной версии вам следует использовать официальную версию безопасности или полный патч соответствующей ветки. Вы не можете просто изменить заявление о версии пакета JavaScript. S4
Промежуточные предложения по реализации: остановить ненужное ненадежное декодирование Brotli; проверьте поведение автоматической распаковки промежуточного программного обеспечения и клиента HTTP; если компания должна принять этот формат, как можно скорее завершите обработку в исправленной среде. Корректировка Accept-Encoding — это всего лишь акт переговоров и не должен служить самостоятельным доказательством того, что вредоносный ответ был заблокирован.
3.2 TLS / DNS три High: объект проверки не соответствует фактической цели
Все три были раскрыты 21 октября, при этом официальный порог обновления указан в разделе 2.1. S1.
| Идентификатор | Проблема подтверждена | Затронутые филиалы |
|---|---|---|
| CVE-2026-105482 | dns.resolve Усечение имен, содержащих NUL. | 22.x / 24.x / 26.x |
| CVE-2026-105483 | IP в полной числовой форме приводит к обходу проверки имени хоста сертификата. | 24.x / 26.x |
| CVE-2026-106069 | Имя хоста, которое можно условно интерпретировать как IP, приводит к обходу проверки TLS. | 22.x / 24.x / 26.x |
DNS Суть проблемы в том, что строка, проверяемая верхним уровнем, отличается от имени, реально разбираемого нижним уровнем. Официальный патч отклоняет NUL при синтаксическом анализе и добавляет покрытие регрессии. S6
TLS Два пункта включают нормализацию имени, согласованность интерпретации IP и сопоставление сертификатов. Исправьте так, чтобы нестандартный ввод IP отклонялся или обрабатывался правильно, чтобы не путать фактическую конечную точку IP с идентификатором домена сертификата. S5
Фактические предложения по устранению неполадок для : отдает приоритет проверке кода принимающего пользователя URL, динамического прокси-сервера или адреса Webhook; унифицированная стандартизация и разрешение списка разрешений, отклоняет NUL/управляющие символы, подтверждает, что законные IPv4, IPv6 и интернационализированные доменные имена все еще работают. Возможность дальнейшего формирования SSRF требует применения доказательств связи, которые нельзя напрямую вывести из имени CVE.
Не используйте NODE_TLS_REJECT_UNAUTHORIZED=0 или rejectUnauthorized: false для устранения ошибок контрольной суммы после обновления. Адрес, сертификат и бизнес-конфигурацию следует исправить.
3.3 Июль HTTP/2 High — проблемы с моделью рисков и разрешений
Следующие вопросы, раскрытые в июле, все еще требуют включения в расследование. При развертывании рекомендуется напрямую использовать базовую версию безопасности за октябрь в разделе 2.1. S7
| CVE | Причины и последствия | Первая исправленная версия |
|---|---|---|
| CVE-2026-56846 | Сохраненный блок HTTP/2 header не включен должным образом в бюджет maxSessionMemory и может исчерпать память; Удар 22.x / 24.x | 22.23.2 / 24.18.1 |
| CVE-2026-56848 | HTTP/2 повторно входит в путь отправки во время сбора пакетов, вызывая образование кучи UAF; воздействие 22.x / 24.x / 26.x | 22.23.2 / 24.18.1 / 26.5.1 |
| CVE-2026-58043 | --permission Соответствие границ префикса пути слишком велико, и возможен доступ к файлам за пределами разрешенного списка. | То же, что и три линии обслуживания выше. |
Все три официально имеют High. Первые два пункта отдают приоритет проверке того, обрабатывается ли HTTP/2 самим Node; третий элемент имеет соответствующее значение только при использовании модели разрешений и использовании этой границы. Не все элементы модели разрешений могут быть описаны как сеть RCE, не требующая аутентификации. S7
Временное прекращение работы HTTP/2 на отдельном обновленном прокси-сервере и ограничение внутренних источников — это вариант развертывания, позволяющий снизить риск заражения; квоты ресурсов могут контролировать только последствия исчерпания ресурсов и не могут исправлять UAF.
3.4 Октябрь React / Next.js: два элемента RCE и один элемент DoS
A. RCE в функциях RSC / use cache, возвращающих типизированные массивы
Дата публикации: 14 октября 2026 г.; Critical, CVSS 4.0 9.5. Официальные рекомендательные идентификаторы:
Проблема восходящего потока React включает в себя несколько типизированных массивов в сочетании со значениями, контролируемыми злоумышленником, в ответе RSC. Тремя затронутыми версиями пакета react-server-dom-* являются 19.0.0—19.0.8, 19.1.0—19.1.9, 19.2.0—19.2.8, 19.3.0; см. главу Раздел 2.1. Чисто браузерный React или приложения, которые вообще не используют платформы/плагины, поддерживающие RSC, не подпадают под действие этого пункта. S10
Next.js списки нисходящих объявлений 16.0.0—16.4.0, исправлено в 16.4.1; сценарий — это функции App Router, Cache Components и use cache, которые возвращают несколько типизированных массивов. Официального надежного общего решения не существует, и пользователи затронутых версий должны своевременно обновляться. Нецелесообразно просто полагаться на ручной поиск по запросу «эта функция, похоже, не существует» для завершения обработки. S9
Источник: B. SVG Image Optimization RCE
CVE-2026-96889/GHSA-2464-fhr4-w9xw, 14 октября 2026 г., Critical, CVSS 4.0 9.5. Проблема возникает в исходной собственной библиотеке, используемой для оптимизации изображений. Официальные лица отметили, что риск RCE существует в сценарии glibc Linux. S11
Поля официальной версии:
>=10.0.0 <=15.5.27;>16.0.0 <=16.4.0。
Чиновник использует строгую нижнюю границу >16.0.0 для ветки 16.x, но этого заявления о диапазоне недостаточно, чтобы доказать, что 16.0.0 безопасен. Фактическая цель обновления — 15.5.28 / 16.4.1. S11
Официальное временное решение — гарантировать, что Next действительно загружает четкую ≥0.35.5. Файлы блокировки, вложенные зависимости и образы развертывания могут по-прежнему содержать старые экземпляры, поэтому простого добавления новой версии зависимости sharp на верхнем уровне недостаточно, необходимо проверить и перестроить окончательное дерево зависимостей. S11
C. Server Actions CPU исчерпан
**GHSA-p3m5-59mp-jv5r, 14 октября 2026 г., High, CVSS 4.0 8.2.**Next влияет на 13.0.0—15.5.27, 16.0.0 — 16.4.0, исправляет 15.5.28 /16.4.1. Условия: App Router и хотя бы один Server Action; вредоносные запросы могут удерживать CPU занятым в течение длительного времени, блокируя последующие запросы в том же процессе. На приложения с Pages Router или без Server Actions это не влияет. S12
Официального решения, которое могло бы заменить обновление, не существует. Ограничения скорости, ограничения параллелизма и квоты ресурсов могут уменьшить ущерб, но не могут использоваться в качестве заключения для проверки исправлений.
3.5 Ранее Next.js в том же окне Серьезная проблема
Следующие элементы предназначены для того, чтобы избежать пропущенных развертываний, которые все еще зависают в версиях, выпущенных до августа–сентября; сейчас не рекомендуется просто переходить к старым пороговым значениям исправлений, указанным в таблице.
| Дата | Идентификатор/сценарий | Первое исправление; текущее действие |
|---|---|---|
| 2026-08-25 | GHSA-2xp9-vwfh-vxw4: AVIF собственная библиотека оптимизации изображений RCE, Critical | 15.5.24 / 16.3.3; сейчас 15.5.28 / 16.4.1 S13 |
| 2026-08-25 | CVE-2026-75604: RCE, Critical, когда Pages Router и App Router используются одновременно в Windows, а Cache Components не включен; версии >=13.4.0 <15.5.24, >=16.0.0 <16.3.3 | 15.5.24 / 16.3.3; Эта конкретная проблема Windows не затрагивает Linux/macOS S14. |
| 2026-09-22 | GHSA-vcvr-r3jv-pc5j: путь создания образа Node в next/og обрабатывает недоверенные SVG, Critical; 16.2.0—16.3.5 | 16.3.6; реализация Edge выходит за рамки этой проблемы, и 15.x не является затронутой веткой для этого RCE S15 |
4. Экосистема Java: доверие во время выполнения, контейнеры и платформы обрабатываются отдельно.
4.1 JDK: Обычные CPU и CVE-2026-91403 являются двухуровневыми обновлениями.
В матрице рисков Java SE для Oracle CPU от 20 октября перечислено 55 новых исправлений безопасности, 49 из которых помечены как пригодные для использования по сети без аутентификации. Это не означает, что существует 55 Critical, а также не означает, что существует 49 напрямую эксплуатируемых путей RCE для каждого веб-сервиса Java; его следует понимать в сочетании с компонентами, API, взаимодействием с пользователем и условиями развертывания в матрице. S16
CVE-2026-91403 (CVSS 3.1 9.1) следующего дня связан с другим типом риска: набором промежуточных CA, связанных с событием eMudhra, которому больше не доверяют. Она влияет на аутентификацию одноранговых узлов TLS и конфиденциальность/целостность связи и не может быть описана как уязвимость повреждения памяти JVM. S17
В информационном бюллетене Oracle указана версия, выпущенная 20 октября, как затронутая, поэтому необходимо также установить дополнительное обновление от 21 октября. См. раздел 2.2 для конкретной версии. У GraalVM также есть соответствующие уязвимые продукты, и на исправленную версию должен распространяться эксклюзивный бюллетень безопасности. S17S18
Временные официальные меры: Сначала создайте резервную копию, а затем удалите указанный корневой сертификат из каждого фактически используемого хранилища доверенных сертификатов:
emSign ECC Root CA - G3, Oracle псевдонимemsigneccrootcag3 [jdk].AAA Certificate Services, Oracle псевдонимcomodoaaaca [jdk]. S19
JDK 11 и более поздних версий, официальный пример:
keytool -delete -cacerts -alias "emsigneccrootcag3 [jdk]"
keytool -delete -cacerts -alias "comodoaaaca [jdk]"
Используйте keytool из целевого JDK для этих команд и убедитесь, что они работают в реальном хранилище доверенных сертификатов приложения. Java 8 использует путь, соответствующий jre/lib/security/cacerts; настройка хранилища доверенных сертификатов должна выполняться отдельно, и другие издатели могут иметь разные псевдонимы. Удаление корневого сертификата расширит область отклонения и позволит провести регрессионное тестирование цепочек законных сертификатов служб. S19
Официальный представитель также предоставляет возможность включить проверку отзыва, но эффект зависит от фактической реализации TLS, доступности службы отзыва и стратегии отказа. Для общих развертываний отдайте приоритет установке полных обновлений поставщика, чтобы не рассматривать два коммутатора JVM как свидетельство того, что все библиотеки TLS исправлены.
4.2 Tomcat: обход аутентификации и изоляция межпользовательских запросов.
Следующие три элемента были опубликованы на 2026-10-20; запись об исправленной версии датирована 12 октября. Официальная оценка Apache — Important. S21S22S23
| CVE | Подтвержденные затронутые версии | Необходимые сценарии/результаты |
|---|---|---|
| CVE-2026-101296 | 9.0.0.M1—9.0.122;10.1.0-M1—10.1.60;11.0.0-M1—11.0.26 | JNDIRealm Настраивает механизм аутентификации SASL, отличный от GSSAPI, проверка учетных данных отсутствует, также могут пройти неверные пароли. |
| CVE-2026-101356 | 9.0.118—9.0.122;10.1.55—10.1.60;11.0.22—11.0.26 | Асинхронная обработка ошибок сервлета HTTP/2 неправильно перерабатывает/повторно использует объекты, вызывая смешивание запросов или ответов между пользователями. |
| CVE-2026-103119 | Подтвердите только 11.0.0-M25—11.0.26. | Большие неблокирующие записи AJP могут привести к недостаточному чтению буфера, что приведет к раскрытию данных предыдущего ответа в последующих запросах. |
Соответствующее исправление — 9.0.123/10.1.61/11.0.27; Согласно объявлению, AJP указан только как Tomcat 11 и не может быть расширен до трех ветвей с одной и той же проблемой. S21S22S23
Патч JNDIRealm исправляет пробел в проверке фактического процесса аутентификации, когда вместо проверки нельзя использовать фразу «интерфейс входа в приложение выглядит нормально». Realm, механизмы SASL должны быть проверены на предмет фактической конфигурации службы, а тесты должны завершиться неудачно из-за неверных паролей. S24
Промежуточные предложения по реализации: изолируйте затронутый путь аутентификации; приостановить обработку HTTP/2 Tomcat, когда это разрешено бизнесом; закрыть бесполезный AJP. Только ограничение прямого доступа к порту AJP не может гарантировать, что трафик, входящий через легальный передний прокси, не будет затронут. После официального обновления необходимо протестировать асинхронные одновременные запросы от двух независимых пользователей, чтобы убедиться в отсутствии перекрестных помех между идентификаторами и ответами.
Источник: 4.3 Spring for GraphQL:CVE-2026-59285
Дата публикации: 20 августа 2026 г.; High. затронут 2.0.0—2.0.4, исправлен 2.0.5 (OSS) или 2.0.4.1 (коммерческая поддержка). S25
Это небезопасный риск десериализации в страничных запросах. Официальным требованием является одновременное выполнение следующих условий:
- Используйте Spring for GraphQL.
- Десериализовать JSON с помощью Jackson 2.x.
- Предоставьте поле подкачки подключения внешнему миру.
- Путь к классам содержит определенные классы, которые могут выполнять неожиданную логику во время создания экземпляра или десериализации.
Вредоносный запрос GraphQL может вызвать RCE при выполнении условий. Его нельзя свести к тому, что «все программы Java, использующие Jackson, могут быть взломаны». S25
Почему 2.0.4 недостаточно: В июне CVE-2026-41699 предоставил базовые версии патчей, такие как 2.0.4, а в августе объявление явно включило 2.0.4 в новую сферу влияния. Поэтому запись о ремонте должна обновляться в соответствии с последующими объявлениями, и минимальную версию старой CVE использовать нельзя. S26
Если обновление временно недоступно, затронутые поля нумерации страниц, доступные ненадежным вызывающим абонентам, могут быть приостановлены; сужение десериализуемых типов и путей к классам является углубленной мерой. Регрессии должны охватывать допустимые курсоры, результаты с разбивкой на страницы и отклонения ввода исключений, а также проверять фактические версии компонентов в окончательном JAR-файле приложения.
4.4 Spring Security: CVE-2026-59270 и связанные с ним риски аутентификации.
CVE-2026-59270, 20 августа 2026 г., Critical. Встроенный UnboundIdContainer по умолчанию регистрирует известные учетные данные администратора и прослушивает все сетевые интерфейсы. Когда компонент включен и порт доступен, злоумышленник может прочитать или изменить данные каталога; проекты, в которых обычно используется Spring Security, не будут автоматически предоставлять LDAP. S27
Пораженная территория:
| филиал | затронутый | Первый канал исправления/приобретения |
|---|---|---|
| 7.1 | 7.1.0 | 7.1.1 OSS; также коммерческий 7.1.0.1 |
| 7.0 | 7.0.0—7.0.6 | 7.0.7 OSS; также коммерческий 7.0.6.1 |
| 6.5 / 6.4 | 6.5.0—6.5.11;6.4.0—6.4.18 | 6.5.12/6.4.19, коммерческий |
| 5.8 / 5.7 | 5.8.0—5.8.27;5.7.0—5.7.25 | 5.8.28/5.7.26, коммерческий |
Источник: S27. Устраните неполадки автоматической настройки spring.ldap.embedded.* и кода прямого создания экземпляра; закройте компонент, когда он не нужен для производства, и проверьте фактический адрес прослушивания. Когда бизнесу это действительно необходимо, сначала ограничьте источники вызовов, а затем завершите обновление компонентов.
**Связанная проблема с аутентификацией: CVE-2026-47841 (High).**WebAuthn Для аутентификации пользователя установлено значение REQUIRED, и после сериализации сеанса HTTP распределенным хранилищем неправильное сравнение идентификаторов объектов может сделать требование аутентификации недействительным. Атака также требует, чтобы злоумышленник владел устройством аутентификации пользователя, а не произвольным удаленным входом в систему без устройства. Для соответствующих уязвимых версий 7.1, 7.0, 6.5 и 6.4 базовая версия исправления соответствует этим ветвям в приведенной выше таблице; проверка должна охватывать сеансы между узлами и по-прежнему требовать PIN-кода/биометрической проверки. S28
5. Экосистема Python: интерпретатор, стандартная библиотека, фреймворк и сертификаты.
5.1 CVE-2026-19445: SSLContext UAF в обратном вызове SNI
Дата публикации: 30 сентября 2026 г.; PSF Уровень: Critical. На сервере Python TLS sni_callback переключает соединение на другой SSLContext, и когда исходный контекст не имеет других сохранившихся ссылок, неаутентифицированный Клиент TLS может привести к сбою службы или вызвать указатель в выпущенном объекте. S29
Суть в том, что объект Python несовместим с базовым жизненным циклом обратного вызова TLS. Исходный контекст был освобожден, и базовый уровень все еще может содержать состояние, необходимое для обратного вызова; для исправления жизненного цикла ссылки необходимо использовать собственный патч интерпретатора. S47
Scope: Код Python, который действует только как клиент TLS, не затрагивается этим элементом; нормальный режим прослушивающего сокета, удерживающего исходный контекст в течение длительного времени, не попадает в конкретный путь отказа, описанный в объявлении. После того, как Nginx завершает работу TLS, он передает только локальный HTTP Python, а Python напрямую обрабатывает SNI, что представляет собой другую поверхность атаки. S29
Соответствует фиксированной версии 3.10—3.14, см. раздел 2.3.. Официальная версия 3.15 исправлена, и теперь можно выбрать 3.15.1. Только обновление зависимости pip не может заменить реализацию интерпретатора _ssl. S33S35S47
Официальное временное решение: сохраняет строгие ссылки на все SSLContext, которые установили обратный вызов SNI, до конца жизненного цикла сервера. Это должно охватывать фактические пути динамического создания и переключения; пользовательская сборка OpenSSL 1.1.1 также должна проверять условия повторного согласования в сочетании с официальной записью о проблеме и отдавать приоритет полным обновлениям. S29S47
5.2 CVE-2026-19553: флаг имени хоста включен, но имя хоста отсутствует при вызове
Дата публикации: 30 сентября 2026 г.; High. КогдаSSLContext.check_hostname=True, если wrap_bio() не передан в server_hostname, исходная реализация может молча пропустить проверку имени хоста. Успешная проверка цепочки сертификатов не означает, что целевое доменное имя также соответствует. S30
Исправление требует обоих шагов:
- Установите версию безопасности переводчика, указанную в разделе 2.3..
- Проверьте
wrap_bio(), связанные путиasyncio.create_connection()/loop.start_tls(), явно передайте ожидаемое и непустое имя хоста и включите проверку сертификата. S30
**Различия совместимости, которые нельзя опустить:**3.10, 3.11, 3.12 предназначены для совместимости, только DeprecationWarning выдается в некоторых случаях, когда имя хоста отсутствует; 3.13 и более поздние версии повышают ValueError. Backport 3.12 также четко отличает None от пустых строк: для None добавляется новое предупреждение, а для пустых строк по-прежнему сообщается об ошибке. Таким образом, пользователи нижних ветвей не могут предполагать, что первоначально отсутствующая проверка доменного имени была автоматически восстановлена просто путем обновления. S31S33
В тестовой среде используйте сертификат доверенной цепочки с несовпадающим именем хоста и убедитесь, что реальный клиент приложения TLS отклоняет его. Простое чтение логического значения check_hostname не означает полного принятия.
5.3 CVE-2026-82049: Обход комбинации ссылок в фильтре tarfile
Дата публикации: 14 сентября 2026 г.; High. В CPython 3.13 и более ранних связанных реализациях комбинация жестких ссылок и символических ссылок в ненадежном tar может обойти фильтр извлечения data / tar, раскрывая содержимое файлов за пределами каталога распаковки в дереве распаковки, или изменение их разрешений и времени изменения. S32
Подтвержденные последствия этой уязвимости включают раскрытие содержимого файлов и изменение метаданных; одних только этих воздействий недостаточно, чтобы продемонстрировать произвольную перезапись содержимого внешнего файла или безусловную реализацию RCE.
Соответствующие базовые версии исправлений 3.10—3.13 см. в разделе 2.3.. Python 3.14 был освобожден от этой конкретной проблемы из-за изменений в поведении os.link() с тех пор. 3.14.0b1, поэтому затронутая область ветки 3.10—3.13 выше не применяется. S33
Временные и углубленные меры: приостановить автоматическое извлечение ненадежных архивов; используйте изолированные рабочие процессы с низким уровнем привилегий и новые эксклюзивные каталоги, когда бизнес должен быть обработан, запрещайте символические ссылки, жесткие ссылки и записи устройств по бизнесу, а также ограничивайте количество файлов и ресурсов распаковки. Это рекомендации по развертыванию.
filter="data" больше подходит для общих недоверенных архивов, чем для стратегии полного доверия, но сам фильтр на старой версии также имеет эту уязвимость, и само по себе добавление этого параметра не может заменить обновление. Фильтр также не является полноценной «песочницей» файловой системы. S32S45
5.4 Дополнительный риск: CVE-2026-114583 (Medium) и статус выпуска исправлений.
PSF раскрыт в 2026-10-22, что обработку tarfile.tar_filter конкретных имен ссылок можно обойти, позволяя последующим членам писать за пределами каталога распаковки, с уровнем Medium. Официальное исправление PR было добавлено в тот же день; по состоянию на 23 октября 2026 г. ни один официальный выпуск обслуживания, содержащий этот коммит, подтвержден не был. S40
Поэтому:
- Этот товар указан отдельно как Medium.
- Версии интерпретатора, выпущенные 21 октября, не могут считаться содержащими это исправление.
- Процесс, который по-прежнему использует
filter="tar"для обработки ненадежных архивов, должен отслеживать резервный порт выпуска; изолировать или приостановить этот путь обработки на короткий период времени. При переходе наdataи отклонении ссылок необходимо также подтвердить, что он соответствует бизнес-требованиям, а смену фильтра нельзя назвать безусловной песочницей.
5.5 GeoDjango: CVE-2026-15307 и последующие исправления в октябре.
2026-08-04, Django официальный High. пространственный запрос неявно передает определенные строки/словари в GDALRaster, и драйвер может записывать файлы или инициировать сетевые запросы; RCE может формироваться при наличии определенных путей и условий последующего выполнения. Сотрудники с разрешениями на просмотр модели пространственного поля также могут получить доступ к этому пути через список изменений администратора. S38
Первоначальное исправление — 5.2.17 / 6.0.8, которое ограничивает типы входных данных, принимаемые пространственным поиском. Это изменение может повлиять на первоначальный подход к использованию строк/словарей для выражения растра; простая упаковка ненадежных входных данных в GDALRaster не означает их проверку. S38
6 октября CVE-2026-87890 (Moderate) был исправлен: VRT, выраженный в байтах, может ссылаться на внешние ресурсы и по-прежнему запускать сетевые запросы; В тот же день была усилена защита вложенной геометрии DoS CVE-2026-15830. Последние два нельзя обновить для описания нового RCE с высоким риском, но они указывают, что базовым уровнем развертывания должен быть 5.2.18 / 6.0.9 / 6.1.2. S39
Реализация проверяет две точки входа API и интерфейс администрирования, ограничивает ненадежный пространственный поиск, разрешения на запись файлов и исходящий доступ; после обновления выполните регрессионное тестирование допустимых пространственных запросов и отклонение запрещенного ввода. Обычные приложения Django, которые не используют GeoDjango, не должны напрямую применять этот вывод RCE.
5.6 certifi / pip: доверие сертификата должно охватывать каждую копию.
GHSA-6q48-6c7w-9gw2, 20 октября 2026 г., Critical, известный CVE не указан. Это обновление недоверия к сертификатам, вызванное промежуточным инцидентом eMudhra CA. Его нельзя охарактеризовать как криптографический механизм HTTPS или что все корневые сертификаты были взломаны. S36
В рекомендации certifi изначально 2026.10.18 был указан как патч; PSF позже явно рекомендовал 2026.10.19 для сохранения совместимости с незатронутыми корневыми сертификатами. Операционная базовая линия составляет 0,19. S36S37
Нужно различать:
| Доверительное расположение материала | Почему нужно проверять отдельно |
|---|---|
| Пакет операционной системы CA | Доверительный материал системы для образа или хоста |
| certifi в венв | CA bundle фактически используется приложениями, запросами и т. д. |
| pip встроенный certifi | Это копия, отличная от установленной извне certifi. |
| uv / Другие упаковочные инструменты | Следите за собственными обновлениями инструмента и проверенными источниками. |
| Настраиваемые файлы CA, упакованные снимки | Может продолжать переопределять доверенные источники по умолчанию для систем или пакетов. |
Выше приведен контрольный список, основанный на различных местах упаковки. PSF требует обновления связанных инструментов, существующих виртуальных сред и перестройки образа; только обновление хоста CA или переустановка интерпретатора не могут доказать, что все копии были обновлены. S35S37
При обновлении старой безопасной начальной загрузки pip PSF предоставляет команды для fixed Wheel и SHA-256, см. приложение S37. Не отключайте проверку TLS и не добавляйте --trusted-host, чтобы обойти проблемы с сертификатами.
6. Формальный процесс исправления
Следующие команды предназначены для подтвержденных доверенных сред. При выполнении необходимо объединить существующий менеджер пакетов, файл блокировки и процесс развертывания проекта, чтобы избежать смешивания npm/pnpm/yarn или pip/uv/Poetry для создания конфликтующих файлов блокировки.
Сначала обработайте исключение:. Если вы подозреваете, что в среде был запущен скомпрометированный пакет, описанный в разделе 9, сначала изолируйте его и проверьте диск, заблокируйте файл и запись образа в чистой среде; не запускайте сначала следующую команду Python/pip. S41
6.1 Создайте реестр, который может соответствовать реальному трафику.
Каждая служба записывает как минимум:
- Внешняя точка входа, обратный прокси-сервер, прямой путь подключения к исходному сайту и фоновая очередь/запланированные задачи.
- Фактическая команда запуска, запущенная учетная запись, двоичный путь, идентификатор процесса или контейнера.
- Полная версия среды выполнения, издатель/репозиторий, полная версия пакета или дайджест образа.
- Платформа и транзитивные зависимости, файлы блокировки, собственные библиотеки и пути к хранилищу доверенных сертификатов.
- В зависимости от того, существует ли состояние уязвимости, цель исправления, область перезапуска, ответственное лицо и результат проверки.
Машины разработки, средства выполнения CI, контейнеры сборки и фоновые задачи также следует проверять на предмет их путей к ненадежному содержимому; не просто обновляйте общедоступный веб-контейнер.
6.2 Node.js: сначала определите среду выполнения, затем обновите зависимости приложения.
Проверьте в реальной среде обслуживания:
node -p 'JSON.stringify({execPath:process.execPath,node:process.version,openssl:process.versions.openssl,brotli:process.versions.brotli},null,2)'
npm ls next react react-dom react-server-dom-webpack react-server-dom-parcel react-server-dom-turbopack sharp --all
npm audit --omit=dev
node -p должен выполняться с использованием фактического исполняемого файла службы или внутри реального контейнера; он проверяет наличие новых запущенных процессов и сам не доказывает, что старый рабочий процесс был заменен. Node может добавить патч во встроенный Brotli, сохраняя при этом исходную строку версии библиотеки. Поэтому не полагайтесь исключительно на process.versions.brotli, чтобы определить, был ли он отремонтирован. Вам следует объединить его с версией безопасности Node или свидетельством резервного копирования поставщика. S2S4
npm ls используется для просмотра фактического дерева зависимостей; отсутствующие пакеты или конфликты одноранговых узлов также могут привести к ненулевым кодам выхода, поэтому вам следует прочитать конкретный вывод. npm audit используется в качестве средства проверки зависимостей и не может заменить Node проверку двоичных и встроенных библиотек.
Используйте mise для управления средой Node 24, которую можно обновить следующим образом:
mise use -g [email protected]
mise exec [email protected] -- node -p 'process.version + " " + process.execPath'
mise use -g настраивает глобальную версию; локальную конфигурацию проекта по-прежнему необходимо проверять отдельно. Если служба исправила старый абсолютный путь, базовый образ контейнера или среду другой учетной записи, необходимо обновить соответствующую конфигурацию и перезапустить службу. Сама команда не заменяет старый запущенный процесс. S43
В проекте Next выполните соответствующую команду согласно выбранной ветке. Для Next 15:
# Next 15 分支
npm install --save-exact [email protected]
Для Next 16:
# Next 16 分支
npm install --save-exact [email protected]
Проверьте React/RSC-совместимые зависимости, заблокируйте файлы и окончательный острый экземпляр, а затем выполните сборку в соответствии с процессом проекта. Используйте обновленный файл блокировки в CI для воспроизводимой установки и проверьте версию в работающем образе после сборки. Не используйте неконтролируемое автоматическое восстановление основных версий в качестве решения по умолчанию для этой чрезвычайной ситуации.
6.3 Java: проверка издателя, фактического JVM и встроенных компонентов.
Предварительная инвентаризация:
java -XshowSettings:properties -version
java.home, java.runtime.version и издатель в выходных данных должны быть приведены в соответствие с JVM, фактически используемым службой. Для JVM с разрешением на подключение jcmd из JDK можно использовать для проверки целевого процесса, а не только оболочки входа.
Проверьте зависимости в доверенных проектах и выберите на основе реальных инструментов сборки:
./mvnw dependency:tree '-Dincludes=org.apache.tomcat.embed:*,org.springframework.security:*,org.springframework.graphql:*'
./gradlew dependencyInsight --dependency tomcat-embed-core --configuration runtimeClasspath
./gradlew dependencyInsight --dependency spring-security-core --configuration runtimeClasspath
./gradlew dependencyInsight --dependency spring-graphql --configuration runtimeClasspath
Эти команды сборки могут запускать надстройки и разрешать зависимости в режиме онлайн и выполняться только в доверенных проектах. Проверьте окончательный JAR/WAR или фактический JAR в образе и не заменяйте объявления файла сборки окончательным артефактом. Spring Загрузочный встроенный Tomcat требует пересборки приложения; обновление отдельной установки Tomcat в системе не приведет к изменению копии в пакете приложения.
После обновления среды выполнения проверьте настроенный javax.net.ssl.trustStore, самостоятельно загружаемое приложением хранилище ключей, среду выполнения jlink, GraalVM/собственный образ и другие формы доставки по пунктам. Приложения, у которых уже есть настроенные доверенные материалы, не могут завершить проверку только потому, что каталог JDK становится новым.
6.4 Python: интерпретатор за интерпретатором и обработка в виртуальной среде.
Внутри фактического венва/контейнера, которому доверяют:
python - <<'PY'
import sys
import ssl
import importlib.metadata as metadata
print("executable:", sys.executable)
print("version:", sys.version)
print("openssl:", ssl.OPENSSL_VERSION)
print("verify_paths:", ssl.get_default_verify_paths())
for name in ("pip", "certifi", "Django", "urllib3", "Brotli", "litellm"):
try:
print(name + ":", metadata.version(name))
except metadata.PackageNotFoundError:
print(name + ": not installed")
PY
python -m pip --version
python -m pip check
Этот сценарий только собирает информацию и не выполняет определение квалификации версии. ssl.get_default_verify_paths() — это информация о пути по умолчанию, и она не может доказать, что все сторонние клиенты используют одно и то же хранилище доверенных сертификатов; это должно быть подтверждено на основе конфигурации приложения.
После завершения доверенного обновления загрузки pip приложения S37 обновите зависимости сертификата в соответствии с ограничениями проекта, например:
python -m pip install --upgrade 'certifi>=2026.10.19'
# 仅适用于当前就选择 Django 5.2 的项目
python -m pip install --upgrade 'Django>=5.2.18,<5.3'
python -m pip check
Файл требований/блокировки проекта необходимо обновить одновременно, иначе при следующем развертывании может вернуться к старой версии. При использовании uv, Poetry или репозитория корпоративных пакетов используйте существующие процессы блокировки и публикации; не изменяйте пакеты вручную только внутри производственного контейнера.
Существующий рабочий процесс проекта pip-audit можно использовать для проверки известных уязвимостей зависимостей в доверенной среде; это не сканер вредоносного кода и не покрывает все риски интерпретатора, системной библиотеки и хранилища доверенных сертификатов. S44
Не рекомендуется заставлять систему /usr/bin/python3 указывать на новую скомпилированную версию. Используйте обновления безопасности выпуска или среды выполнения изоляции проекта, чтобы избежать поломки инструментов управления, которые полагаются на систему Python. Это выбор реализации, который не является дополнительным требованием к устранению этой уязвимости.
6.5 Пересоберите и замените работающий экземпляр.
При полной замене рекомендуется выполнить следующие шаги:
- Получите патч из исходного надежного источника и сохраните версию/хэш и блокировку зависимостей.
- Верните ключевые функции в среду, близкую к производственной, и убедитесь, что собственные расширения совместимы с JVM/framework.
- Обновите среду выполнения, зависимости приложений и фактическое хранилище доверенных сертификатов; обновите базовый образ и систему CA для контейнера, а не просто повторно используйте старый слой.
- Перестраивайте приложения и образы, а также периодически заменяйте экземпляры служб, исполнителей, потребителей очередей и запланированных задач.
- Еще раз проверьте версию и конфигурацию нового запущенного экземпляра и убедитесь, что все старые копии завершились.
- Наблюдайте за частотой ошибок, задержкой, CPU/памятью, сбоями установления связи TLS и сбоями процессов.
Откат должен отдавать приоритет сохранению безопасной среды выполнения и зависимостей исправлений, а также откату конфигурации приложения или бизнес-изменений. Если вам придется вернуться к старому продукту с уязвимостями, соответствующие ограничения на вход должны быть восстановлены одновременно, а также четко определены ответственное лицо и минимальный период восстановления.
7. Временное смягчение последствий и выбор патча
7.1 Граница действия временных мер
Ниже приведены предложения по реализации, основанные на объявленных условиях использования. Если не указан официальный план, производитель не гарантирует, что все варианты могут быть полностью заблокированы.
| риск | Временные меры, которые можно принять | Часть, которая не может считаться завершенной на основании этого |
|---|---|---|
| Brotli декодирование | Остановить ненадежное декодирование ввода; проверить входящую и исходящую автоматическую декомпрессию | Входящий WAF или отключение сжатия ответа не распространяется на все записи декодирования S3 |
| Next.js typed arrays RCE | Обновите немедленно; при необходимости временно изолировать затронутые службы | Официального надежного универсального решения S9 не существует. |
| Next.js SVG RCE | Официальный план: Обеспечить фактическую остроту ≥0.35.5; приостановить соответствующие точки входа в оптимизацию, когда это позволяет бизнес | Не охватывает другие проблемы Next/RSC S11 |
| Область Tomcat / HTTP/2 / AJP | Изолируйте соответствующий путь и закройте ненужные соединители. | Все еще нужен соответствующий пакет ремонта филиала S21S22S23 |
| GraphQL Десериализация | Приостановить затронутые поля подключения; ограничить ненадежных абонентов | Только ограничение длины запроса не может решить проблему типа/десериализации S25 |
| Spring embedded LDAP | Отключайте, когда не нужно; ограничить досягаемость реального порта прослушивания | Административную идентификацию по умолчанию и целостность каталога все еще необходимо проверить S27 |
| CPython SNI UAF | Официальный план: сохраняйте соответствующую строгую ссылку SSLContext до конца обслуживания. | Все пути создания/переключения должны быть покрыты S29. |
| Python пропуск имени хоста | Официальное решение: правильно передать ожидаемое имя_сервера | Невозможно просто проверить флаг check_hostname или игнорировать предупреждение S30S31 |
| Ненадежная смола | Отключить/поместить в карантин извлечение, отклонить несущественные ссылки и записи об устройствах. | Ни фильтры, ни квоты ресурсов не являются универсальными песочницами S32S40S45 |
| Событие доверия сертификата | Обновите правильный материал CA; Доверие Java может быть ограничено в соответствии с официальными мерами. | Отключение проверки TLS увеличивает риск S19S37 |
7.2 Выбор патча в зависимости от способа доставки
| Способ доставки | Расставьте приоритеты в методах ремонта | Доказательства, которые следует сохранить |
|---|---|---|
| Среда выполнения, управляемая распространением | Соответствующие обновления безопасности производителя. | Полная версия пакета, анонс, исходный код репозитория |
| Официальный двоичный файл/менеджер времени выполнения | Официальный релиз безопасности из той же ветки | Версия, исходный код и дайджест, фактический путь выполнения |
| Самокомпилированный Node / CPython | Официальный исходный релиз соответствующей ветки или полный набор исправлений поставщика. | Набор коммитов, параметры сборки, зависимые библиотеки и результаты регрессии |
| Spring / Next / Django | Совместимость с обновлениями внутри ветвей, восстановлением блокировок зависимостей и окончательными приложениями. | Окончательное дерево зависимостей, актуальная версия в JAR/package/image. |
| Пользовательское хранилище доверенных сертификатов | Официальный план вывода средств или обновление поставщика, подтверждающее вывод средств | Фактический путь использования, изменение материала, успешные и отказные тесты TLS |
| Скомпрометированная среда | Восстановите систему на основе чистых и надежных продуктов и проведите отдельное расследование инцидентов. | Исторический дайджест пакета/образа, запись установки, запись ротации учетных данных |
7.3 Механизм исправления ключей и фокус обзора
- Brotli: обращает внимание на то, завершены ли проверка границ и возврат ошибок собственного состояния декодирования перед входом в сборку; только замена пакета JavaScript не может изменить код, статически скомпилированный в Node. S4
- Node DNS/TLS: фокусируется на отклонении ввода, нормализации адреса, различении идентификаторов IP SAN и DNS, а также обратном вызове/обещании DNS. путь анализа и проверка соответствия имени хоста TLS. S5S6
- Tomcat JNDIRealm: фокусируется на том, действительно ли процесс аутентификации проверяет учетные данные, а не просто на получении контекста каталога; отдавая приоритет официальной версии и не рассматривая замену одного исходного файла как полный бинарный патч. S24
- CPython ssl: фокусируется на владении ссылкой Python и жизненном цикле базового SSLContext;
wrap_bio()выполняет резервное копирование, хотя имеет различия в совместимости ветвей, и вы должны прочитать фактическую реализацию используемой ветки. S31S47 - Сертификат недоверия: Такие обновления могут отображаться как доверенные материалы или изменения в запрещенном списке, а не как очевидные изменения API. В ту же партию Node также входит механизм отбраковки затронутого промежуточного продукта CA; соответствующие источники доверия Java и Python по-прежнему необходимо проверять отдельно. S19S37S46
**Независимая привязка Brotli также должна быть проверена.**В тот же день Google выпустила 1.0.10 / 1.1.1 / 1.2.1 для исправления. CVE-2026-111497. Собственные расширения Python или артефакты JNI, встраивающие одну и ту же затронутую реализацию C, необходимо независимо обновлять/пересобирать; нельзя сделать вывод, что затронуты все чистые декодеры Java, а также нельзя предположить, что обновление Node автоматически заменяет копии на других языках. S42
8. Проверка и последующие проверки
8.1 Минимальный контрольный список проверки
| Проверить элементы | Требуются доказательства |
|---|---|
| время выполнения | Доказательства полной версии или резервного копирования поставщика верны в реальном процессе/контейнере. |
| зависимости приложения | Next/RSC/sharp, Tomcat/Spring и Django/certifi в продуктах окончательного развертывания достигли соответствующего порога. |
| Диапазон замены | Все копии рабочих/JVM/контейнеров и фоновые задачи были заменены новыми, а старые экземпляры завершились. |
| TLS | Действительные сертификаты домена успешны; несовпадающие имена хостов и недействительные цепочки не соответствуют политике; включены пользовательские хранилища доверия |
| eMudhra недоверие | Цепочка сертификатов, созданная затронутым промежуточным звеном CA, была отклонена во время фактического выполнения, или есть свидетельства того, что была развернута сборка безопасности конкретного поставщика или соответствующий список отклонения; дело не может быть закрыто на основании общего теста TLS или короткого номера версии Java 8. |
| Node расшифровка и образы | Доступны обычный сжатый ответ, загрузка, оптимизация изображения и функции RSC; действует политика ненадежных источников |
| Java Аутентификация и изоляция | Неправильный пароль отклонен; независимые одновременные асинхронные запросы пользователей без смешивания идентификаторов и ответов; LDAP слушает, как и ожидалось |
| Python SNI / Архив | Обычный многодоменный бизнес с именем TLS стабилен; архивирование отклоняет обход пути и запрещенные ссылки, а файлы вне каталога не изменяются. |
| Данные и функциональная регрессия | Пейджинг, пространственный запрос, проверка разрешений и фоновые задачи прошли существующие тесты проекта. |
| Ресурсы и наблюдения | Аномального увеличения CPU, памяти, частоты ошибок, задержки и ошибок TLS не наблюдается. |
| Прослеживаемость | Сэкономьте время обновления, дайджест пакета/образа, изменения конфигурации, результаты проверки и неразрешенные элементы. |
Это рекомендации по принятию реализации, которые не требуют создания сценария атаки для каждого CVE. При проверке сбоев, исчерпания ресурсов и выхода за пределы архива следует использовать исходное регрессионное тестирование или тестовые данные, контролируемые проектом, в изолированной среде.
8.2 Установка исправлений и расследование вторжений — это разные задачи.
Проверьте существующие журналы на наличие необычных ошибок декодирования, сбоев Worker/JVM, подозрительных записей файлов, изменений данных каталога, исключений аутентификации, исходящих запросов и записей использования учетных данных. Эти признаки необходимо оценивать в контексте: сбой или OOM не являются доказательством успешной эксплуатации; отсутствие предупреждений не доказывает, что система не пострадала.
При обнаружении несанкционированных модификаций, взлома учетных данных или подтвержденных вредоносных зависимостей следует сохранить доказательства, изолировать соответствующие экземпляры, заменить затронутые учетные данные из доверенной среды и перестроить систему. Патч не будет отзывать токены, полученные злоумышленником, и не восстанавливать измененные данные.
9. Инцидент с безопасностью цепочки поставок: компрометация LiteLLM 1.107.0
**Официальная дата подтверждения: 21 октября 2026 г.**LiteLLM сообщил, что его конвейер выпуска был скомпрометирован. PyPI litellm==1.107.0 и некоторые продукты Docker/GHCR того же периода содержали вредоносный код для кражи секретов и удаленного управления, а связанные продукты были отозваны. S41
Чтобы определить влияние, вам следует проверить исторические записи об установке и дайджест образа; такие метки, как latest, main-latest и main-stable, теперь указывают на чистые изображения, что не доказывает, что продукты, извлеченные во время инцидента, были чистыми. Официальной рекомендацией на тот момент было временно закрепить 1.106.2; эта рекомендация была основана на этом инциденте, и другие объявления безопасности все еще необходимо проверять во время развертывания. S41
Для сред, в которых были установлены или запущены связанные продукты:
- Изолируйте и сохраните записи установки, изображения и журналы и проверяйте их в чистой среде.
- Не запускайте Python/pip сначала в подозрительной среде; вредоносный
.pth/sitecustomize.pyможет быть выполнен повторно после запуска. - Пересобрать хосты, венвсы/контейнеры из доверенных источников; не может просто удалить или понизить версию пакетов.
- Отзыв/замена учетных данных облака, ключей поставщика LLM, ключей LiteLLM и учетных данных базы данных на основе фактической доступности и проверка ненормального использования. S41
Это подтвержденный инцидент в цепочке поставок, и при его устранении необходимо учитывать выполнение вредоносного кода, утечку учетных данных и риски устойчивости. По состоянию на 23 октября 2026 года официальные лица все еще расследовали первоначальное вторжение.
Приложение: Цитируемые источники и ссылки
Следующая дата проверки источника — 2026-10-23, включая официальное объявление о безопасности проекта, официальный репозиторий кода и инструкции поставщика. Основной текст [Sx] соответствует этому приложению; при выполнении обновлений следует проверять, выпустил ли поставщик последующие версии.
S1 — Node.js: Уведомление о безопасности от 21 октября 2026 г.
- Цель: четыре среды выполнения High, затрагивающие филиалы, октябрьский выпуск безопасности.
- Источник: Official Security Bulletin
S2 — Node.js: Официальные инструкции по выпуску для трех линий обслуживания.
- Цель: Проверить 22.23.4, 24.22.1, 26.12.1 и фактические объединенные патчи.
- Источник: Node.js 22.23.4
- Источник: Node.js 24.22.1
- Источник: Node.js 26.12.1
S3 — Vercel: Node.js Brotli RCE рекомендации по безопасности
- Цель: условия декодирования входящего/исходящего трафика, граница покрытия WAF, статус Node 20.
- Источник: Node.js security advisory: Brotli decoder RCE
S4 — Node.js: официальный патч Brotli
- Цель: основа реализации встроенной проверки декодирования и распространения ошибок.
- Источник: Brotli Patch commit 49dff6f57a
S5 — Node.js: патч нормализации адреса TLS
- Назначение: Проверка подлинности сертификата полноразмерных номеров и нестандартных IP.
- Источник: IP normalization regression Patch
- Источник: rejects the patching of non-standard IP address
S6 — Node.js: проверочный патч DNS NUL
- Цель: Отклонение входных данных и покрытие регрессии.
- Источник: dns.resolve Input verification patch
S7 — Node.js: Уведомление о безопасности от 29 июля 2026 г.
- Цель: нехватка памяти HTTP/2, UAF и уязвимости модели разрешений.
- Источник: July 2026 Security Releases
S8 — Next.js: обновление безопасности от 14 октября 2026 г.
- Цель: унифицировать базовый план обновления и три ключевых риска.
- Источник: Next.js Security Update for Upstream Vulnerabilities
Источник: S9 — Next.js:typed arrays / use cache RCE
- Цель: GHSA-673q-mjm6-r5xr; влияет на интервал, состояние, оценку и статус обходного решения.
- Источник: Next.js Official Security Bulletin
Источник: S10 — React:React Server Components RCE
- Цель: GHSA-xqc2-xf4c-x3h3; затронутые и исправленные версии трех пакетов RSC.
- Источник: React Official Security Bulletin
Источник: S11 — Next.js:SVG Image Optimization RCE
- Назначение: CVE-2026-96889/GHSA-2464-fhr4-w9xw; glibc, четкие и оригинальные границы версий.
- Источник: SVG Image Optimization Official Security Bulletin
Источник: S12 — Next.js:Server Actions DoS
- Цель: GHSA-p3m5-59mp-jv5r; влияет на условия, версии и рейтинги.
- Источник: Server Actions DoS Official Security Bulletin
S13 — Next.js: AVIF Оптимизация изображения RCE
- Назначение: 25 августа 2026 г., GHSA-2xp9-vwfh-vxw4.
- Источник: AVIF Official Security Bulletin
Источник: S14 — Next.js:Windows RCE
- Назначение: 25 августа 2026 г., CVE-2026-75604/GHSA-p293-qw3h-jr36.
- Источник: Windows RCE Official Security Bulletin
Источник: S15 — Next.js:next/og ImageResponse RCE
- Назначение: 22 сентября 2026 г., GHSA-vcvr-r3jv-pc5j; Разница между Node и Edge.
- Источник: ImageResponse Official Security Bulletin
- Источник: September 22 release notes
Источник: S16 — Oracle: October 2026 CPU
- Цель: матрица рисков Java SE, количество исправлений и применимые условия.
- Источник: Oracle Critical Patch Update – October 2026
- Источник: Oracle Java SE CPU Version list
S17 — Oracle: CVE-2026-91403 внеполосный сигнал тревоги
- Назначение: 21 октября 2026 г., риск доверия сертификата JSSE, затронутые продукты и CVSS 3.1 9.1.
- Источник: Oracle Security Alert
S18 — Oracle: официальная версия JDK и скачать
- Цель: Отличить CPU от 20 октября и внеполосную версию от 21 октября; различать ограничения короткой версии Java 8.
- Источник: JDK release list
- Источник: Oracle Java Download page
S19 — Oracle: временный план вывода eMudhra
- Цель: Обновлено 22 октября 2026 г.; два корневых сертификата, keytool, собственное хранилище доверенных сертификатов и проверка отзыва.
- Источник: Distrusting eMudhra Intermediate Certificates in Oracle JDK
S20 — Eclipse Adoptium: запись сборки выпуска
- Цель: Temurin переупакован из-за инцидента с сертификатом; суффикс версии Oracle не может быть применен механически.
- Источник: Adoptium Release Scorecards
S21 — Apache Tomcat 9 Уведомление о безопасности
- Цель: 9-ветвевой точный затронутый интервал с исправлением 9.0.123.
- Источник: Tomcat 9 vulnerabilities
S22 — Apache Tomcat 10 Уведомление о безопасности
- Цель: точный интервал ветки 10.1 и ремонт 10.1.61; 10.0 EOL.
- Источник: Tomcat 10 vulnerabilities
S23 — Apache Tomcat 11 Уведомление о безопасности
- Цель: три пункта Important, 11.0.27, AJP, применимая область применения и дата раскрытия/выпуска.
- Источник: Tomcat 11 vulnerabilities
S24 — Apache Tomcat: фиксация патча JNDIRealm
- Цель: формальная основа для устранения пробелов в проверке сертификации.
- Источник: JNDIRealm Patch commit
Источник: S25 — Spring:GraphQL CVE-2026-59285
- Назначение: 20 августа 2026 г., Требуется, 2.0.5 OSS / 2.0.4.1 Коммерческий ремонт.
- Источник: Spring for GraphQL Unsafe Deserialization
Источник: S26 — Spring:GraphQL CVE-2026-41699
- Цель: более ранний порог исправления, просто чтобы объяснить, почему вы не можете оставаться на старом базовом уровне.
- Источник: 6 Month GraphQL Security Bulletin
Источник: S27 — Spring Security:CVE-2026-59270
- Цель: внедрить UnboundID LDAP, известный идентификатор управления и отличить OSS/коммерческую версию.
- Источник: Spring embedded LDAP Security Bulletin
Источник: S28 — Spring Security:CVE-2026-47841
- Цель: аутентификация пользователя WebAuthn, сериализация сеанса и предпосылка атаки.
- Источник: WebAuthn Security Bulletin
S29 — PSF: CVE-2026-19445 Независимые рекомендации по безопасности
- Цель: 30 сентября 2026 г., Critical, SNI Условия и временные меры, указанные в SSLContext.
- Источник: SSLContext UAF Official announcement
S30 — PSF: CVE-2026-19553 Независимые рекомендации по безопасности
- Цель: 30 сентября 2026 г., High, отсутствует имя хоста и явное устранение параметров.
- Источник: wrap_bio Official announcement of hostname verification
S31 — CPython: официальный патч Wrap_bio и бэкпорт 3.12
- Назначение: 3.10 — политика совместимости предупреждений 3.12, разница между None и пустой строкой.
- Источник: Main Patch PR #158503
- Источник: 3.12 Backfill PR #158513
- Источник: 3.15 Backfill PR #158511
S32 — PSF: CVE-2026-82049 Независимые рекомендации по безопасности
- Цель: 14 сентября 2026 г., High, комбинация ссылок, изменение метаданных и раскрытие контента.
- Источник: tarfile link bypasses the official announcement
S33 — CPython: официальный релиз безопасности в конце сентября/начале октября.
- Цель: минимальная версия исправления, метод распространения исходного кода и исключение 3.14 для проблем, связанных с tar-файлом.
- Источник: Python Cross-branch security release instructions
- Источник: Python 3.11.17
- Источник: Python 3.12.15
- Источник: Python 3.13.16
- Источник: Python 3.14.8
S34 — CPython: 3.10 последняя безопасная версия
- Цель: 3.10.22 и завершение жизненного цикла исходного кода.
- Источник: Python 3.10.22
S35 — CPython: версия для аварийного обслуживания от 21 октября 2026 г.
- Назначение: 3.13.17/3.14.9/3.15.1, встроенные обновления pip и certifi, существующие требования venv.
- Источник: Python 3.13.17
- Источник: Python 3.14.9
- Источник: Python 3.15.1
S36 — certifi: объявление о недоверии сертификату emSign
- Назначение: 2026-10-20, GHSA-6q48-6c7w-9gw2, Critical, CVE не известен.
- Источник: certifi Official Security Bulletin
S37 — PSF: влияние eMudhra / emSign на пользователей Python
- Назначение: рекомендация certifi .19, базовая версия pip/uv, команда обновления доверенной загрузки с помощью SHA-256.
- Источник: PSF Official event and upgrade instructions
Команда обновления загрузки pip, предоставленная официальными инструкциями, цитируемыми S37, выглядит следующим образом. Использовать только в средах Python, надежность которых подтверждена; если есть подозрение на отравление в Разделе 9, сначала изолируйте и перестройте в соответствии с процессом инцидента. Он исправляет хеш содержимого колеса и впоследствии обновляет другие зависимости в соответствии с процессом проекта.
python -m pip install "pip @ https://files.pythonhosted.org/packages/3f/06/3e4420302363fbb71be3c7f35ce042f54bfca330e3e66b3a2e3c4cca579f/pip-26.2.2-py3-none-any.whl#sha256=fd7f4dfa8190e014013b9f08f3e973f4e4c26ffd179a204895533a7254813a70"
S38 — Django: безопасный выпуск от 04 августа 2026 г.
- Использование: CVE-2026-15307, GeoDjango Условия эксплуатации, первоначальные исправления и изменения совместимости.
- Источник: Django 6.0.8 / 5.2.17
S39 — Django: безопасный выпуск от 6 октября 2026 г.
- Назначение: CVE-2026-87890, геометрия DoS последующее армирование с выбранной в данный момент базовой линией.
- Источник: Django 6.1.2 / 6.0.9 / 5.2.18
S40 — PSF / CPython: последнее примечание к tar_filter.
- Назначение: 2026-10-22, CVE-2026-114583 (Medium); Слияние PR не означает, что была выпущена официальная версия обслуживания.
- Источник: PSF Independent Announcement
- Источник: CPython Patch PR #160098
S41 — LiteLLM: Официальный отчет об инциденте в цепочке поставок, 21 октября
- Цель: зараженный продукт 1.107.0, исторический дайджест, реконструкция изоляции и уничтожение учетных данных.
- Источник: Contained: LiteLLM v1.107.0 Compromised
S42 — Google Brotli: официальная защищенная версия
- Цель: Независимый Brotli 1.0.10 / 1.1.1 / 1.2.1 и встроенная межъязыковая основа проверки копирования.
- Источник: Brotli releases
S43 — mise: используйте официальную документацию команды
- Цель: указать версию инструмента и семантику команд глобальной конфигурации.
- Источник: mise use
S44 — PyPA: Официальный проект pip-аудит
- Цель: Python Цель и границы возможностей аудита уязвимостей зависимостей.
- Источник: pip-audit
S45 — Python: документ фильтра извлечения tar-файла.
- Цель: стратегия данных, изменения поведения по умолчанию и ограничения, которые не могут заменить песочницу.
- Источник: tarfile extraction filters
S46 — Node.js: Промежуточный механизм отбраковки CA.
- Цель: обработка цепочки доверия, связанная с eMudhra, не эквивалентна криптографическому признанию недействительными всех корневых сертификатов.
- Источник: Node.js PR #66871
S47 — CPython: технические примечания и исправления SNI UAF.
- Назначение: эталонный жизненный цикл, особые условия сборки и возврат ветвей.
- Источник: official issue #156293
- Источник: official patch PR #158504
- Источник: 3.15 Backfill PR #158514