- O PyPI agora bloqueia o upload de novos arquivos para lançamentos publicados há mais de 14 dias, para evitar que lançamentos existentes e estáveis sejam contaminados mesmo que tokens ou fluxos de distribuição sejam comprometidos
- Até agora, não foram confirmados casos reais de abuso, mas não havia barreira técnica para impedir o ataque além do fato de que os invasores aparentemente não sabiam dessa possibilidade
- Uma análise dos 15.000 principais pacotes mostrou que apenas 56 projetos adicionaram wheels
cp314para Python 3.14 depois de 14 dias do lançamento - Projetos que adicionavam suporte a novas versões do Python em lançamentos existentes agora terão de publicar a próxima versão, e o PyCon US 2026 Packaging Summit também considerou essa abordagem aceitável
- Como ainda não há uma API para definir ou verificar o estado aberto/fechado de um lançamento, não se deve depender desse comportamento; no futuro, a API Upload 2.0 e os Staged Previews da PEP 694 devem estabelecer a semântica relacionada
Por que fechar lançamentos antigos
- A mudança no PyPI bloqueia o caminho para enviar novos arquivos a lançamentos antigos e estáveis
- Evita uma situação em que, mesmo se o token de publicação ou o workflow de um projeto for comprometido, apenas parte de um lançamento existente seja substituída por arquivos maliciosos
- Impede um estado ambíguo em que arquivos comprometidos e não comprometidos se misturam dentro de um lançamento, além de reduzir o trabalho de limpeza dos administradores do PyPI
- A discussão começou em janeiro de 2024 durante o trabalho na PEP 740 Digital Attestations e foi retomada em março de 2026
- O gatilho foi o comprometimento da cadeia de suprimentos do LiteLLM e da Telnyx, causado por uma referência mutável usada no Trivy GitHub Action pelos dois projetos
- A discussão inicial foi interrompida porque alguns projetos adicionavam arquivos de suporte a novas versões do Python em lançamentos já publicados
- Para entender o impacto da mudança, o banco de dados do PyPI foi analisado para identificar projetos que adicionaram arquivos a lançamentos antigos, segmentados pelo número de dias decorridos
- Uma verificação separada dos wheels
cp314dos 15.000 principais pacotes mostrou que 56 projetos publicaram wheels compatíveis com Python 3.14 após 14 dias
Decisão de aplicação e APIs futuras
- No PyCon US 2026 Packaging Summit, formou-se um consenso aproximado de que é aceitável exigir que projetos subam para a próxima versão ao oferecer suporte a uma nova versão do Python
- Com base nos dados da análise e nesse consenso, o patch do Warehouse avançou e foi mesclado em 8 de julho de 2026
- A restrição atual ainda não deve ser considerada uma interface estável
- A definição de “lançamento que não aceita mais novos arquivos” ainda não foi finalizada, e não há API para verificar esse estado
- Depois que a PEP 694 padronizar a API Upload 2.0 e os Staged Previews, deve ser estabelecida a semântica para tratar lançamentos como
openouclosed
1 comentários
Comentários no Lobste.rs