Path traversal tuyệt đối trong Python Packaging Authority pip có thể đặt tệp ngoài thư mục dự kiến

Lưu ý: Dữ liệu này chỉ có tính chất tham khảo, phục vụ nghiên cứu an ninh mạng.CyStack khuyến nghị người dùng không sử dụng các thông tin này nhằm các mục đích bất hợp pháp

Lỗ hổng CVE-2026-13346 là gì?

Lỗ hổng CVE-2026-13346 là lỗ hổng Absolute Path Traversal ảnh hưởng tới pip (phiên bản bị ảnh hưởng: < 26.2). Lỗ hổng này được xếp hạng ở mức Trung bình, với điểm CVSS 5.6. Các nguồn hiện có chưa ghi nhận lỗ hổng này bị khai thác.

Giới thiệu chung

Dữ liệu gốc

pip xử lý không đúng các package URL được mã hóa hai lần từ các index, cho phép cài đặt tệp vào các vị trí tùy ý trên đĩa ngay cả khi đang cài đặt wheel. Lỗ hổng này yêu cầu việc tải xuống hoặc cài đặt một package từ package index độc hại phải thành công; chỉ riêng package độc hại không thể khai thác lỗ hổng này. Lưu ý rằng lỗ hổng này chỉ ảnh hưởng đáng kể đến người dùng chạy pip download với tùy chọn --only-binary, vì việc cài đặt source distribution từ một index không tin cậy vốn đã là thao tác không an toàn và thực thi mã trong thời gian cài đặt.

Sản phẩm và phạm vi ảnh hưởng

  • Python Packaging Authority pip: bản ghi CNA xác định các phiên bản có trạng thái affected từ 0 và nhỏ hơn 26.2 theo version type python.
  • Advisory liên quan trên GitHub biểu diễn cùng ranh giới là < 26.2.0 và nêu 26.2.0 là phiên bản đã được vá.
  • Trạng thái mặc định của CNA là unaffected ngoài phạm vi được liệt kê. Không nên suy diễn rằng mọi nhánh phát hành song song hoặc mọi phiên bản về sau đều đã được xác minh chỉ từ bản ghi này.

Chi tiết kỹ thuật

Lỗi nằm trong cách pip xử lý tên tệp lấy từ URL package do index cung cấp. Link.__init__ đã giải mã phần đường dẫn phần trăm vào self._path, nhưng Link.filename tiếp tục giải mã basename lần thứ hai. Vì vậy, dấu phân cách được mã hóa kép như %252F lần đầu trở thành %2F, rồi lần thứ hai trở thành /, khiến một thành phần đơn như a%2Fb.whl bị biến thành a/b.whl. Bản sửa loại bỏ lần giải mã thứ hai và bổ sung cơ chế join_within_directory để việc nối đường dẫn tải xuống coi tên này là một thành phần duy nhất. Dữ liệu do kẻ tấn công kiểm soát là package URL từ index; điều kiện khai thác là người dùng hoặc quy trình tự động phải tải xuống hoặc cài đặt package từ một index độc hại. Hành vi chính xác trên từng hệ điều hành, các vị trí cụ thể có thể bị ghi và phạm vi của mọi code path tải xuống chưa được nguồn công khai xác định.

Khả năng khai thác

Lỗi có thể bị tiếp cận qua nội dung package index trên mạng, nhưng không thể bị khai thác chỉ bằng một package độc hại nếu package đó không được tải xuống hoặc cài đặt từ một index độc hại. Khai thác cần người dùng hoặc quy trình tự động thực hiện thao tác tải xuống hoặc cài đặt, và mô tả của nhà cung cấp cho biết ảnh hưởng đáng kể nhất nằm ở workflow dùng pip download với tùy chọn --only-binary. Các metadata chấm điểm được cung cấp không hoàn toàn thống nhất về một số điều kiện khai thác, nhưng đều xác nhận cần có tương tác của người dùng hoặc quy trình tải/cài đặt thành công. Bản ghi được cung cấp đánh dấu public_exploit là false và known_exploited là null, nên không có exploit công khai nào được ghi nhận trong dữ liệu này và tình trạng khai thác thực tế vẫn chưa được xác lập.

Tác động kỹ thuật

Lỗi cho phép tên tệp từ package URL thoát khỏi giả định rằng nó chỉ là một thành phần đường dẫn, từ đó có thể dẫn đến việc ghi tệp ngoài thư mục tải xuống dự kiến. Tác động trực tiếp là mất tính toàn vẹn của các tệp mà tiến trình pip có quyền ghi; mức độ ảnh hưởng phụ thuộc vào quyền của tiến trình và cấu trúc môi trường chạy. Một hệ thống build hoặc CI tự động tin cậy package index bên ngoài có thể bị thay đổi nội dung workspace hoặc các tệp khác trong phạm vi quyền đó, nhưng đây là hệ quả có thể xảy ra chứ không phải một sự cố được xác nhận. Bản ghi không thiết lập việc đọc dữ liệu trái phép, mất sẵn dụng, leo thang đặc quyền hoặc ảnh hưởng lan sang hệ thống khác.

Tác động đến tổ chức

  • Một lần khai thác thành công có thể làm thay đổi tính toàn vẹn của hệ thống bằng cách đặt tệp vào các vị trí tùy ý mà tiến trình pip có quyền ghi.
  • Rủi ro thực tế phụ thuộc vào quyền của tài khoản chạy pip và các file hoặc thư mục mà tài khoản đó có thể sửa đổi; build host và CI runner có thể đáng chú ý nếu chúng tự động tải package từ index không tin cậy.
  • Bản ghi không mô tả một vụ xâm nhập, nạn nhân hoặc chiến dịch cụ thể, nên không thể kết luận đã có dữ liệu nào bị thay đổi trong môi trường thực tế.
  • Ảnh hưởng được cung cấp tập trung vào tính toàn vẹn. Không có hậu quả cụ thể về tính bí mật hoặc tính sẵn dụng được xác lập trong bản ghi.

Cách khắc phục

  1. Nâng cấp pip lên phiên bản đã được nêu là đã vá: 26.2.0. Xác minh lại phiên bản thực tế trên từng máy, image và môi trường CI thay vì chỉ cập nhật lockfile hoặc manifest.
  2. Trong khi chưa thể nâng cấp, ngừng các workflow tải xuống hoặc cài đặt package từ package index không tin cậy. Biện pháp này giảm điều kiện kích hoạt nhưng không thay thế cho việc cập nhật.
  3. Ưu tiên rà soát và sửa trước các pipeline dùng pip download cùng --only-binary, vì đây là trường hợp được nhà cung cấp xác định có ảnh hưởng vật chất đáng kể.
  4. Sau khi cập nhật, kiểm tra các image, virtual environment và công cụ được đóng gói sẵn để bảo đảm chúng không còn mang bản pip trong phạm vi bị ảnh hưởng. Không mở rộng kết luận về phiên bản đã sửa sang các nhánh khác nếu chưa có bằng chứng riêng cho các nhánh đó.

Cách phát hiện

  • Kiểm kê mọi máy trạm, build host và CI runner có cài pip, sau đó đối chiếu phiên bản thực tế với phạm vi bị ảnh hưởng trong bản ghi.
  • Xác định các workflow sử dụng pip download, đặc biệt những workflow có --only-binary, và ghi nhận các package index mà chúng có thể truy cập.
  • Kiểm tra cấu hình index, proxy và mirror để phát hiện việc tải package từ nguồn không được tổ chức tin cậy hoặc không được phê duyệt.
  • Nếu nghi ngờ đã thực hiện thao tác bị ảnh hưởng, rà soát thay đổi trên hệ thống tệp trong và sau thời điểm tải xuống, tập trung vào các vị trí nằm ngoài thư mục đích dự kiến nhưng có thể ghi được bởi tiến trình pip.
  • Không có IOC hoặc mẫu log cụ thể nào được nguồn cung cấp. Việc không thấy telemetry phù hợp không chứng minh hệ thống an toàn.
Nguồn (21)
Tìm hiểu thêm

Kiểm tra chuyên sâu cùng giải pháp quản lý rủi ro Web toàn diện

Giải pháp CyStack VulnScan liên tục phát hiện tài sản, xác minh lỗ hổng và giúp đội ngũ bảo mật ưu tiên khắc phục cho toàn bộ doanh nghiệp.