eMudhra и Python: что проверить в pip, Docker и CI после 5 ноября
Содержание · 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) |
|---|---|
| CPython | 3.11.18, 3.12.16, 3.13.18, 3.14.10 или 3.15.2 |
| pip | 26.2.2 |
| certifi | 2026.10.19 |
| uv | 0.13.6 (в уведомлении затронуты версии до 0.13.4) |
| Python 3.10 и старше | Исправления не получили, версия снята с поддержки |
Что проверить в проекте
- На сервере и в виртуальных окружениях выполните
python -m pip --version. Версия ниже 26.2.2 означает, что pip надо обновить в каждом окружении отдельно. - Откройте Dockerfile и lock-файлы: закреплённые версии certifi и pip могут вернуть старую копию при следующей сборке.
- Пересоберите образы без кэша слоёв, а не только перезапустите контейнеры.
- Обновите Python до исправленной версии. Если на macOS или Windows нужные ветки доступны только в виде исходников, перейдите на 3.14 или 3.15 либо возьмите сборку у дистрибьютора.
- Проверьте 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?
Эта ветка снята с поддержки и исправлений не получила. Нужен переход на поддерживаемую версию.
Читайте также
Как проверить срок регистрации домена и когда он истекает
БезопасностьКак проверить SSL-сертификат сайта: срок, цепочка, имена
ПоддержкаПисьма с сайта попадают в спам: что проверить по шагам
БезопасностьSSH сообщает о смене ключа сервера: что проверить до входа
ПоддержкаКупили VPS: что проверить до запуска сайта
БезопасностьКак проверить версию PHP и закрыта ли PHP2Shell: php -v, журнал пакетов, службы