Notizia
PyPI blocca upload su release più vecchie di 14 giorni
Seth Larson sul blog di PyPI annuncia la regola il 23 luglio 2026: stop ai nuovi file su release oltre 14 giorni per ridurre il rischio di avvelenamento.
PyPI blocca upload su release più vecchie di 14 giorni
PyPI rifiuta nuovi file su release pubblicate da oltre 14 giorni, per limitare avvelenamenti in caso di credenziali o workflow compromessi. L’annuncio porta la firma di Seth Larson e data 23 luglio 2026 [S1].
Il provvedimento colpisce un vettore preciso: aggiunte tardive a versioni già diffuse e considerate affidabili. Se un “publishing token” o un “workflow” del progetto finisce nelle mani sbagliate, un aggressore può tentare di caricare file aggiuntivi su una release esistente. Il blocco dopo due settimane chiude questo canale su ciò che l’annuncio definisce “old and long-stable releases” [S1].
Larson chiarisce il contesto con due frasi nette: “per quanto ne siamo a conoscenza, questo non è ancora stato abusato” e “non c’è alcuna ragione tecnica, oltre al fatto che gli attaccanti non erano consapevoli fosse possibile”. Il rischio, quindi, non deriva da incidenti noti. Nasce da una possibilità offerta dal sistema, che l’intervento ora rimuove per le release datate [S1].
La regola è semplice. PyPI “ora rifiuta” l’upload di nuovi file su release “più vecchie di 14 giorni”. Nessuna eccezione elencata, nessun dettaglio aggiuntivo sull’operatività. Una soglia temporale chiara, agganciata a un obiettivo di sicurezza puntuale: prevenire modifiche silenziose a versioni percepite come stabili, quando credenziali o automazioni di pubblicazione risultano esposte [S1].
Il riferimento esplicito a “publishing tokens” e “workflow” indica dove si concentra la difesa. Questi meccanismi aprono la porta all’automazione delle release. In caso di compromissione, possono dare all’attaccante lo stesso permesso di pubblicazione del maintainer. Bloccare i caricamenti tardivi su versioni stabili riduce la superficie di attacco, in particolare dove un file aggiunto potrebbe passare inosservato agli utenti che si fidano di una release non più recente [S1].
Nell’annuncio non compaiono casi documentati né indagini su abusi. La scelta resta preventiva e circoscritta. Si elimina una possibilità poco conosciuta ma potenzialmente grave: l’alterazione differita di pacchetti che l’ecosistema considera consolidati. L’indicazione temporale — 14 giorni — funge da cerniera tra la finestra fisiologica di pubblicazione e un periodo che PyPI associa a stabilità di fatto [S1].
Con questa modifica, il comportamento atteso cambia in modo misurabile: i maintainer possono ancora caricare file su una release appena pubblicata, entro la finestra di due settimane; oltre quella soglia, l’operazione viene respinta. Un limite semplice, pensato per ridurre l’impatto di credenziali o pipeline compromesse senza alterare il flusso ordinario delle pubblicazioni recenti [S1].