- PyPI chặn việc tải lên tệp mới đối với các bản phát hành đã quá 14 ngày kể từ khi được công bố, ताकि các bản phát hành hiện có đã ổn định không bị nhiễm bẩn ngay cả khi token hoặc quy trình triển khai bị chiếm đoạt
- Chưa ghi nhận trường hợp bị khai thác thực tế nào cho đến nay, nhưng ngoài việc kẻ tấn công chưa biết đến khả năng này thì không hề có rào cản kỹ thuật nào ngăn chặn cuộc tấn công
- Khảo sát 15.000 gói hàng đầu cho thấy chỉ có 56 dự án bổ sung wheel
cp314cho Python 3.14 sau 14 ngày kể từ khi phát hành - Các dự án từng bổ sung hỗ trợ phiên bản Python mới vào bản phát hành hiện có giờ đây sẽ phải phát hành phiên bản kế tiếp, và tại PyCon US 2026 Packaging Summit, đây cũng được xem là phương án có thể chấp nhận được
- Hiện vẫn chưa có API để định nghĩa hoặc kiểm tra trạng thái mở/đóng của bản phát hành, vì vậy không nên phụ thuộc vào hành vi này; trong tương lai, PEP 694 cùng Upload 2.0 API và Staged Previews sẽ thiết lập ngữ nghĩa liên quan
Vì sao đóng các bản phát hành cũ
- Thay đổi của PyPI chặn con đường tải tệp mới lên các bản phát hành cũ và đã ổn định
- Điều này ngăn tình huống chỉ một phần của bản phát hành hiện có bị thay bằng tệp độc hại ngay cả khi token phát hành hoặc workflow của dự án bị xâm phạm
- Nó cũng ngăn trạng thái mơ hồ khi trong cùng một bản phát hành lẫn lộn giữa tệp đã bị xâm phạm và tệp chưa bị xâm phạm, đồng thời giảm công việc dọn dẹp cho quản trị viên PyPI
- Cuộc thảo luận bắt đầu vào tháng 1 năm 2024 trong quá trình làm việc về PEP 740 Digital Attestations, rồi được nối lại vào tháng 3 năm 2026
- Tác nhân khởi phát là sự cố xâm phạm chuỗi cung ứng LiteLLM và Telnyx, với nguyên nhân là mutable reference trong GitHub Action Trivy mà hai dự án này sử dụng
- Thảo luận ban đầu từng bị dừng lại vì một số dự án vẫn thêm tệp hỗ trợ phiên bản Python mới vào các bản phát hành đã công bố
- Để nắm tác động của thay đổi, dữ liệu từ cơ sở dữ liệu PyPI đã được dùng để khảo sát các dự án thêm tệp vào bản phát hành cũ theo số ngày đã trôi qua
- Khi kiểm tra riêng các wheel
cp314trong 15.000 gói hàng đầu, kết quả là chỉ có 56 dự án công bố wheel tương thích Python 3.14 sau 14 ngày
Quyết định áp dụng và API trong tương lai
- Tại PyCon US 2026 Packaging Summit, đã hình thành đồng thuận sơ bộ rằng việc yêu cầu tăng lên phiên bản kế tiếp khi hỗ trợ phiên bản Python mới là chấp nhận được
- Dựa trên dữ liệu khảo sát và đồng thuận đó, bản vá Warehouse đã được thúc đẩy và được hợp nhất vào ngày 8 tháng 7 năm 2026
- Giới hạn hiện tại vẫn chưa thể được xem là một giao diện ổn định
- Định nghĩa về “bản phát hành không còn nhận tệp mới” vẫn chưa được chốt, và cũng chưa có API để kiểm tra trạng thái này
- Sau khi PEP 694 chuẩn hóa Upload 2.0 API và Staged Previews, dự kiến sẽ có ngữ nghĩa để xử lý bản phát hành dưới dạng
openhoặcclosed
1 bình luận
Các ý kiến trên Lobste.rs