相关事件 · Composer / Packagist 供应链 · 2026 年 4–5 月
laravel-lang 与 Packagist 供应链攻击(2026):检查你的 composer.lock
攻击者利用窃取的 GitHub 权限,给 Packagist 上的正规包发布了恶意标签。laravel-lang 事件中,恶意代码安装后会在每一次 PHP 请求时执行。
最近更新
事件经过
| 包 | 时间 | 执行方式 | 来源 |
|---|---|---|---|
| laravel-lang/lang、http-statuses、attributes、actions | 2026-05-22 至 23 | 注入 src/helpers.php 并写进 autoload.files,每次请求和命令行都会执行 | Snyk |
| intercom/intercom-php 5.0.2 | 2026-04-30 | 被改成 Composer 插件,在 install/update 时运行脚本 | Socket |
| 包括 devdojo/wave、devdojo/genesis 在内的 8 个包(开发分支) | 2026-05-23 报道 | package.json 里的 postinstall 钩子下载 Linux 二进制文件 | The Hacker News |
Packagist 表示,这些攻击利用被接管的 GitHub 账号和被盗令牌,给攻击者本无权限的包发布了新标签;团队在发现后几分钟内就下架了受影响的版本。
我的项目受影响吗?
# Did a project ever resolve one of the affected packages?
grep -n -E '"name": "(laravel-lang/(lang|http-statuses|attributes|actions)|intercom/intercom-php)"' composer.lock
composer show --locked | grep -E 'laravel-lang|intercom'
composer --version # 2.10+ adds dependency policies for malware-flagged versions
composer audit怎么修复
- 只要任何地方(开发机、CI、容器、服务器)装过受影响版本,就先隔离、保留证据,再用干净镜像重建。
- 更换 PHP 进程或 CI 任务能读到的所有密钥:
.env里的值、云密钥、数据库密码、部署令牌、SSH 密钥。 - 升级到 Composer 2.10 或更高版本,并提交
composer.lock,避免构建时悄悄解析到新标签。
常见问题
怎么知道我的项目有没有拉到恶意版本?
在所有分支和所有构建出的镜像里搜索 composer.lock 中的这些包名,并对比安装时间是否落在攻击时间段内。在恶意标签出现之前就已锁定的 lock 文件,会保留原来的提交引用。
执行 composer update 就够了吗?
不够。更新只会替换包,但 laravel-lang 的恶意代码运行的是凭据窃取程序。请把机器或容器视为已被入侵,更换它能访问的云密钥、数据库密码、CI 令牌和 SSH 密钥。
Packagist 做了哪些改进?
Packagist 2026 年 5 月 27 日的文章介绍了:在元数据里显示 Aikido 的恶意软件标记、稳定版本不可变(标签不能再被悄悄改写),以及 Composer 2.10 新增的依赖策略,可以处理被标记为恶意的版本。
来源
出站链接将离开本站。本站不托管利用代码。
- An update on Composer & Packagist supply chain security (27 May 2026) — Packagist blog
- Laravel Lang supply chain advisory — Snyk
- Mini Shai-Hulud spreads to Packagist: malicious Intercom PHP package — Socket
- Packagist supply chain attack infects 8 packages using GitHub-hosted Linux malware (23 May 2026) — The Hacker News