Bảo mật & quyền riêng tư

LiteLLM 1.107.0 bị xâm nhập: Chèn mã đánh cắp thông tin đăng nhập qua quy trình build

Một phiên bản LiteLLM độc hại trên PyPI đã cài đặt công cụ đánh cắp thông tin đăng nhập và cửa hậu (backdoor) bằng cách sửa đổi cấu hình build, ảnh hưởng đến tất cả các hệ điều hành chính.

Một khối thủy tinh với các mạch điện màu đỏ tượng trưng cho một gói phần mềm bị xâm nhập trên bàn làm việc.
Minh họa được tạo riêng cho bài viết này

Được dịch tự động từ bản gốc tiếng Anh.

Vào ngày 21 tháng 10 năm 2026, các nhà nghiên cứu bảo mật phát hiện rằng LiteLLM phiên bản 1.107.0, được xuất bản trên Python Package Index (PyPI), chứa một công cụ đánh cắp thông tin đăng nhập và cửa hậu thực thi mã từ xa. Gói phần mềm bị xâm nhập này ảnh hưởng đến môi trường Linux, macOS và Windows bằng cách chèn trực tiếp các tệp độc hại vào thư mục site-packages của Python trong quá trình cài đặt. PyPI sau đó đã gỡ bỏ phiên bản này, nhưng sự cố làm nổi bật những rủi ro đáng kể đối với tính toàn vẹn của chuỗi cung ứng phần mềm.

Chuyện gì đã xảy ra

Cuộc tấn công nhắm vào quy trình build của LiteLLM, một thư viện phổ biến để tích hợp các mô hình ngôn ngữ lớn. Khi các nhà phát triển cài đặt phiên bản 1.107.0 bằng pip, ba tệp cụ thể đã được đặt vào thư mục site-packages của họ: cook.pth, cook.py và sitecustomize.py. Khác với các loại malware thông thường yêu cầu câu lệnh import tường minh để chạy, các tệp này tự động thực thi mỗi khi bất kỳ tiến trình Python nào khởi động trên máy chủ. Điều này có nghĩa là ngay cả các ứng dụng không trực tiếp sử dụng LiteLLM cũng có thể kích hoạt mã độc nếu chúng chia sẻ cùng một môi trường Python.

Kho lưu trữ mã nguồn gốc trên GitHub không chứa các tệp độc hại này. Phân tích pháp y cho thấy phân phối nguồn (sdist) của phiên bản 1.107.0 bao gồm một tệp pyproject.toml đã bị sửa đổi với dòng chèn thêm: data = "cook". Chỉ thị này hướng dẫn công cụ build maturin sao chép một thư mục ẩn cook/ vào gói wheel cuối cùng. Bản thân sdist lại bỏ qua thư mục cook/, khiến việc chèn mã độc chỉ hiển thị trong các binary wheel đã biên dịch được phân phối qua PyPI. Các phiên bản 1.106.2, 1.107.0rc1 và 1.107.0rc2 được xác nhận là sạch, cũng như các gói đi kèm litellm-proxy-extras và litellm-enterprise.

Cách thức hoạt động

Payload độc hại hoạt động thông qua hai cơ chế chính được kích hoạt bởi hành vi khởi động của Python. Thứ nhất, tệp cook.pth chứa lệnh import cook. Python tự động thực thi các câu lệnh import được tìm thấy trong các tệp .pth nằm trong site-packages khi khởi động. Điều này khiến cook.py chạy trong mọi tiến trình Python, bao gồm IDE, pipeline CI và các dịch vụ nền. Script này thu thập dữ liệu nhạy cảm như khóa SSH, thông tin đăng nhập đám mây, bí mật CI/CD, mật khẩu trình duyệt và token nhà cung cấp LLM. Sau đó, nó mã hóa dữ liệu này và truyền ra ngoài tới một tên miền do kẻ tấn công kiểm soát, www.litellm[.]dev.

Thứ hai, tệp sitecustomize.py thiết lập một cửa hậu (backdoor) bền vững. Script này khởi động một daemon nền kiểm tra một tệp GitHub từ xa mỗi giờ để lấy địa chỉ máy chủ. Khi nhận được chỉ thị, daemon sẽ tải xuống và thực thi thêm mã từ máy chủ đó. Kẻ tấn công đã che giấu mã trong cook.py bằng cách sử dụng mã hóa base64 và nén zlib, bọc khoảng 61 KB mã Python trong một dòng thực thi duy nhất để tránh các phân tích tĩnh đơn giản.

Bằng chứng pháp y cho thấy sự xâm nhập xảy ra trong pipeline phát hành riêng tư của người bảo trì chứ không phải thông qua một lần chạy GitHub Actions công khai. Timestamp trên các wheel đã biên dịch chỉ ra các bản build native riêng biệt cho macOS, Linux và Windows, phù hợp với môi trường CI cục bộ hoặc riêng tư. Việc thiếu các chứng nhận nguồn gốc (provenance attestations) trên PyPI và sự không khớp giữa tag git và phân phối nguồn càng củng cố giả thuyết rằng kẻ tấn công đã sửa đổi mã nguồn trước khi nó đi vào hệ thống build, có thể sử dụng thông tin đăng nhập bị đánh cắp hoặc một nhánh riêng tư.

Chi tiết quan trọng

  • Phiên bản bị ảnh hưởng: Chỉ LiteLLM 1.107.0 trên PyPI bị xâm nhập; các phiên bản trước đó và phiên bản ứng viên (release candidate) đều an toàn.
  • Phương pháp chèn: Một tệp pyproject.toml bị sửa đổi đã chỉ thị cho công cụ build maturin bao gồm thư mục độc hại cook/ trong gói wheel.
  • Tính bền vững: Malware sử dụng cook.pth và sitecustomize.py để tự động thực thi khi bất kỳ tiến trình Python nào khởi động.
  • Đánh cắp dữ liệu: Công cụ đánh cắp nhắm vào khóa SSH, thông tin đăng nhập đám mây, token AI và mật khẩu trình duyệt, gửi chúng tới www.litellm[.]dev.
  • Không khớp nguồn: Tag git v1.107.0 trỏ tới một commit có phiên bản 1.108.0, trong khi sdist khớp với một commit muộn hơn với các chỉnh sửa thủ công để hoàn tác phiên bản và thêm payload.
  • Tác động nền tảng: Tất cả bảy biến thể wheel (Linux, macOS, Windows) đều chứa các tệp độc hại, đảm bảo lây nhiễm đa nền tảng.

Tại sao điều này quan trọng

Sự cố này chứng minh rằng việc xác minh mã nguồn trên các kho lưu trữ công khai như GitHub là không đủ để đảm bảo an ninh chuỗi cung ứng. Kẻ tấn công có thể chặn quy trình build hoặc sửa đổi các artifact sau khi nguồn được gắn tag nhưng trước khi xuất bản. Đối với các nhóm kỹ thuật, điều này có nghĩa là tin tưởng vào một gói phần mềm chỉ dựa trên lịch sử repository là rất rủi ro. Việc sử dụng các tệp .pth để đạt được thực thi mã mà không cần import tường minh vượt qua nhiều biện pháp kiểm tra bảo mật tiêu chuẩn vốn tìm kiếm các cuộc gọi hàm nguy hiểm trong mã ứng dụng.

Hơn nữa, việc thiếu các chứng nhận nguồn gốc trên PyPI khiến việc xác minh ngay lập tức nguồn gốc của các wheel đã biên dịch trở nên khó khăn. Nếu không có bằng chứng mật mã liên kết artifact đã build với một quy trình build cụ thể, đã được xác minh, các chuyên gia phòng thủ phải dựa vào phân tích pháp y phản ứng chậm. Sự chậm trễ này cho phép các gói độc hại tồn tại lâu hơn trong lưu thông, tăng cửa sổ phơi nhiễm cho các tổ chức tự động cập nhật phụ thuộc.

Bạn có thể làm gì

  • Ngay lập tức gỡ cài đặt LiteLLM phiên bản 1.107.0 nếu nó có mặt trong bất kỳ môi trường nào: pip uninstall litellm==1.107.0.
  • Xoay vòng (rotate) tất cả thông tin đăng nhập, API key và bí mật được lưu trữ trên các máy có thể đã cài đặt phiên bản bị xâm nhập.
  • Kiểm tra sự hiện diện của cook.pth, cook.py và sitecustomize.py trong thư mục site-packages của Python.
  • Ghim (pin) các phụ thuộc vào các phiên bản tốt đã biết, chẳng hạn như 1.106.2 hoặc 1.107.0rc2, cho đến khi một bản vá được xác minh được phát hành.
  • Bật kiểm tra nguồn gốc phụ thuộc (dependency provenance checks) ở những nơi khả dụng và ưu tiên các gói cung cấp metadata chứng nhận.
  • Giám sát nhật ký mạng để tìm các kết nối outbound tới www.litellm[.]dev hoặc các mẫu truyền dữ liệu bất thường.
  • #supply chain security
  • #python
  • #malware
  • #pypi
  • #litellm

Công cụ từ cửa hàng Bytechap

Đọc tiếp

Bảo mật & quyền riêng tư

PHP2Shell: Tại sao các điều chỉnh cấu hình không hiệu quả và cách giảm thiểu rủi ro trước khi vá lỗi

PHP đang phát hành các bản vá khẩn cấp cho hai lỗ hổng thực thi mã từ xa nghiêm trọng. Các chuyên gia cảnh báo rằng những giải pháp thay thế bằng cách thay đổi cấu hình phổ biến là không đủ và kêu gọi áp dụng chiến lược cô lập ngay lập tức.

Bảo mật & quyền riêng tư

PHP phát hành bản vá khẩn cấp cho các lỗ hổng thực thi mã từ xa nghiêm trọng PHP2Shell

PHP đã đưa ra các bản cập nhật khẩn cấp để khắc phục hai lỗ hổng nghiêm trọng trong engine runtime của mình, cho phép thực thi mã từ xa mà không cần xác thực. Các lỗ hổng này ảnh hưởng đến hầu hết mọi phiên bản PHP và đang bị khai thác

Tất cả bài viết