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

Cuộc tấn công chuỗi cung ứng LiteLLM được truy vết từ khóa master chưa bị thu hồi và việc đánh cắp dữ liệu qua webhook

Một khóa master của LiteLLM Agent Platform không bị thu hồi đã cho phép kẻ tấn công chiếm quyền kiểm soát quy trình phát hành, công bố các gói PyPI độc hại và đánh cắp thông tin đăng nhập thông qua webhook.

Minh họa một đường ống dữ liệu làm rò rỉ khóa vào một endpoint webhook
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.

LiteLLM đã tiết lộ một vụ xâm phạm nghiêm trọng trong chuỗi cung ứng vào ngày 24 tháng 10 năm 2026, bắt nguồn từ một khóa master bị rò rỉ từ tháng Năm. Kẻ tấn công đã sử dụng quyền truy cập này để chèn mã độc vào phiên bản 1.107.0 của gói Python phổ biến, nhắm mục tiêu vào thông tin đăng nhập của nhà phát triển và môi trường hệ thống.

Chuyện gì đã xảy ra

Sự cố bắt đầu vào ngày 27 tháng 5 năm 2026, khi một tệp cấu hình chứa khóa master của LiteLLM Agent Platform vô tình được commit lên một kho lưu trữ GitHub công khai. Mặc dù nhóm kỹ thuật nhanh chóng force-push đè lên commit đó và xác định cần phải thu hồi, nhưng bản thân khóa master lại không bao giờ bị thu hồi. Vào ngày 10 tháng 10 năm 2026, một kẻ tấn công hoạt động từ địa chỉ IP 69.48.229.143 đã sử dụng khóa vẫn còn hiệu lực này để truy cập vào Agent Platform. Từ đó, chúng trích xuất một token OAuth của GitHub CLI không bị giới hạn phạm vi (not scoped down) và liên kết với tài khoản chủ sở hữu tổ chức.

Với quyền truy cập cấp độ owner, kẻ tấn công đã thực hiện một loạt các thao tác bí mật. Vào ngày 10 tháng 10, chúng tạo ra các nhánh ngắn hạn trong các kho lưu trữ nội bộ để chạy các workflow nhằm thu thập thêm thông tin đăng nhập. Các nhánh này bị xóa trong vòng vài phút, để lại rất ít dấu vết trong lịch sử tiêu chuẩn. Đến ngày 21 tháng 10, kẻ tấn công đã ghi đè các biện pháp bảo vệ nhánh và thay đổi quy trình phát hành để trỏ tới một kho lưu trữ giả mạo. Chúng sử dụng các token kỹ sư bị đánh cắp để kích hoạt và phê duyệt việc phát hành LiteLLM phiên bản 1.107.0 lên PyPI, Docker Hub và GHCR trước khi xóa các hồ sơ sản xuất để che giấu dấu vết.

Gói độc hại đã bị PyPI cách ly và bị loại bỏ khỏi các registry container sau đó trong cùng ngày, sau khi được các nhà nghiên cứu bảo mật báo cáo. LiteLLM xác nhận rằng kẻ tấn công có thể đã nới lỏng hơn nữa các hạn chế phát hành nhưng có khả năng đã tránh làm như vậy để lẩn tránh sự phát hiện. Công ty hiện đang nỗ lực thu hồi mọi token liên quan đến các hệ thống nội bộ và nền tảng của bên thứ ba.

Cơ chế hoạt động

Phương pháp chính của kẻ tấn công để đánh cắp thông tin đăng nhập là chèn các workflow GitHub Actions độc hại vào các nhánh dùng một lần. Các workflow này, có tên là cache.yml, được cấu hình để chạy mỗi khi có push. Chúng thu thập các secret như API key cho Anthropic, OpenAI, AWS Bedrock và GitGuardian, cũng như thông tin đăng nhập cơ sở dữ liệu và trạng thái phiên trình duyệt. Dữ liệu bị đánh cắp được truyền ra ngoài (exfiltrated) tới các endpoint do kẻ tấn công kiểm soát trên webhook.site, một dịch vụ cho phép người dùng kiểm tra các yêu cầu HTTP gửi đến.

Sau khi được công bố, phiên bản LiteLLM 1.107.0 bị xâm phạm chứa malware tự động thực thi khi Python khởi động, ngay cả khi thư viện không được import. Malware này bao gồm một module thu thập thông tin đăng nhập quét các tài liệu xác thực trên các công cụ dành cho nhà phát triển, môi trường đám mây và trình duyệt. Nó cũng cài đặt một backdoor hướng tới Unix, tải và thực thi mã tùy ý từ máy chủ của kẻ tấn công mỗi giờ. Điều này có nghĩa là chỉ cần khởi động Python trong môi trường bị ảnh hưởng cũng có thể kích hoạt mã độc, mở rộng rủi ro vượt ra ngoài các triển khai LiteLLM đang hoạt động.

Chi tiết quan trọng

  • Điểm xâm nhập ban đầu là một khóa master bị rò rỉ vào ngày 27 tháng 5 năm 2026, khóa này không bao giờ bị thu hồi mặc dù đã được xác định là bị lộ.
  • Kẻ tấn công đã sử dụng các endpoint của webhook.site để truyền ra ngoài các thông tin đăng nhập bị đánh cắp, bao gồm API key và mật khẩu cơ sở dữ liệu.
  • Các workflow độc hại được push vào các nhánh ngắn hạn và bị xóa trong vòng vài phút để tránh bị phát hiện trong lịch sử kho lưu trữ.
  • Phiên bản gói bị xâm phạm 1.107.0 đã được công bố lên PyPI và các registry container vào ngày 21 tháng 10 năm 2026.
  • Malware thực thi khi khởi động Python và bao gồm một backdoor giao tiếp với litellm.dev mỗi giờ.
  • Thông tin đăng nhập bị đánh cắp bao gồm quyền truy cập vào Linear, Together AI và các nền tảng quét secret như GitGuardian.

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

Sự cố này nhấn mạnh những rủi ro nghiêm trọng của việc quản lý khóa kém và các pipeline CI/CD quá lỏng lẻo về quyền hạn. Việc không thu hồi một khóa bị xâm phạm đã biết nhiều tháng sau khi nó bị lộ đã cho phép kẻ tấn công duy trì quyền truy cập bền vững. Đối với các đội ngũ kỹ thuật, điều này khẳng định tầm quan trọng của việc coi xoay vòng khóa (key rotation) là một biện pháp kiểm soát bảo mật thiết yếu chứ không phải là một nhiệm vụ bảo trì tùy chọn. Nó cũng minh họa cách mà các biện pháp kiểm soát phát hành lỏng lẻo, thậm chí vì sự tiện lợi tạm thời, có thể tạo ra những lỗ hổng mà kẻ tấn công khai thác để bỏ qua các quy trình phê duyệt đa nhân sự.

Việc sử dụng phương thức truyền dữ liệu qua webhook cho thấy cách kẻ tấn công lợi dụng các công cụ gỡ lỗi hợp pháp để đánh cắp dữ liệu mà không kích hoạt các cảnh báo bảo mật truyền thống. Vì dữ liệu được gửi tới các endpoint webhook bên ngoài, nó đã vượt qua giám sát mạng nội bộ. Nhà phát triển và kỹ sư bảo mật phải nhận thức rằng bất kỳ dịch vụ nào có khả năng nhận yêu cầu HTTP đều có thể được sử dụng làm kênh truyền dữ liệu ra ngoài. Hiểu rõ cách các yêu cầu này được cấu trúc và chứa những gì là điều cần thiết để phát hiện và ngăn chặn các cuộc tấn công như vậy.

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

  • Kiểm toán tất cả các pipeline CI/CD để tìm kiếm các quyền hạn quá rộng và đảm bảo các token được giới hạn ở mức quyền truy cập tối thiểu cần thiết.
  • Triển khai quy trình xoay vòng khóa tự động và thu hồi ngay lập tức đối với bất kỳ thông tin đăng nhập nào bị lộ trong các kho lưu trữ công khai.
  • Giám sát các lần thực thi workflow bất thường, đặc biệt là những trường hợp liên quan đến các nhánh ngắn hạn hoặc xóa nhanh chóng.
  • Kiểm tra các yêu cầu HTTP gửi đi từ môi trường build của bạn để phát hiện việc truyền dữ liệu trái phép ra ngoài tới các dịch vụ bên ngoài.
  • Xác minh tính toàn vẹn của các gói phần mềm của bên thứ ba bằng cách kiểm tra hash và sử dụng lock file để ngăn chặn các bản cập nhật không mong muốn.
  • Xem xét và hạn chế quyền truy cập vào các pipeline phát hành, đảm bảo rằng các nới lỏng tạm thời về biện pháp kiểm soát bảo mật phải có giới hạn thời gian chặt chẽ và được giám sát.
  • #supply chain security
  • #webhook security
  • #ci/cd security
  • #credential management
  • #python security

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

Đọc tiếp

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

Lỗ hổng bộ giải mã Brotli trong Node.js cho phép thực thi mã từ xa trên các bản build chính thức

Các nhà nghiên cứu của Imperva đã chứng minh khả năng thực thi mã từ xa thông qua dữ liệu Brotli được tạo đặc biệt trong Node.js 24.22.0. Các bản vá có sẵn cho những phiên bản được hỗ trợ, đòi hỏi phải cập nhật ngay lập tức đối với các dịch vụ giải mã dữ liệu

Tất cả bài viết