Перейти к содержимому
Все статьи
КомментарииХостинг и серверы

eMudhra и Python: что проверить в pip, Docker и CI после 5 ноября

·9 ноября 2026 г.· 4 мин чтения
Сколько будет стоить ваш проект?Рассчитать стоимость
Содержание · 5
  1. Что произошло, коротко
  2. Минимальные версии, на которые стоит ориентироваться
  3. Что проверить в проекте
  4. Почему это важно сайту, даже если вы не пишете на Python
  5. Вопросы и ответы
Иллюстрация к статье «eMudhra и Python: что проверить в pip, Docker и CI после 5 ноября»

5 ноября Фонд Python (PSF) опубликовал разбор того, как экосистема закрывала компрометацию промежуточных сертификатов eMudhra. Ключевой вывод для владельца проекта: обновить certifi мало, потому что у pip есть собственный набор сертификатов, а старые Docker-образы и закэшированные слои CI продолжают доверять тому, чему уже не надо. Мы советуем проверить три места: версию pip, образы сборки и lock-файлы.

Что произошло, коротко

Об инциденте сообщили 20 октября 2026 года. Certifi убрал корневой сертификат «emSign Root TLS CA - G3», чтобы отозвать доверие к затронутым промежуточным. Затронуты были certifi, Python, pip, uv, sigstore, virtualenv, conda, pixi, manylinux и gh-action-pypi-publish. По данным PSF, исправления в разных компонентах закрыли за два дня. Для Python дополнительно ввели запрет в модуле ssl как последнюю линию защиты (CVE-2026-115557). Первое сообщение о браузерах и удостоверяющих центрах мы разбирали в статье eMudhra: браузеры заблокировали восемь центров.

Минимальные версии, на которые стоит ориентироваться

Точные номера PSF в своём посте не приводит. Их собрал сторонний сайт pydevtools, поэтому сверьтесь с официальными объявлениями перед обновлением.

КомпонентИсправленная версия или новее (по pydevtools)
CPython3.11.18, 3.12.16, 3.13.18, 3.14.10 или 3.15.2
pip26.2.2
certifi2026.10.19
uv0.13.6 (в уведомлении затронуты версии до 0.13.4)
Python 3.10 и старшеИсправления не получили, версия снята с поддержки

Что проверить в проекте

  1. На сервере и в виртуальных окружениях выполните python -m pip --version. Версия ниже 26.2.2 означает, что pip надо обновить в каждом окружении отдельно.
  2. Откройте Dockerfile и lock-файлы: закреплённые версии certifi и pip могут вернуть старую копию при следующей сборке.
  3. Пересоберите образы без кэша слоёв, а не только перезапустите контейнеры.
  4. Обновите Python до исправленной версии. Если на macOS или Windows нужные ветки доступны только в виде исходников, перейдите на 3.14 или 3.15 либо возьмите сборку у дистрибьютора.
  5. Проверьте CI: в публикации пакетов и инструментах вроде sigstore и conda тоже есть свой набор сертификатов.

Почему это важно сайту, даже если вы не пишете на Python

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

Вопросы и ответы

Достаточно ли обновить certifi?

Нет. У pip есть собственный встроенный набор сертификатов, поэтому его надо обновлять отдельно в каждом окружении. То же верно для uv, у которого свой набор по умолчанию.

Какие версии pip и certifi безопасны?

По данным pydevtools, pip 26.2.2 и certifi 2026.10.19 или новее. Сверьте номера с официальными объявлениями Python.

Нужно ли пересобирать Docker-образы?

Да, и желательно без кэша слоёв. Иначе в образе останутся старые копии pip и certifi.

Что с Python 3.10?

Эта ветка снята с поддержки и исправлений не получила. Нужен переход на поддерживаемую версию.

Нужна помощь с проектом?

Обсудим задачу и предложим решение — от сайта до SaaS и защиты.

Связаться