Các gói PHP của Laravel-Lang bị xâm nhập để phát tán mã độc đánh cắp thông tin xác thực đa nền tảng

Các nhà nghiên cứu an ninh mạng vừa phát hiện một chiến dịch tấn công chuỗi cung ứng phần mềm nhắm vào nhiều gói PHP thuộc Laravel-Lang để phát tán một khung mã độc đánh cắp thông tin xác thực toàn diện trên các nền tảng Windows, Linux và macOS. Cuộc tấn công sử dụng kỹ thuật ghi đè git tag để chèn mã độc vào tệp src/helpers.php, tự động thực thi khi ứng dụng khởi động.
Laravel-Lang PHP Packages Compromised

Các nhà nghiên cứu an ninh mạng đã gắn cờ một chiến dịch tấn công chuỗi cung ứng phần mềm mới nhắm vào nhiều gói PHP thuộc Laravel-Lang để phát tán một khung mã độc đánh cắp thông tin xác thực (credential-stealer) toàn diện.

Các gói bị ảnh hưởng bao gồm:

  • laravel-lang/lang
  • laravel-lang/http-statuses
  • laravel-lang/attributes
  • laravel-lang/actions

"Thời điểm và mô hình của các thẻ (tags) mới được công bố cho thấy một sự xâm nhập rộng hơn vào quy trình phát hành của tổ chức Laravel-Lang, thay vì chỉ là một phiên bản gói mã độc đơn lẻ," Socket cho biết. "Các thẻ này được xuất bản liên tiếp nhanh chóng vào ngày 22 và 23 tháng 5 năm 2026, với nhiều phiên bản xuất hiện chỉ cách nhau vài giây."

Hơn 700 phiên bản liên quan đến các gói này đã được xác định, cho thấy việc gắn thẻ hoặc tái bản hàng loạt được thực hiện tự động. Người ta nghi ngờ rằng kẻ tấn công có thể đã giành được quyền truy cập vào thông tin xác thực cấp tổ chức, hệ thống tự động hóa kho lưu trữ hoặc cơ sở hạ tầng phát hành.

Kỹ thuật tấn công tinh vi

Điều làm cho cuộc tấn công này khác biệt là mã nguồn thực tế của dự án không bị thay đổi để chèn mã độc. Thay vào đó, những kẻ tấn công đã ghi đè mọi git tag hiện có trong mỗi kho lưu trữ để trỏ đến một commit độc hại mới.

Chức năng độc hại cốt lõi nằm trong một tệp có tên là "src/helpers.php" được nhúng vào các thẻ phiên bản. Nó chủ yếu được thiết kế để nhận dạng (fingerprint) vật chủ bị nhiễm và liên hệ với một máy chủ bên ngoài ("flipboxstudio[.]info") để tải xuống một payload đa nền tảng dựa trên PHP chạy được trên Windows, Linux và macOS.

"Kẻ tấn công đã thêm src/helpers.php vào bản đồ autoload.files trong mỗi gói bị xâm nhập," StepSecurity cho biết. "Vì mọi ứng dụng Laravel đều gọi require __DIR__.'/vendor/autoload.php' khi khởi động, và vì Symfony, PHPUnit cũng như hầu hết các PHP framework khác đều làm như vậy, payload sẽ thực thi ngay khi bất kỳ người dùng nào khởi chạy gói. Không cần khởi tạo lớp, không cần gọi phương thức, không cần trình kích hoạt đặc biệt nào."

Theo Aikido Security, trình thả mã độc (dropper) sẽ phân phối một trình khởi chạy Visual Basic Script trên Windows và chạy nó qua cscript. Trên Linux và macOS, nó thực thi payload đánh cắp thông tin thông qua hàm exec().

Kịch bản này tạo ra một dấu hiệu duy nhất cho mỗi máy chủ (mã băm MD5 kết hợp đường dẫn thư mục, kiến trúc hệ thống và inode) để đảm bảo payload chỉ kích hoạt một lần trên mỗi máy. Điều này ngăn chặn việc thực thi thừa và giúp mã độc không bị phát hiện sau lần chạy đầu tiên.

Phạm vi đánh cắp dữ liệu khổng lồ

Mã độc đánh cắp thông tin được trang bị để thu thập một loạt dữ liệu từ các hệ thống bị xâm nhập và gửi chúng về cùng một máy chủ. Các dữ liệu này bao gồm:

  • Vai trò IAM và tài liệu định danh thực thể bằng cách truy vấn các điểm cuối siêu dữ liệu đám mây.
  • Thông tin xác thực ứng dụng mặc định của Google Cloud.
  • Token truy cập Microsoft Azure và hồ sơ service principal.
  • Token Kubernetes Service Account và cấu hình Helm registry.
  • Token xác thực cho DigitalOcean, Heroku, Vercel, Netlify, Railway và Fly.io.
  • Token HashiCorp Vault.
  • Token và cấu hình từ Jenkins, GitLab Runners, GitHub Actions, CircleCI, TravisCI và ArgoCD.
  • Cụm từ hạt giống (seed phrases) và các tệp liên quan đến ví tiền điện tử (Electrum, Exodus, Atomic, Ledger Live, Trezor, Wasabi và Sparrow) và các tiện ích mở rộng (MetaMask, Phantom, Trust Wallet, Ronin, Keplr, Solflare và Rabby).
  • Lịch sử trình duyệt, cookie và dữ liệu đăng nhập từ Google Chrome, Microsoft Edge, Mozilla Firefox, Brave và Opera bằng cách sử dụng một tệp thực thi Windows được mã hóa Base64 để vượt qua bảo vệ App-Bound Encryption (ABE) của Chromium.
  • Dữ liệu kho lưu trữ cục bộ và tiện ích mở rộng trình duyệt cho 1Password, Bitwarden, LastPass, KeePass, Dashlane và NordPass.
  • Các phiên đã lưu của PuTTY/WinSCP, bản sao Windows Credential Manager và các tệp RDP.
  • Token phiên liên quan đến các ứng dụng như Discord, Slack và Telegram.
  • Dữ liệu từ Microsoft Outlook, Thunderbird và các trình khách FTP phổ biến (FileZilla, WinSCP và CoreFTP).
  • Các tệp cấu hình và xác thực chứa token Docker, khóa riêng SSH, thông tin xác thực Git, tệp lịch sử shell, cấu hình cụm Kubernetes, tệp .env, wp-config.php và docker-compose.yml.
  • Các biến môi trường được nạp vào tiến trình PHP.
  • Thông tin xác thực kiểm soát nguồn từ các tệp .gitconfig, .git-credentials và .netrc.
  • Cấu hình VPN và tệp đăng nhập đã lưu cho OpenVPN, WireGuard, NetworkManager và các VPN thương mại như NordVPN, ExpressVPN, CyberGhost và Mullvad.

"Payload thu được là một mã độc đánh cắp thông tin PHP dài khoảng 5.900 dòng, được tổ chức thành mười lăm mô-đun thu thập chuyên biệt," nhà nghiên cứu Ilyas Makari của Aikido cho biết. "Sau khi thu thập mọi thứ có thể tìm thấy, nó mã hóa kết quả bằng AES-256 và gửi chúng đến flipboxstudio[.]info/exfil. Sau đó, nó tự xóa khỏi ổ đĩa để hạn chế bằng chứng pháp y."