Услугата Python Package Index (PyPI) вече отхвърля качването на нови файлове към версии, по-стари от 14 дни. Целта е да се предотврати възможността атакуващи да компрометират отдавна стабилни версии, в случай че проектните токени за публикуване или работните процеси за пускане на версии бъдат компрометирани.
„Тази промяна ще защити потребителите на Python и ще намали количеството работа по „чистене“, свързана с компрометиране на проекти за администраторите на PyPI. Това ограничение също така означава, че компрометирането на даден проект не поставя версиите в неопределено и объркващо състояние на едновременно „компрометирани“ и „некомпрометирани“, при което само подмножество от файлове би могло да бъде заразено със зловреден код“, обясни Сет Ларсън, разработчик по сигурността във фондацията Python Software Foundation.
PyPI не е дефинирал семантика за версии, които спират да приемат нови файлове, и не предоставя API за определяне на статуса на дадена версия, така че потребителите не трябва да разчитат на нито едно от двете. Проектът планира да ги дефинира след стандартизирането на Upload 2.0 API и Staged Previews съгласно PEP 694, който предлага разширяем API за качване на файлове в индекс на пакети на Python.
Предложението възникна по време на дискусиите около PEP 740 (Digital Attestations) през януари 2024 г. и беше възобновено след компрометирането на пакетите LiteLLM и Telnyx през март 2026 г. поради променлива референция при използването на Trivy GitHub Action в тези проекти.
Първоначално промяната беше отложена, тъй като някои проекти качваха нови файлове към по-стари версии, за да добавят поддръжка за по-нови версии на Python. От PyPI анализираха тази практика и установиха, че тя е рядкост. В рамките на първите 15 000 пакета само 56 са качили съвместим с Python 3.14 wheel файл повече от 14 дни след първоначалното публикуване на версията, което показва, че ограничението ще засегне малко проекти.
Инженерът по безопасност и сигурност в PyPI Майк Фидлър предложи промяната, която получи подкрепа по време на дискусиите на Packaging Summit през 2026 г. Участниците постигнаха приблизителен консенсус, че проектите трябва да публикуват нова версия на пакета, когато добавят поддръжка за по-нови версии на Python, вместо да обновяват съществуваща версия. По-късно Ларсън внедри промяната, а корекцията за сигурност беше слята на 8 юли 2026 г.