23 июня 2026 года Python Security Response Team рассказала об исправленном обходе аутентификации в API управления релизами на python.org. Ошибка позволяла менять метаданные загрузок, включая ссылки на файлы и материалы для проверки. Это проблема инфраструктуры сайта, а не уязвимость установленного интерпретатора Python.
Под угрозой были ссылки, а не замена файла на месте
В уязвимом API запрос с именем администратора и произвольным API-ключом получал административные права. С ними можно было изменить адреса, которые посетителю предлагались на странице загрузок. При этом сама ошибка не давала возможности перезаписать уже размещённый файл релиза.
Различие важное, но не делает ситуацию безобидной. Пользователь доверяет ссылке на официальном сайте. Если она ведёт на чужой файл, проверка только внешнего вида страницы не спасает. И материалы для проверки тоже нельзя считать независимыми, если их адреса пришли из того же изменённого набора метаданных.
Проблему закрыли в феврале, отчёт вышел после аудита
Исследователь Splitline Ng из DEVCORE сообщил о проблеме 23 февраля. Исправление развернули 24 февраля, менее чем через 48 часов после первоначального сообщения. Исследователь подтвердил, что демонстрация обхода больше не работает. Июньская публикация относится к разбору уже исправленной ошибки.
По данным PSRT, уязвимый код существовал с 2014 года. Команда проверила доступные логи, резервные копии базы и подписи артефактов. Следов эксплуатации не обнаружили, а проверка подписей не показала подмены файлов. Но авторы прямо оговорили, что эти данные не дают абсолютной уверенности за весь многолетний срок существования ошибки.
После исправления добавили несколько уровней защиты
Команда разделила гостевой режим и аутентификацию по ключу, добавила отрицательные тесты и ограничила допустимые адреса файлов префиксом https://www.python.org/. Срок хранения логов увеличили с трёх до 30 дней. Дополнительный аудит выполнила Trail of Bits.
Мне здесь важна не одна исправленная условная проверка, а сочетание мер. Даже при следующей ошибке авторизации ограничение адресов может помешать отправить человека на произвольный домен. А отрицательные тесты должны проверять не только правильный вход, но и все варианты, которым нужно отказать.
Что это меняет при установке Python
Обновление установленного Python само по себе не является исправлением этой ошибки: патч относился к сайту. Для скачиваемых артефактов остаются важны официальный канал и предусмотренная проектом проверка подписи. В отчёте отдельно отмечено, что для Python 3.14 и новее PGP-материалы уже не предоставляются, поэтому там использовали Sigstore.
У пакетов дистрибутива и готовых образов есть собственная цепочка поставки. Их нельзя автоматически объявлять ни затронутыми, ни полностью защищёнными только по способу установки. Нужно понимать источник конкретной сборки и её механизм проверки. HTTPS также решает другую задачу: о сертификатах и продлении есть отдельная заметка, но доверенный сертификат сайта не заменяет проверку самого файла.
Из отчёта следует спокойный практический вывод: ошибка исправлена, обнаруженных следов подмены нет, а способы проверки артефактов нужно сохранять в рабочем процессе. Это не повод объявлять Python взломанным или срочно переустанавливать все системы без признаков компрометации.