Pip 26.1 ra mắt tính năng "thời gian chờ" phụ thuộc và hỗ trợ lockfile thử nghiệm để tăng cường bảo mật

Phần mềm20 tháng 5, 2026·4 phút đọc

Phiên bản Pip 26.1 vừa được phát hành với hai tính năng quan trọng là "thời gian chờ" cho các gói phụ thuộc và hỗ trợ tệp lockfile pylock.toml ở dạng thử nghiệm nhằm chống lại các cuộc tấn công chuỗi cung ứng. Nghiên cứu cho thấy việc thiết lập thời gian chờ 7 ngày có thể ngăn chặn phần lớn các cuộc tấn công này. Bản cập nhật cũng vá hai lỗ hổng bảo mật và ngừng hỗ trợ Python 3.9.

Pip 26.1 ra mắt tính năng "thời gian chờ" phụ thuộc và hỗ trợ lockfile thử nghiệm để tăng cường bảo mật

Pip 26.1 ra mắt tính năng "thời gian chờ" phụ thuộc và hỗ trợ lockfile thử nghiệm để tăng cường bảo mật

Pip 26.1 đã được phát hành vào tuần trước, mang đến hai tính năng mới quan trọng nhằm giải quyết các vấn đề lâu đời trong hệ sinh thái đóng gói của Python: tính năng "thời gian chờ" (dependency cooldowns) cho các gói phụ thuộc và hỗ trợ thử nghiệm cho tệp lockfile pylock.toml theo PEP 751. Ngoài ra, bản cập nhật này cũng vá hai lỗ hổng bảo mật CVE và chính thức ngừng hỗ trợ Python 3.9.

Richard Si, một thành viên đóng góp cho dự án pip, chia sẻ rằng trong bối cảnh các cuộc tấn công chuỗi cung ứng nhắm vào các dự án nguồn mở ngày càng gia tăng, các nhà phát triển cần có thêm thời gian để phát hiện và phản hồi với các sự cố bảo mật.

Cơ chế thời gian chờ (Dependency Cooldowns)

Cơ chế cooldown hoạt động theo cách khá đơn giản nhưng hiệu quả. Nếu một kẻ tấn công xâm nhập thành công vào một gói thư viện ở thượng nguồn, trong điều kiện bình thường, mọi pipeline CI và máy tính của lập trình viên chạy lệnh pip install sẽ tải ngay phiên bản độc hại đó chỉ trong vài giờ.

Tuy nhiên, với cờ --uploaded-prior-to=P7D, pip sẽ chỉ kéo về các phiên bản gói đã tồn tại trên PyPI ít nhất bảy ngày. Điều này mang lại cho cộng đồng thêm thời gian để phát hiện sự xâm nhập trước khi mã độc lây lan vào các bản build của hệ thống.

Tính năng này được phát triển dựa trên bài viết có ảnh hưởng lớn của William Woodruff mang tên "We should all be using dependency cooldowns". Woodruff đã phân tích mười cuộc tấn công chuỗi cung ứng nổi bật và đưa ra kết quả đáng chú ý: 8 trên 10 cuộc tấn công có "cửa sổ cơ hội" dưới một tuần. Việc thiết lập cooldown trong 7 ngày sẽ ngăn chặn phần lớn các cuộc tấn công này tiếp cận người dùng cuối. Nếu tăng lên 14 ngày, hầu như tất cả đều bị chặn lại.

Tuy nhiên, Si cũng chỉ ra một sự đánh đổi quan trọng: cooldown cũng sẽ làm chậm các bản vá lỗi bảo mật chính thống. Các đội ngũ sử dụng tính năng này nên kết hợp với các công cụ như Dependabot hoặc pip-audit để đảm bảo các bản vá quan trọng không bị kẹt lại sau thời gian chờ.

Hỗ trợ tệp pylock.toml thử nghiệm

Một bổ sung lớn khác trong phiên bản này là sự hỗ trợ thử nghiệm cho pylock.toml. Mặc dù PEP 751 đã chuẩn hóa định dạng tệp lockfile này một năm trước, nhưng cho đến nay, chỉ có công cụ uv có thể cài đặt từ nó. Giờ đây, cờ -r đã chấp nhận các tệp pylock.toml, nghĩa là lệnh pip install -r pylock.toml có thể hoạt động ngay lập tức.

Với sự tham gia của pip, pylock.toml có con đường thực tế để được áp dụng rộng rãi, vì pip là trình quản lý gói mặc định được cài đặt sẵn trong mọi bản cài đặt Python. Simon Willison, người tạo ra Datasette, đã thử nghiệm tính năng này ngay lập tức và chứng minh việc tạo ra một tệp pylock.toml dài 519 dòng để khóa các phụ thuộc của Datasette và LLM, sau đó cài đặt thành công từ tệp đó.

Đội ngũ pip vẫn coi tính năng hỗ trợ lockfile này ở dạng thử nghiệm và保留了 quyền sửa đổi hoặc loại bỏ nó mà không cần báo trước. Một lệnh pip sync đang được lên kế hoạch sẽ trở thành giao diện chính cho các thao tác với lockfile trong tương lai.

Cập nhật bảo mật và phản hồi của cộng đồng

Về mặt bảo mật, bản phát hành này đã vá hai lỗ hổng quan trọng. CVE-2026-3219 khắc phục lỗi mà pip nhầm lẫn các tệp lưu trữ .tar.gz thành tệp zip, cho phép kẻ tấn công che giấu mã độc. CVE-2026-6357 đóng lỗ hổng thực thi mã tùy ý được kích hoạt bởi các nhập khẩu bị hoãn lại trong quá trình tự kiểm tra của pip. Ngoài ra, thư viện urllib3 tích hợp sẵn cũng đã được cập nhật từ phiên bản 1.x lên 2.6.3, khắc phục thêm ba lỗ hổng CVE khác.

Trên Reddit, cộng đồng Python hoan nghênh việc bổ sung lockfile nhưng cũng có tranh luận về việc liệu việc triển khai của pip có còn quan trọng khi uv đang được áp dụng nhanh chóng hay không. Một số người dùng bày tỏ lo ngại về quyền kiểm soát và sở hữu doanh nghiệp đối với uv sau khi OpenAI mua lại Astral, trong khi others nhấn mạnh rằng tính phổ biến của pip là yếu tố then chốt cho các môi trường doanh nghiệp nơi việc áp dụng uv không đơn giản.

Pip 26.1 hiện đã có sẵn để tải xuống thông qua lệnh pip install --upgrade pip.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗