PyPI vừa bổ sung tab Bảo mật (Security) trên trang chi tiết của mỗi package, chính thức hoạt động từ ngày 6/11/2026. Tab mới cho thấy từng file trong một bản phát hành có được xác thực nguồn gốc bằng attestation hay không, và cảnh báo khi nguồn gốc của file thay đổi bất thường — để bạn phát hiện package đáng ngờ trước khi chạy pip install.

Đây là bước tiếp theo sau chính sách khóa upload muộn hồi tháng 7/2026: thay vì tin mù, bạn có công cụ tự kiểm tra package.

Tab Bảo mật cho bạn thấy những gì

PyPI tính trạng thái provenance (nguồn gốc) của mỗi bản phát hành theo từng file có attestation hay không:

  • Full Provenance — 100% file có attestation: PyPI Publish (file do Trusted Publisher đăng tải) hoặc SLSA Build Provenance (gắn file với commit nguồn, nền tảng build và hướng dẫn build).
  • No Provenance — không file nào có attestation, thường gặp ở bản cũ hoặc dự án chưa cấu hình Trusted Publishing. Đây không phải kết luận package độc hại, chỉ là nguồn gốc file chưa xác thực được bằng mật mã.

Bốn cảnh báo provenance cần chú ý

Cảnh báo xuất hiện khi metadata nguồn gốc bất thường so với lịch sử dự án, ví dụ tài khoản hoặc pipeline phát hành bị chiếm. Cái nào cũng đáng kiểm tra trước khi cài:

  • Incomplete Provenance — chỉ một phần file có attestation, ví dụ wheel qua Trusted Publishing nhưng source tarball upload bằng API token.
  • Inconsistent Provenance — các file trong cùng một bản phát hành đến từ hệ thống build hoặc repo khác nhau.
  • Change of Provenance — file đến từ repo hoặc workflow khác bản trước; thường do đổi tên tổ chức, nhưng cũng có thể là pipeline bị chiếm.
  • Loss of Provenance — dự án từng phát hành có attestation, rồi đột ngột quay lại upload không attestation. Nếu maintainer không giải thích, hãy coi bản đó là đáng ngờ.

Trang package cũng được thiết kế lại

Cảnh báo provenance hiển thị ngay đầu trang, cùng hàng với các banner yanked, archived và pre-release; banner quarantine (cách ly) được ưu tiên cao nhất. Trạng thái provenance cũng xuất hiện ở sidebar, bấm vào sẽ dẫn thẳng sang tab Bảo mật.

Tab Release Files thêm tìm kiếm, lọc và cột provenance từng file, cùng icon cam đánh dấu file nộp muộn (upload hơn 14 ngày sau thời điểm phát hành). Dấu này chỉ xuất hiện với bản trước tháng 7/2026, vì từ đó PyPI đã từ chối mọi upload muộn.

Điều này có ý nghĩa gì với bạn

Trước khi pip install một package lạ, hãy mở trang PyPI của nó và liếc qua tab Security. Thấy cảnh báo Change of Provenance hay Loss of Provenance mà release notes không giải thích, hãy dừng lại và đối chiếu với repo chính thức trước khi cài.

Bài viết liên quan

Câu hỏi thường gặp

Attestation là gì?

Attestation là bản ghi xác minh bằng mật mã về nguồn gốc file: ai đăng, build từ commit nào, trên nền tảng nào. PyPI dùng attestation từ năm 2024.

“No provenance” có nghĩa là package độc hại không?

Không. Nó chỉ có nghĩa nguồn gốc file không xác thực được bằng mật mã. Nhiều package nhỏ chưa cấu hình Trusted Publishing nên vẫn ở trạng thái này — hãy xem thêm lịch sử maintainer và nhịp release để đánh giá.

Làm sao để package của mình đạt Full Provenance?

Dùng Trusted Publishing với một publisher có tạo attestation (ví dụ GitHub Actions), đảm bảo mọi file — cả wheel lẫn source tarball — đều đi qua pipeline đó.

💬 Tin này ảnh hưởng tới dự án của bạn thế nào? Chia sẻ góc nhìn của bạn trong phần bình luận — mình đọc hết và sẽ tổng hợp những ý hay nhất.

Nguồn tham khảo