5月22日資安公司Aikido發現,PHP開發框架Laravel的第三方語言套件專案Laravel Lang,其GitHub儲存庫遭到入侵,攻擊者針對三個套件,分別是laravel-lang/lang、laravel-lang/attributes、laravel-lang/http-statuses,發布指向帶有惡意程式碼版本的標籤,並在這些程式碼注入可竊取憑證的程式碼,並藉由composer元件的自動載入功能執行。Aikido強調,由於惡意程式碼未曾提交到Laravel的官方儲存庫,而特別難以察覺,攻擊者建立標籤,並指向他們控制的惡意分叉(fork)當中的提交內容。他們一共看到有233個版本的套件遭到入侵,同時該公司也向Packagist進行通報,Packagist立即移除惡意版本,並暫時下架受影響的套件,以防止災情擴大。
資安公司Socket、Step Security也著手調查此事,並指出還有一個專案Laravel-Lang/actions也遭遇攻擊。Socket指出,這起事故在Aikido揭露後,截至23日仍持續存在,總計超過700個套件版本存在惡意程式碼,而且,部分版本標籤出現連續發布的現象,發布間隔只有幾秒,由於這種情況在一般的套件維護流程並不常見,再加上所有受影響的儲存庫都由Laravel Lang經營,因此Socket研判,攻擊者可能已經有辦法存取到組織層級的憑證、儲存庫的自動化流程,或是發布套件的基礎設施。
對於駭客注入的惡意程式碼,Socket指出,當中利用龐大的正規表達式字典來抓取檔案、資料庫,以及環境變數的內容,藉此搜刮各種API金鑰,範圍涵蓋雲端環境、容器、HashiCorp Vault、CI/CD管道、加密貨幣、瀏覽器、密碼管理工具、即時通訊軟體與FTP程式、檔案與本機組態設定,以及系統資訊和處理程序等。
Step Security指出,在上述受影響的套件當中,每個Git標籤都被竄改,目前除了根據2026年5月22日前的提交SHA值來判斷,並無鎖定的安全版本可供使用,換言之,只能根據提交的SHA雜湊值,來確認本機取得的版本是否為惡意版本。該公司指出,即使是幾年前發布的版本,目前也顯示建立時間在不久之前的現象,原因是所有標籤都被攻擊者透過新的提交(commit)強制推送而遭覆蓋籤。其中,laravel-lang/lang是本次攻擊者的主要目標,全部502個標籤都被竄改;laravel-lang/attributes、laravel-lang/actions分別有86個和46個標籤被竄改;最近一個被揭露遭駭的套件laravel-lang/http-statuses,Step Security雖未透露受害版本的數量,但指出從v1.0.0至v3.4.5的所有標籤都受到影響。
Comments (0)