23 июня 2026 года Python Software Foundation опубликовала отчёт об уязвимости в API управления релизами на python.org. Её обнаружили ещё в феврале, быстро закрыли и теперь рассказали подробно.
23 февраля исследователь Splitline Ng из DEVCORE Research Team сообщил в Python Security Response Team (PSRT) о проблеме с аутентификацией. Суть была простой: API принимал запросы, где в качестве имени пользователя указывался администратор, а в качестве ключа API подставлялось любое значение. Такой запрос обрабатывался с полными правами администратора.
Что можно было сделать
С этими правами можно было менять метаданные релизов на странице python.org/downloads. А именно — URL-ы, по которым скачиваются файлы, и ссылки на материалы для проверки (Sigstore, PGP-подписи). Сами файлы релизов подменить было нельзя, только указатели на них.
Уязвимость существовала в коде с 2014 года.
Насколько это было опасно на практике
Для большинства разработчиков — почти никак. Те, кто ставит Python через пакетные менеджеры дистрибутивов или использует Docker-образы из проверенных источников, почти не зависят от прямых ссылок с python.org.
Но если скачивать исходники или бинарники напрямую и не проверять подписи — теоретически можно было подставить другой адрес. На практике этого не произошло. PSF проверила логи, резервные копии базы и все артефакты через Sigstore и PGP. Никаких изменений не нашли.
Кроме того, многие downstream-проекты и дистрибутивы автоматически проверяют подписи перед сборкой. Попытка подмены была бы заметной.
Как быстро отреагировали
Патч подготовили и выкатили меньше чем за 48 часов. Уже 24 февраля уязвимость была закрыта в продакшене. Исследователь подтвердил, что его PoC больше не работает.
Что сделали дополнительно
- ужесточили проверку URL — теперь API и база данных отвергают всё, что не начинается с https://www.python.org/;
- добавили тесты на все негативные сценарии аутентификации;
- увеличили срок хранения логов запросов к сайту с 3 до 30 дней;
- провели ручной аудит кода и проверили инструментами на базе LLM;
- заказали независимый аудит у Trail of Bits.
Это нормальная реакция для проекта такого уровня. Прозрачно, быстро и с дополнительными улучшениями.
Вывод
Это не история про взлом Python. Это история про то, как в инфраструктуре, которой пользуются миллионы, может жить старая брешь — и как её нашли, быстро закрыли и честно рассказали.
Для тех, кто работает с Python на серверах и в CI/CD, ничего принципиально не меняется. Продолжайте использовать проверенные каналы доставки, проверяйте подписи там, где возможно, и следите за официальными отчётами PSF. python.org остаётся надёжным источником.