投毒即服务:TeamPCP如何引爆AI时代供应链危机"

admin 2026-10-22 08:17:36 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

cover_image

投毒即服务:TeamPCP如何引爆AI时代供应链危机

原创

腾讯云安全
腾讯云安全

云鼎实验室

2026年6月12日 20:56
广东

在小说阅读器读本章

去阅读

01 |总览与摘要

TeamPCP 是一个至少从 2025 年下半年活跃于开源供应链领域的组织。云鼎实验室通过对其相关事件的持续监测分析发现,其攻击并非传统的单点恶意包投放,而是围绕开发者工具链、CI/CD、包管理器、云凭据与开源发布权限形成的连续作战链条。

手段:典型路径为凭据窃取 → 发布权限劫持 → 供应链投毒 → 横向扩散。攻击者通过终端窃取、GitHub Actions 滥用、包发布账号劫持等方式获取凭据后,劫持 npm、PyPI、Docker Hub、OpenVSX 等分发与构建渠道投放恶意制品,并利用受害环境中的云密钥、源码仓库和发布令牌继续扩散。

AI 赋能:TeamPCP 最突出的特征是人机协同攻击。公开证据显示,TeamPCP 主要使用 Anthropic Claude(Claude 3.5 Sonnet 与 Claude Code CLI)生成后门脚手架和启动脚本,利用 GPT-4o 优化混淆与免杀逻辑,并借助 GitHub Copilot 补全攻击代码。其恶意仓库中直接暴露了用于提交的 Git 邮箱地址 [email protected]。借助 AI 的全面赋能,其武器迭代周期从传统的数月缩短至 2–3 周,并在 3 个月内完成了五代武器的进化。

范围:攻击面横跨 npm、PyPI、Docker Hub、GitHub Actions、OpenVSX、VS Code Marketplace、Jenkins 插件市场、GitHub 内部仓库等 10+ 分发与构建渠道,波及 Trivy、Checkmarx KICS、LiteLLM、Telnyx、Bitwarden CLI、SAP CAP、TanStack、UiPath、Mistral、durabletask、Red Hat、微软等知名组织和项目。

影响:首次在实战中击穿 SLSA Build Level 3 可信发布标准;渗透 GitHub 员工设备窃取约 3,800 个内部仓库并在暗网出售;2026 年 5 月将核心攻击框架 Mini Shai-Hulud 开源,直接引发第三方复用的行业级蔓延——Miasma 蠕虫导致 GitHub 在 105 秒内禁用 73 个 Microsoft 相关仓库(见时间线 2026-06-05),Phantom Gyp 变种 2 小时内感染 57 个包/286+ 版本;CISA 将相关漏洞加入 KEV 目录并发布独立公告。

本文基于云鼎实验室内部沉淀的威胁情报,从组织画像、技战法、武器库、典型事件、生态影响到 IOC 指标,完整复盘 TeamPCP 这条新型 AI 驱动供应链攻击组织的全貌。


核心观点

  1. 攻击目标覆盖整个研发供应链。 从生态层面看,攻击横跨 npm、PyPI、GitHub Actions、Docker Hub、OpenVSX、VS Code Marketplace 等 10+ 分发与构建渠道。从受害对象看,涉及数十个知名开源项目及 GitHub、微软等大型平台组织的内部仓库。传统的\"只审查应用代码依赖\"策略对此类攻击完全失效。
  2. 攻击重点是信任链路。 包括 GitHub Actions 工作流、npm/PyPI 发布权限、Docker Hub 镜像、OpenVSX 插件、CI Runner 内存、GitHub OIDC trusted publishing 等。攻击者不是在代码中找漏洞,而是在软件从源码到用户手中的传输管道上逐个攻破信任节点。
  3. 凭据是攻击闭环的核心资产。 攻击者持续收集环境变量、SSH 密钥、GitHub/npm/PyPI token、AWS/GCP/Azure 凭据、Kubernetes Service Account、Vault token、Docker 配置和数据库密码。凭据不仅是单次入侵的终点,更是启动下一轮供应链扩散的燃料。
  4. AI 编码工具被全面武器化,攻击效率呈指数级提升。 公开证据显示 TeamPCP 以 Anthropic Claude 为主力生成项目脚手架与后门代码,GPT-4o 优化混淆免杀逻辑,GitHub Copilot 补全攻击片段,构建了人机协同的恶意代码生产流水线。这使得武器从 Cloud Stealer → CanisterWorm → .pth/WAV 隐写 → Mini Shai-Hulud → 开源二开变种的 5 代进化在不到 3 个月内完成,迭代速度远超传统供应链攻击组织。AI 同时被用于自动化目标侦察、多态载荷批量生成和溯源干扰,使传统基于签名匹配的检测体系面临结构性失效。
  5. 武器体系持续演进且已开源扩散。 从 TeamPCP Cloud Stealer、CanisterWorm、sysmon.py/pgmon 持久化后门,到 Python .pth 注入、WAV 隐写投递、Mini Shai-Hulud 自传播蠕虫、Session 网络外传与 GitHub dead drop,武器库随事件不断扩充。2026 年 5 月核心框架开源后,Miasma 和 Phantom Gyp 变种被第三方快速复用,攻击活动已超越单一操作者的控制范围,归因难度显著上升。
  6. 多起事件具有战役化关联,形成连贯作战图谱。 基础设施(Typosquat 域名、ICP Canister、C2 IP 段)、RSA 公钥、tpcp.tar.gz 归档名、外传方式、俄语系统规避、GitHub 回退通道和代码模式在多起事件中反复出现,表明这些事件并非孤立的偶发投毒,而是围绕研发基础设施展开的连续攻击活动。

02|组织介绍

1. TeamPCP 是什么

TeamPCP 是近期多起开源供应链攻击中反复出现的黑客团伙。公开报告中,Wiz 将其作为独立威胁组织进行追踪,并将 Trivy、Checkmarx KICS、LiteLLM、Bitwarden、Lightning、Intercom、TanStack 多起事件归因到该组织。

与传统“上传一个恶意包”等单点攻击不同,TeamPCP 更像是围绕研发基础设施展开的连续攻击活动。其目标并不局限于终端用户,而是优先打击开发者工具、CI/CD 流水线、包发布账号、云凭据和开源项目维护者权限。一旦获取某个项目的发布令牌或 GitHub 权限,攻击者会将其作为跳板继续感染更多软件包或更多生态。

2. 组织画像

根据目前我们对TeamPCP团伙的攻击检测,发现其至少在不同阶段掌握的攻击能力如下

能力 体现
供应链投毒 劫持 npm、PyPI、Docker Hub、GitHub Actions、OpenVSX、Jenkins 插件等分发渠道
CI/CD 攻击 滥用 pull\_request\_target、GitHub Actions   cache poisoning、Runner 内存读取、OIDC token 抽取
凭据窃取 收集 GitHub/npm/PyPI token、云凭据、SSH 密钥、K8s token、Vault token、数据库密码
横向传播 使用被盗 token 枚举可发布包并重新发布恶意版本,形成蠕虫式扩散
多通道外传 使用 typosquat 域名、Cloudflare Tunnel、ICP Canister(Internet Computer   Protocol 上的链上容器/智能合约服务,可被攻击者用作可轮换的 dead-drop C2)、GitHub release asset、GitHub   dead drop、Session 网络
持久化 systemd --user、macOS LaunchAgent、Python  .pth、IDE hook、GitHub   token monitor daemon
地下协作 与数据泄露、访问交易、论坛悬赏和勒索变现网络形成协作关系

3. 归属证据

公开资料中对 TeamPCP 的归因主要基于多类重叠证据,而不是单一线索:

3.1 命名与标识复用

多个事件中出现了明显的 tpcp 命名痕迹:

  • 被盗数据打包为 tpcp.tar.gz
  • GitHub 备用外传仓库名包括 tpcp-docs、docs-tpcp
  • 恶意工具自称 TeamPCP Cloud stealer
  • HTTP 外传头中出现 X-Filename: tpcp.tar.gz

3.2 加密材料复用

Trivy、KICS、LiteLLM、Telnyx 等事件中均出现 AES-256 与 RSA-4096 混合加密模式。Wiz 与多家研究机构指出,部分攻击复用了相同或高度相似的 RSA 公钥。由于对应私钥控制权高度敏感,公钥复用是强归属依据之一。

3.3 基础设施复用

多个事件中出现了相同或相近的基础设施:

  • scan.aquasecurtiy[.]org
  • checkmarx[.]zone
  • models.litellm[.]cloud
  • git-tanstack[.]com
  • ICP Canister:tdtqy-oyaaa-aaaae-af2dq-cai
  • Cloudflare Tunnel:plug-tab-protective-relay.trycloudflare.com

3.4 技术模式复用

攻击者反复使用以下模式:

  • 从 /proc/<pid>/mem 读取 GitHub Actions Runner.Worker 进程内存
  • 搜索 {\"value\":\"<secret>\",\"isSecret\":true} 类型的 secret 结构
  • 通过 systemd --user 落地 sysmon.py 或 pgmon 后门
  • 使用 npm preinstall / postinstall 触发恶意代码
  • 使用 Python .pth 文件在解释器启动阶段执行代码
  • 针对俄语系统进行规避

4. 与 Shai-Hulud / Mini Shai-Hulud 的关系

公开报告中,“Mini Shai-Hulud”被用于描述 2026 年 4 月至 5 月出现的一批自传播供应链攻击。该活动复用了 Shai-Hulud 风格的概念,包括 npm install hook、自传播、GitHub dead drop、凭据窃取和仓库污染。

需要注意的是:

  • Wiz 高置信度认为 Mini Shai-Hulud 系列事件与 TeamPCP 有关。
  • 但 Wiz 也明确表示,不能仅凭命名判断其与历史 Shai-Hulud 行动是同一组织。
  • 更合理的表述是:TeamPCP 借鉴、复用或演化了 Shai-Hulud 风格的供应链蠕虫技术,并在 2026 年形成了更具攻击性的变种。

5. 访谈材料

观察维度 访谈材料反映的倾向 对企业安全的启示
从破坏型勒索转向访问变现 其自述早期更接近加密勒索,后续转向凭据窃取、源码外传、发布权限滥用和访问售卖 供应链攻击不一定以业务中断作为第一目标;更常见的风险是凭据、代码、云访问和发布权限被持续变现。
优先攻击高价值开发链路 材料中反复强调 GitHub 权限、发布令牌、云凭据和大型组织访问价值 企业需要把 CI/CD、包发布账号、开发者终端和云身份视为同一条高价值攻击链,而不是割裂治理。
访问交易生态化 访谈提到与数据泄露论坛、访问经纪和其他团伙协作,说明其并不依赖单一团队完成全部变现环节 一次供应链入侵可能很快进入地下访问交易、源码售卖或勒索网络,响应重点应包括凭据轮换、代码访问审计和外泄监测。
防御建议具有反向验证价值 其提到依赖版本冷却期(对新发布包设置延迟准入窗口)、制品哈希锁定、细粒度发布令牌、限制 IDE 插件来源等措施 这些建议与防守方实践高度重合,说明攻击者实际利用的正是依赖解析、制品完整性、发布权限和开发者工具链中的默认信任。
AI 是效率放大器而非唯一核心 访谈中承认使用 AI 辅助,但也强调攻击链设计依赖对供应链机制的理解 AI 会降低恶意代码生成、混淆和变种迭代门槛,但真正的风险仍来自攻击者对 CI/CD、包管理器和云身份机制的系统性理解。

因此,访谈材料应被视为威胁情报中的“行为意图和运营模式”证据:TeamPCP 的关注点已经从单次入侵转向可复用的供应链访问、可交易的数据资产和可扩散的攻击工具链。

6. 源码售卖、竞赛与地下协作

公开材料和用户补充资料显示,TeamPCP 的运营方式有明显“平台化”和“生态化”倾向:

  1. 工具公开与攻击众包。 地下论坛帖文显示,相关人员曾以“供应链攻击竞赛”的形式公开推广 Shai-Hulud worm,要求参与者使用该工具链,并以受影响软件包的周/月下载量作为衡量标准,同时通过 XMR 奖金、访问权收购和后续变现分成吸引第三方参与。这说明相关工具链公开后,攻击活动存在从单一团伙操作向第三方复用、改造和规模化扩散的风险。
  2. 源码、凭据与访问权限变现。 访谈材料中,攻击者声称出售 GitHub 私有仓库数据;其他公开线索还显示,其曾围绕 GitHub、MistralAI、Lightning.ai 等相关源码或访问权限进行地下售卖。本文不展开具体数据内容,仅将其作为 TeamPCP 将源码资产、访问权限和供应链投毒能力商品化的侧面证据。
  3. 地下协作与访问交易网络。 除 LAPSUS$、BreachForums 等公开提及的协作对象外,公开线索中还出现 the gentlemen、HasanBroker's 等地下合作或访问交易关系,其中 HasanBroker's 与其合作关系后续已破裂。整体来看,TeamPCP 更接近一个连接凭据窃取、源码外传、访问交易和供应链投毒能力的地下访问经纪节点,而不是单纯的恶意包作者。

7. 组织特点总结

TeamPCP 是一个极度危险的黑客组织,他们将攻击目标锁定为开发者或具备CI Runner、包发布账号和云服务凭据的重要人员,一旦突破,极有可能随着自动化发布链进入更大范围的生态系统。

与普通恶意包作者相比,TeamPCP 的差异在于:它攻击的是“开源软件如何被构建、发布和信任”的机制本身,并试图将凭据、源码、访问权限和供应链投毒能力转化为可交易、可复用、可扩散的地下资源。

03|攻击技战法

TeamPCP 的核心不是利用传统漏洞入侵单台服务器,而是劫持软件供应链中的信任关系:维护者账号、CI/CD 工作流、发布 token、GitHub OIDC、包管理生命周期脚本、Docker 镜像标签和 GitHub Action tag。

1. 攻击链总览

阶段 目标 典型方式 代表事件
初始访问 获取发布或仓库权限 被盗 npm/PyPI/Docker Hub token、GitHub PAT、服务账号、pull\_request\_target 误用 Trivy、KICS、LiteLLM、TanStack
执行 在可信构建或安装流程中运行恶意代码 npm 生命周期脚本、PyPI .pth、GitHub Action、OpenVSX 插件、Docker 镜像、Actions cache CanisterWorm、LiteLLM、KICS、TanStack
凭据收集 收集开发、CI/CD 与云环境中的 secrets 环境变量、SSH key、.npmrc、Docker 配置、K8s   token、Vault、Runner 内存 Trivy、KICS、Mini Shai-Hulud
外传 将凭据或扫描结果传出受害环境 HTTP POST、GitHub release asset、GitHub dead drop、Cloudflare Tunnel、ICP   Canister、Session 网络 Trivy、KICS、TanStack
横向传播 利用被盗权限感染更多包或仓库 枚举可发布包、注入生命周期脚本、重新发布恶意版本 CanisterWorm、Mini Shai-Hulud
持久化 维持后续访问 systemd --user、macOS LaunchAgent、Python  .pth、IDE hook、GitHub   token monitor Trivy、KICS、LiteLLM、TanStack

2. 初始访问与执行入口

类型 技术点 说明
被盗发布令牌 npm PyPI Docker Hub token LiteLLM、Telnyx、Bitwarden CLI、KICS Docker Hub 等事件均体现发布权限被滥用。
GitHub 凭据 PAT、服务账号、aqua-bot、cx-plugins-releases 可用于覆盖 tag、创建恶意 workflow、推送 commit 或触发 CI。
Pwn Request pull\_request\_target + fork 代码执行 TanStack 中,fork PR 代码进入 base repo 的信任边界并污染 Actions cache。
npm 生命周期 preinstall、postinstall、prepare 安装即执行,是 CanisterWorm 与 Mini Shai-Hulud 的核心入口。
PyPI 自动执行 .pth、模块导入、\\_init\\_.py LiteLLM 通过 .pth 扩大触发面;Lightning 在 import lightning 时启动后台线程。
GitHub Action action.yaml、entrypoint.sh、setup.sh Trivy / KICS 在下游 CI Runner 中执行凭据窃取逻辑。
插件市场 OpenVSX VS Code Jenkins 插件激活或加载时执行恶意逻辑,直接接触开发者环境。
缓存投毒 Actions cache / pnpm store TanStack 中,PR 侧缓存被 release workflow 恢复并触发恶意执行。

3. 凭据发现与云环境枚举

类别 目标 说明
本地开发环境 环境变量、.env、Shell history、SSH   key、Git 凭据 攻击者重点寻找长期有效 token 与本地私钥。
包管理器 .npmrc、PyPI/Twine 配置、registry   token 可用于重新发布恶意包,扩大供应链影响面。
容器与 CI/CD Docker config、GitHub Actions secrets、Runner 内存 多起事件读取 /proc//mem,从 Runner.Worker 中提取 secret 或 OIDC token。
云平台 AWS、GCP、Azure 凭据 AWS 侧常见枚举包括 IAM、EC2、Lambda、RDS、Route 53、S3、Secrets Manager、ECS。
Kubernetes / Vault Service Account token、kubeconfig、Vault token KICS 与 Mini Shai-Hulud 均体现对云原生环境的持续关注。
浏览器与钱包 浏览器密码、MetaMask、Phantom、Solana、Ethereum 等 后期变种开始扩展到浏览器凭据和加密钱包数据。

4. 横向传播、外传与持久化

能力 技术实现 风险
自传播 读取 npm token → 枚举可发布包 → 注入恶意脚本 → bump 版本 → 发布 维护者账号会变成传播节点,单个 token 可影响多个包。
OIDC 发布滥用 从 Runner 内存提取 OIDC token,直接向 npm registry 发起发布 不需要窃取长期 npm token,也可完成恶意发布。
加密外传 AES-256-CBC + RSA-4096 / RSA-OAEP,加密后打包为 tpcp.tar.gz 即使拦截流量,也难以直接还原内容。
多通道 C2 Typosquat 域名、Cloudflare   Tunnel、ICP Canister、GitHub dead drop、Session 网络 单一域名封禁效果有限。
主机持久化 sysmon.py、pgmon、gh-token-monitor、LaunchAgent 凭据轮换后仍可能被二次窃取。
IDE / 仓库持久化 .vscode/tasks.json、.claude/settings.json、恶意仓库文件 用户打开项目或启动 IDE 即可能再次触发。


04|攻击武器与基础设施

1. 武器总览

TeamPCP 使用的“武器”并不只是单一恶意程序,而是一组围绕供应链攻击设计的组件:加载器、凭据窃取器、持久化脚本、自传播发布器、外传通道和回退 C2。其工具组合随着事件持续演进。

武器类别 代表组件 功能
凭据窃取器 TeamPCP Cloud Stealer 扫描 CI/CD 与开发者侧 secrets 并外传
npm 蠕虫 CanisterWorm 自动注入 optionalDependencies 实现链式扩散
Linux 后门 sysmon.py + systemd unit 用户态长期驻留,监控 GitHub token 与 Vault
PyPI 注入器 LiteLLM .pth / Telnyx WAV 隐写 Python 启动时自动加载,stage-2 隐写在合法资源中
蠕虫变种 Mini Shai-Hulud / TanStack 变种 复用 Shai-Hulud 思路,叠加 PCP 公钥外传

2. TeamPCP Cloud Stealer

该组件在 Trivy 与 KICS 事件中尤为典型。其核心能力包括:

  • 读取 GitHub Actions Runner 进程内存
  • 搜索 secret JSON 结构
  • 收集环境变量、SSH 密钥、云凭据、Kubernetes token、Docker 配置
  • 查询 AWS IMDS 与 Kubernetes API
  • 使用 AES-256 + RSA-4096 加密
  • 打包为 tpcp.tar.gz
  • 外传到攻击者控制域名或 GitHub 仓库

可疑痕迹:

  • tpcp.tar.gz
  • tpcp-docs
  • docs-tpcp
  • scan.aquasecurtiy[.]org
  • checkmarx[.]zone

3. CanisterWorm

CanisterWorm 是 TeamPCP 风格 npm 蠕虫的重要代表。其名称来自攻击者使用 Internet Computer Protocol Canister 作为 dead-drop C2。

典型行为

  1. npm postinstall 执行 node index.js。
  2. 加载器读取 base64 payload。
  3. Python dropper 写入本地。
  4. 创建 systemd --user 服务。
  5. 每隔约 3000 秒轮询 ICP Canister。
  6. 下载二阶段 payload 到 /tmp/pglog 并执行。
  7. 读取 npm token,枚举可发布包并重新发布恶意版本。

主要 IOC

  • https://tdtqy-oyaaa-aaaae-af2dq-cai.raw.icp0.io/
  • ICP Canister ID:tdtqy-oyaaa-aaaae-af2dq-cai
  • /tmp/pglog
  • /tmp/.pg_state
  • ~/.local/share/pgmon/service.py
  • ~/.config/systemd/user/pgmon.service

4. sysmon.py 与 systemd 后门

在 Trivy 与 KICS 事件中,攻击者会在非 CI 环境中落地 sysmon.py。

常见路径:

  • ~/.config/systemd/user/sysmon.py
  • ~/.config/systemd/user/sysmon.service
  • /root/.config/sysmon/sysmon.py
  • /root/.config/systemd/user/sysmon.service

其行为是定时轮询 C2 获取下一阶段载荷。如果 C2 返回“youtube”相关内容,则视为休眠或 kill switch;否则下载并执行。

5. LiteLLM .pth 注入

LiteLLM 1.82.8 中出现 litellm_init.pth。Python 的 .pth 文件会在解释器启动时被 site 模块处理,因此攻击者无需等待用户显式 import litellm。

该方式的危险性在于:

  • 触发面从单个库扩大到整个 Python 环境。
  • 任意 Python 进程启动都可能执行恶意代码。
  • 普通源码审查容易忽略 wheel 包中的 .pth 文件。

IOC:

  • litellm_init.pth
  • p.py
  • models.litellm[.]cloud
  • checkmarx[.]zone

6. Telnyx WAV 隐写投递

Telnyx Python SDK 的恶意版本 4.87.1 与 4.87.2 在 _client.py 中注入代码,从 83.142.209.203:8080 下载 WAV 文件,并从音频中提取 payload。

  • Windows:投递到启动目录下的 msbuild.exe。
  • Linux/macOS:执行凭据收集器,加密并外传 tpcp.tar.gz。

IOC:

  • http://83.142.209.203:8080/ringtone.wav
  • http://83.142.209.203:8080/hangup.wav
  • %APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\msbuild.exe

7. Mini Shai-Hulud

Mini Shai-Hulud 是 TeamPCP 后期攻击中更复杂的自传播框架。其能力包括:

  • npm preinstall 触发
  • 下载 Bun runtime
  • 执行混淆的 execution.js
  • 收集 GitHub/npm/cloud/K8s/Vault token
  • 浏览器凭据窃取
  • GitHub dead drop 外传
  • npm 自传播
  • IDE 持久化:.claude/ 与 .vscode/
  • 俄语系统规避

代表性文件:

  • setup.mjs
  • execution.js
  • .claude/execution.js
  • .claude/setup.mjs
  • .claude/settings.json
  • .vscode/tasks.json
  • .vscode/setup.mjs

8. TanStack 变种基础设施

TanStack 事件中,攻击者使用了更复杂的三通道外传体系:

  1. Typosquat 域名:git-tanstack[.]com
  2. Session 网络:filev2.getsession.org、seed1/2/3.getsession.org
  3. GitHub API dead drop:创建描述为 Shai-Hulud: Here We Go Again 的仓库

新增持久化组件:

  • gh-token-monitor
  • macOS:~/Library/LaunchAgents/com.user.gh-token-monitor.plist
  • Linux:~/.config/systemd/user/gh-token-monitor.service

9. 基础设施特点

TeamPCP 的基础设施呈现以下特点:

  • Typosquatting:如 scan.aquasecurtiy[.]org、models.litellm[.]cloud、git-tanstack[.]com
  • 去中心化或抗封锁通道:ICP Canister、Session 网络
  • 合法平台滥用:GitHub 仓库、GitHub Release、OpenVSX、npm/PyPI、Docker Hub
  • 临时隧道:Cloudflare Tunnel
  • 回退机制丰富:主 C2 失败后可切换 GitHub dead drop 或备用域名

05|事件时间线

时间线

时间 事件 关键动作 / 技术点 影响与备注
2025 年底 TeamPCP 相关活动开始被公开资料持续关注 早期围绕开发者基础设施、云环境、供应链投毒和访问售卖活动展开 后续事件显示其目标从单次入侵逐步转向\"凭据—发布权限—供应链扩散\"的连续作战模式。
2026-02-27 Aqua 相关早期 Pwn Request 事件 MegaGame10418 利用 Pwn Request 获取 aqua-bot PAT 后续被认为可能为 Trivy / Aqua 二次入侵埋下伏笔。
2026-03-19 17:43:37 Trivy v0.69.4 tag 被推送并触发恶意 release 伪造提交身份、恶意 checkout、Runner 内存读取、AES/RSA 加密、sysmon.py、Cloud Stealer 恶意 Trivy 二进制发布到 GitHub Releases、Docker Hub、GHCR、ECR。
2026-03-19 至 03-20 trivy-action 与 setup-trivy tag 被覆盖 trivy-action 75/76 个 tag、setup-trivy 7 个 tag 被指向恶意版本 下游使用浮动 tag 的 GitHub Actions 工作流暴露。
2026-03-20 Socket 披露 CanisterWorm npm 自传播、ICP Canister C2、pgmon / systemd user 持久化 初始涉及 @emilgroup 与 @teale.io/eslint-config 等包。
2026-03-21 CanisterWorm 影响扩大 影响扩大到 135 个恶意包构件、64+ 独立包 npm publish token 被用于枚举和批量发布,蠕虫式扩散特征明显。
2026-03-22 约 16:00 恶意 Trivy 镜像发布到 Docker Hub 恶意 0.69.5、0.69.6 镜像;Aqua 内部仓库被公开 攻击从 GitHub release / Actions 扩展到容器镜像分发链。
2026-03-23 12:53 Checkmarx OpenVSX 扩展出现恶意版本 ast-results v2.53.0 、cx-dev-assist v1.7.0 被投毒 IDE / 插件市场进入攻击面。
2026-03-23 12:58 KICS GitHub Action 投毒 35 个 tag 被指向恶意 commit;K8s Pod 持久化、云凭据收集 与 Trivy 事件存在基础设施和 TTP 重叠。
2026-03-24 LiteLLM PyPI 投毒 恶意 litellm 1.82.7/1.82.8;Python .pth 注入实现解释器启动执行 GitHub 源码与 PyPI 制品不一致,暴露\"源码可信不等于制品可信\"。
2026-03-27 Telnyx Python SDK 投毒 telnyx 4.87.1/4.87.2 ;WAV 隐写投递、平台差异 payload、Windows Startup 持久化 无对应 GitHub tag,指向 PyPI 发布链被绕过。
2026-04-22 12:31:35 至 12:59:46 KICS Docker Hub 镜像出现恶意版本 污染 latest、alpine、debian、v2.1.20、v2.1.21 等 tag 恶意 KICS 保留扫描功能,同时外传 IaC 扫描结果。
2026-04-22 Bitwarden CLI npm 分发短时污染 @bitwarden/[email protected] 被投毒 影响窗口期通过 npm 安装 CLI 的用户。
2026-04-22 Namastex / CanisterSprawl 波次披露 @automagik/genie 、pgserve 等受影响 CanisterWorm 系列继续扩散,体现跨包横向传播能力。
2026-04-22 14:17:59 至 15:41:31 checkmarx/ast-github-action 恶意版本 恶意 2.3.35 发布 Checkmarx 相关攻击继续沿 GitHub Action 扩展。
2026-04-22 13:06 至 17:48 / 21:20 Checkmarx VS Code Marketplace / OpenVSX 后续版本 ast-results 2.63/2.66 、cx-dev-assist 1.17/1.19 等 插件市场与开发者终端风险扩大。
2026-04-25 LAPSUS$ 公开发布 Checkmarx 相关数据 被窃数据公开 / 售卖 Checkmarx 事件从投毒扩大到数据泄露与地下变现。
2026-04-29 Wiz 披露 Mini Shai-Hulud 攻击 SAP npm 包 凭据窃取、自传播、GitHub dead drop(建仓 / Release Asset / commit 暂存外传)、IDE 配置投毒 @cap-js/sqlite 、@cap-js/postgres、@cap-js/db-service、mbt 等受影响。
2026-04-30 12:45:20 至 13:27:30 PyPI lightning 2.6.2/2.6.3 可被安装 import lightning 后台线程、Bun、约 11MB 混淆 JS payload PyTorch Lightning 官方称暴露 42 分钟;GitHub 源码仓库未被篡改。
2026-04-30 15:20 Mini Shai-Hulud 范围更新 新增 [email protected] 与 PyPI [email protected]/2.6.3 攻击跨 npm 与 PyPI,payload 使用 zero.masscan.cloud 与 GitHub fallback。
2026-05-09 至 05-10 Jenkins Marketplace 出现恶意 Checkmarx AST Scanner 恶意 Checkmarx AST Scanner 2026.5.09 Checkmarx 事件进一步扩展到 Jenkins 插件分发渠道。
2026-05-10 至 05-11 TanStack 攻击准备 fork zblgg/configuration,通过 pull_request_target 执行恶意代码并污染 GitHub Actions cache 为后续 OIDC token 获取和 npm 发布做准备。
2026-05-11 19:20 / 19:26 TanStack 波次恶意版本发布 cache poisoning、Runner 内存 OIDC token 提取、trusted publishing 绕过、Session 网络外传、gh-token-monitor 共 42 个 @tanstack/* 包、84 个恶意版本;未窃取 npm token。
2026-05-12 Wiz 披露 TeamPCP 同步攻击 TanStack、UiPath、Mistral、guardrails-ai npm / PyPI 同步投毒;[email protected]、[email protected] 等 显示 TeamPCP 具备多命名空间、多生态并发操作能力。
2026-05-12 至 05-14 Shai-Hulud 源码公开与供应链攻击竞赛 攻击者公开工具链,并在地下论坛发起\"供应链攻击比赛\";规则要求使用 Shai-Hulud worm 攻击框架被第三方快速复用,供应链攻击门槛下降。
2026-05-18 后 Megalodon 等自动化扩散 大规模自动化仓库植入与软件包污染 公开资料称 6 小时内对 5561 个 GitHub 项目发起 5718 次恶意代码植入。
2026-05-19 AntV / GitHub Actions / VSCode 扩展波次 @antv/* npm 包、actions-cool/* GitHub Actions、nrwl.angular-console v18.95.0;Bun 二阶段、GitHub orphan commit payload、kitty 后门 开发者工具链攻击同时覆盖 npm、GitHub Actions 和 VSCode 扩展。
2026-05-19 15:08 至 15:16 durabletask GitHub 侧活动 攻击者访问 microsoft/durabletask-python,从 GitHub secrets 获取 PyPI token 为后续 PyPI 直发恶意包奠定条件。
2026-05-19 PyPI durabletask 1.4.1/1.4.2/1.4.3 被投毒 rope.pyz 、AWS SSM 传播、K8s 横向、密码管理器暴力解锁、shell history 窃取 Microsoft Durable Task Python SDK 受影响;payload 演进自 guardrails-ai / Mini Shai-Hulud 变种。
2026-05-21 前后 GitHub / Grafana 泄露追溯到 TanStack / Nx Console 链路 GitHub 员工安装恶意 Nx Console 扩展导致凭据被窃;Grafana 也追溯到 TanStack npm 供应链攻击 GitHub 约 3,800 个私有仓库被外传;Grafana 代码库被窃并遭勒索。
2026-06-01 Red Hat / Miasma 披露 至少 32 个 @redhat-cloud-services/* 包出现未授权修改;新增 Azure / GCP 云身份收集器 平均周下载量约 8 万;归因上应表述为 TTP 重叠,不能排除 copycat。
2026-06-01 10:53 / 13:44 Red Hat 账号被用于推送恶意 orphan commits frontend-components 、javascript-clients、platform-frontend-ai-toolkit;oidc-* 分支;id-token: write workflow 恶意 workflow 请求 OIDC token 并发布带有效 provenance 的 npm 包。
2026-06-04 09:20 Miasma 新波次更新 binding.gyp 武器化,在安装阶段触发恶意代码 延续 Mini Shai-Hulud / Miasma 技术路线。
2026-06-05 16:00:50 至 16:02:35 GitHub 禁用 73 个 Microsoft 相关仓库 涉及 Azure、Azure-Samples、microsoft、MicrosoftDocs 四个组织;Azure/functions-action 等导致下游 CI/CD 中断 该事件与 Miasma / durabletask 的关系仍属公开迹象下的关联研判,暂不作为确认归因。
2026-06-06 Microsoft 仓库禁用事件公开分析 Phoenix Security 等将 durabletask 复合风险、Miasma Azure/GCP collector 与 GitHub 自动执法行为并列讨论 适合作为 TeamPCP 技术路线外溢和自动化治理风险的后续观察。

共性结论

共性 说明
源码与发布包不一致 LiteLLM、Telnyx、Lightning、durabletask  均显示 GitHub 源码干净不代表 PyPI 包安全。
浮动引用风险高 GitHub   Action tag、Docker tag、npm   semver、VSCode 扩展自动更新都可能被攻击者利用。
CI   Runner 是高价值目标 Runner  同时接触源码、secret、发布权限和云环境,是多起攻击的凭据收集核心。
合法平台被滥用 GitHub、Docker   Hub、npm、PyPI、OpenVSX、Jenkins、Session  网络均被用于执行或外传。
凭据驱动扩散 攻击者拿到发布 token、PAT、OIDC   token 后,可迅速进入更多包、仓库和云环境。
公开工具链催化复制 Shai-Hulud   / Mini Shai-Hulud 公开后,Miasma、Megalodon  等后续活动显示第三方可快速复用攻击模板。

TeamPCP 的每一次事件都在说明:现代供应链安全的薄弱点不只在代码漏洞,而在自动化构建、发布和信任分发的全过程。

06|典型事件深度复盘

1. 生态影响矩阵

生态 / 渠道 代表事件 主要风险点 企业排查重点
GitHub Actions Trivy、KICS、TanStack、Red Hat / Miasma、Microsoft Azure repos tag 覆盖、恶意 workflow、pull_request_target 误用、cache poisoning、Runner 内存提取、OIDC token 滥用、仓库禁用导致、仓库禁用导致 CI/CD 中断 CI/CD 中断 workflow 权限、Action 引用方式、cache 来源、id-token: write 使用范围、异常 release / tag、依赖 Azure/functions-action 等第三方 Action 的流水线
npm CanisterWorm、Bitwarden CLI、SAP、TanStack、AntV、Red Hat、UiPath、Mistral preinstall postinstall prepare 自动执行、发布 token 滥用、trusted publishing 边界不清、自传播 lockfile、生命周期脚本、异常 patch 版本、scope 发布记录、maintainer token 权限
PyPI LiteLLM、Telnyx、Lightning、durabletask、guardrails-ai、mistralai wheel 与源码不一致、.pth 自动执行、模块导入触发、PyPI 凭据被滥用、恶意 payload、恶意 payload 横向到云与 横向到云与 K8s K8s wheel/sdist 与 Git tag 比对、.pth 文件、短时发布版本、pip install 构建日志、PyPI token 存放位置
Docker Hub / 镜像仓库 Trivy、KICS 浮动 tag 被覆盖、镜像 digest 与源码构建不一致、私有缓存保留恶意镜像 digest pinning、镜像 provenance、pull-through cache、CI runner 本地镜像缓存
OpenVSX VS Code Jenkins Checkmarx 插件、Nx Console、Jenkins AST Scanner 插件激活即执行、IDE/CI 插件接触开发者凭据和源码 插件版本、下载来源、自动更新策略、开发者机器扩展缓存
云环境 AWS、GCP、Azure、Kubernetes、Vault CI/CD 或开发者凭据被盗后进行资源枚举、secret 读取和横向移动;Miasma durabletask 增强云身份收集与传播能力;Miasma durabletask 增强云身份收集与传播能力 CloudTrail、K8s audit、Vault audit、Secrets Manager 访问、ECS K8s 异常操作、Azure CLI managed identity 访问记录、Azure CLI / managed identity 访问记录
AI / LLM 工具链 LiteLLM、Mistral、guardrails-ai、Lightning、Azure AI samples、Azure AI samples、Claude Code hook AI 工具常连接多个模型 API、Agent/MCP 工具运行在高权限开发环境 模型 API key、Agent 配置、MCP 服务依赖、.claude/ 与 .vscode/ 自动执行配置

2. 影响面归纳

层面 风险表现
开发者终端 SSH key、GitHub token、npm/PyPI token、云 CLI 配置、浏览器凭据和 1Password / Vault 等本地会话可能被窃取。
CI/CD 流水线 Runner 内存、OIDC token、deployment secret、registry token 成为核心目标;第三方 Action 下架或禁用还可能造成构建中断。
包发布链 被盗 token、trusted publisher 或 GitHub secrets 或 GitHub secrets 可导致合法包发布恶意版本。
镜像与插件分发链 浮动 tag、VSCode 扩展、Jenkins 插件和私有缓存可能让恶意制品在短窗口后继续存在。
云原生环境 K8s Service Account、Vault token、Secrets Manager、ECS SSM managed identity SSM managed identity 成为横向移动入口。
地下变现链路 被盗源码、仓库访问、云凭据和发布权限可被作为地下市场商品继续交易。

3. 生态级启示

TeamPCP 说明供应链攻击已从“依赖风险”扩大为“构建发布基础设施风险”。企业若只做传统 SCA 扫描,而不审计 CI/CD、发布权限、OIDC、缓存、插件市场、镜像 provenance 和开发者终端,就难以有效防御此类攻击。

07|受影响生态系统全景

1. 检测与狩猎重点

方向 重点检查项 关联风险
GitHub Actions pull_request_target 、id-token: write、浮动 Action 引用、异常 cache、/proc/*/mem、Runner.Worker、异常 orphan commit / workflow Pwn Request、cache poisoning、OIDC token 窃取、发布链绕过
npm / PyPI lockfile、生命周期脚本、.pth 文件、wheel 与 Git tag 差异、短时恶意版本、binding.gyp / Bun loader 安装即执行、发布链绕过、自传播
Docker / Registry Trivy / KICS 相关 tag、镜像 digest、pull-through cache、CI runner 本地镜像 浮动 tag 被覆盖、恶意镜像缓存残留
开发者终端 sysmon 、pgmon、gh-token-monitor、kitty-monitor、.vscode/、.claude/、LaunchAgent 持久化、IDE hook、凭据二次窃取
网络外联 scan.aquasecurtiy.org 、checkmarx.zone、models.litellm.cloud、git-tanstack.com、*.getsession.org、*.raw.icp0.io、check.git-service.com、m-kosche.com C2、dead drop、数据外传
云与 K8s AWS IAM EC2 Lambda S3 Secrets Manager / ECS、K8s nodes、Vault token 云凭据验证、资源枚举、横向移动
发布链 npm/PyPI/Docker Hub 发布历史、异常 patch 版本、无对应 Git tag 的版本、发布者身份变化 发布权限被滥用
插件市场 OpenVSX、VS Code Marketplace、Jenkins 插件版本与来源 IDE / CI 插件投毒

2. 关键狩猎线索

场景 具体线索
Trivy / Aqua 检查 trivy-action 的 Run Trivy step、setup-trivy 的 Setup environment step;排查是否执行过 Trivy v0.69.4 或拉取过 0.69.5/0.69.6 镜像。
KICS / Checkmarx 检查 2026-03-23 的 KICS / AST GitHub Action 运行记录,以及 2026-04-22 KICS Docker Hub 镜像拉取记录。关注 audit.checkmarx.cx 与 KICS-Telemetry/2.0。
LiteLLM 检查 litellm==1.82.7/1.82.8、litellm_init.pth、异常 Python 启动执行逻辑和外联。
Telnyx 检查 telnyx==4.87.1/4.87.2、telnyx/_client.py 异常代码、WAV 下载与 Windows Startup 目录。
Lightning 检查 lightning==2.6.2/2.6.3、router_runtime.js、start.py、import lightning 后的后台线程和 Bun 下载行为。
TanStack 搜索 github:tanstack/router#79ac49eedf774dd4b0cfa308722bc463cfe5885c、router_init.js、litter.catbox.moe、Session 网络连接和 poisoned cache key。
CanisterSprawl 搜索 telemetry.api-monitor.com、cjn37-uyaaa-aaaac-qgnva-cai.raw.icp0.io/drop、X-Session-ID、X-Request-Signature。
AntV / Nx Console 检查 @antv/* 可疑版本、actions-cool/maintain-one-comment、actions-cool/issues-helper、nrwl.angular-console v18.95.0、~/.local/share/kitty/cat.py、kitty-monitor、firedalazer。
durabletask 检查 durabletask==1.4.1/1.4.2/1.4.3、/tmp/managed.pyz、/tmp/rope-*.pyz、~/.cache/.sys-update-check、~/.cache/.sys-update-check-k8s、AWS SSM / K8s 横向行为。
Red Hat / Miasma 检查 @redhat-cloud-services/* 受影响版本、异常 preinstall / binding.gyp、_index.js、描述为 Miasma: The Spreading Blight 的 GitHub 仓库。
GitHub Grafana Microsoft 检查 Nx Console 扩展暴露、异常 GitHub CLI 凭据使用、私有仓库批量访问、Azure/functions-action 等第三方 Action 是否因上游仓库禁用导致 CI/CD 中断。
GitHub 组织 检查 tpcp-docs、docs-tpcp、Dune 主题仓库、Checkmarx Configuration Storage、Shai-Hulud: Here We Go Again、Miasma: The Spreading Blight、PUSH UR T3MPRR。

3. 应急处置优先级

优先级 动作
立即隔离 对确认安装或执行过恶意版本的开发机、CI runner、构建容器进行隔离,避免继续使用原环境构建或发布。
保留证据 保存安装日志、CI 日志、网络连接、进程列表、可疑文件、云审计日志和包/镜像缓存。
轮换凭据 轮换 GitHub、npm、PyPI、Docker Hub、AWS、GCP、Azure、Kubernetes、Vault、SSH、数据库密码等可能暴露的凭据。
重建环境 对自托管 CI runner、受影响开发机和构建镜像,优先从干净基线重建。
清理持久化 排查并清理 sysmon、pgmon、gh-token-monitor、.pth、LaunchAgent、IDE hook。
审计发布链 检查是否有攻击者利用被盗 token 发布更多包、镜像或插件。

4. 长期加固清单

领域 加固建议
GitHub Actions 禁止在 pull_request_target 中执行 fork 代码;Action 固定到 full SHA;最小化 GITHUB_TOKEN 权限;仅在真实发布 job 中启用 id-token: write;隔离 PR cache 与发布 cache。
npm / PyPI 启用 2FA;使用细粒度 token 或 Trusted Publishing;限制 token 可发布范围;使用 hash pinning;比对 npm tarball / PyPI wheel 与 Git tag。
Docker / 镜像 避免 latest;使用 digest pinning;启用镜像签名、SBOM、provenance;清理私有代理中的恶意 digest。
开发者终端 对 .ssh、.npmrc、.pypirc、Docker config、云 CLI 配置做访问监控;避免长期 token 落盘;IDE 插件使用 allowlist。
云与 K8s 使用短期凭据;最小化 IAM Service Account 权限;限制 Secrets Manager Vault 批量读取;监控 kube-system 高权限 Pod。
发布权限 维护者最小化;发布账号与日常开发账号分离;受保护环境和多人审批;发布动作可审计;硬件安全密钥保护高权限账号。
监控告警 包发布后新增生命周期脚本、GitHub tag force-push、CI 访问陌生域名、无对应 Git tag 的发布版本、异常 release asset、新建可疑仓库。
治理流程 建立供应链事件暴露面分析、密钥一键轮换、runner 重建、私有依赖代理阻断、SBOM / provenance 校验等能力。

5. 建设目标

防御 TeamPCP 类攻击的关键不是阻止使用开源组件,而是让开源组件进入企业环境前具备可验证的来源、可追溯的构建过程、可控制的发布权限和可快速响应的凭据治理能力。

08|总结与趋势研判

1. TeamPCP 代表了供应链攻击的新阶段

TeamPCP 的一系列事件说明,供应链攻击正在从“投放恶意依赖”进入“控制构建与发布基础设施”的新阶段。攻击者不再满足于注册 typosquat 包或提交恶意 PR,而是直接瞄准 GitHub Actions、npm/PyPI 发布权限、Docker Hub tag、OpenVSX 插件、CI Runner 内存和云端 secret。

这类攻击的最大危险在于:它利用的是开发体系本身的自动化信任。一旦攻击者控制某个构建或发布节点,恶意代码就会被下游系统主动拉取、执行和信任。

2. 几个关键趋势

2.1 攻击目标从生产系统前移到研发系统

过去,攻击者常直接攻击生产服务器或业务应用。TeamPCP 则表明,研发系统已经成为更高价值的目标:

  • 开发者机器中有 SSH key、GitHub token、云 CLI 配置。
  • CI Runner 中有部署权限、registry token、OIDC token。
  • 包发布账号可以影响成千上万下游用户。
  • 安全扫描工具本身常运行在高权限环境中。

攻击研发系统,相当于攻击软件进入生产环境前的“源头”。

2.2 OIDC 与短期凭据成为新攻击面

企业正在减少长期 token,转向 OIDC trusted publishing 和云身份联合。这本来是安全进步,但 TanStack 事件证明:

  • 短期 token 仍然可能在运行时被窃取。
  • 只要恶意代码能在具备 id-token: write 的 runner 中执行,就可能获取临时身份。
  • OIDC 的安全性取决于 workflow trust boundary 是否设计正确。

未来攻击者会更关注 runner 内存、OIDC token、workload identity 和 federation 配置。

2.3 自传播蠕虫回到开源生态

CanisterWorm 与 Mini Shai-Hulud 显示,供应链蠕虫正在回归:

  1. 获取 registry token。
  2. 枚举维护者可发布包。
  3. 注入恶意脚本。
  4. 自动发布新版本。
  5. 下游安装后继续传播。

与传统蠕虫不同,这类蠕虫传播路径不是网络漏洞,而是包管理器和维护者权限。

2.4 合法平台被用作 C2 与外传通道

TeamPCP 大量滥用合法平台:

  • GitHub 仓库与 release asset
  • GitHub commit / dead drop
  • Cloudflare Tunnel
  • ICP Canister
  • Session messenger network
  • OpenVSX npm PyPI / Docker Hub

2.5 AI 与开发者工具链成为高价值入口

LiteLLM、Mistral、guardrails-ai、Lightning、Claude Code / VS Code hook 等线索说明,AI 开发工具链正在成为供应链攻击的新热点。原因很直接:

  • AI 工具常连接多个模型服务和 API key。
  • Agent MCP LLM 编排工具往往运行在开发者高权限环境。
  • AI 相关包迭代快,依赖复杂,安全审计滞后。
  • 企业在快速引入 AI 工具时可能忽略发布链安全。

3. 对企业的启示

3.1 SCA 不等于供应链安全

传统 SCA 主要识别已知漏洞和恶意包,但 TeamPCP 攻击的是:

  • workflow 配置
  • 发布权限
  • registry token
  • runner cache
  • OIDC token
  • Docker tag
  • IDE 插件
  • wheel 与源码差异

因此,企业需要从“依赖扫描”升级为“构建发布全链路安全”。

3.2 CI/CD 是核心安全边界

CI/CD 不应被视为普通自动化脚本,而应视为生产级安全边界。它通常拥有:

  • 源码访问权
  • secret 访问权
  • 发布权
  • 部署权
  • 云资源操作权

任何在 CI 中执行的第三方代码,都应按高风险处理。

3.3 发布链需要可验证

未来更可靠的供应链应具备:

  • 可验证源码来源
  • 可验证构建过程
  • 可验证发布身份
  • 可验证包内容
  • 可撤销和可追踪的发布权限

SBOM、SLSA、Sigstore、cosign、npm provenance、PyPI Trusted Publishing 等机制会越来越重要,但它们必须与 workflow 隔离、最小权限和人工审批结合使用。

4. 对开源维护者的启示

开源维护者需要重新审视几个问题:

  1. 发布 token 是否长期有效?
  2. 有多少维护者拥有同等发布权限?
  3. 是否使用浮动 GitHub Action?
  4. 是否允许 fork PR 触发危险 workflow?
  5. 发布包是否自动比对源码 tag?
  6. 是否监控异常版本发布?
  7. 是否能在 30 分钟内撤回恶意版本并通知用户?

TeamPCP 事件中,多数项目响应速度很快,但也暴露出一个现实:即使窗口只有几十分钟,全球自动化构建系统也可能已经拉取并执行了恶意版本。

5. 对安全团队的启示

安全团队应重点补齐以下能力:

  • 供应链事件快速暴露面分析。
  • GitHub Actions 配置审计。
  • registry 发布监控。
  • CI Runner 网络与进程行为监控。
  • 云凭据异常使用检测。
  • 开发者终端持久化检查。
  • 统一密钥轮换流程。
  • 私有依赖代理与恶意版本阻断。

未来供应链事件处置的关键不是“是否知道 IOC”,而是“能否快速判断自己是否执行过恶意代码,以及哪些凭据可能泄露”。

6. 文章结论

TeamPCP 不是一次单点攻击,而是一场围绕现代软件供应链展开的连续战役。它把开发者工具、CI/CD、包管理器、云凭据、GitHub Actions 和 AI 工具链串成一条可被攻击者利用的路径。

从 Trivy 到 KICS,从 LiteLLM 到 Telnyx,从 Bitwarden 到 TanStack,TeamPCP 的演进轨迹越来越清晰:

  • 初期依赖被盗凭据和 tag 覆盖。
  • 中期形成 CanisterWorm 式 npm 自传播。
  • 后期组合 cache poisoning、OIDC token 窃取、Session 网络、IDE hook 和 GitHub dead drop。

这说明供应链攻击正在进入更体系化、更自动化、更隐蔽的阶段。对于企业和开源社区而言,真正的防御重点不只是“不要安装恶意包”,而是要重新设计软件从源码到构建、发布、部署、运行的信任链。

09|参考资料与链接

类别 名称 链接
Wiz Trivy Compromised by TeamPCP https://www.wiz.io/blog/trivy-compromised-teampcp-supply-chain-attack
Wiz KICS GitHub Action Compromised: TeamPCP Supply Chain Attack https://www.wiz.io/blog/teampcp-attack-kics-github-action
Wiz LiteLLM TeamPCP Supply Chain Attack: Malicious PyPI Packages https://www.wiz.io/blog/threes-a-crowd-teampcp-trojanizes-litellm-in-continuation-of-campaign
Wiz Supply Chain Campaign Targets SAP npm Packages with Credential-Stealing Malware https://www.wiz.io/blog/mini-shai-hulud-supply-chain-sap-npm
Wiz Mini Shai-Hulud Strikes Again: TanStack + more npm Packages Compromised https://www.wiz.io/blog/mini-shai-hulud-strikes-again-tanstack-more-npm-packages-compromised
Socket.dev CanisterWorm: npm Publisher Compromise Deploys Backdoor Across 29+ Packages https://socket.dev/blog/canisterworm-npm-publisher-compromise-deploys-backdoor-across-29-packages
Socket.dev Namastex.ai npm Packages Hit with TeamPCP-Style CanisterWorm Malware https://socket.dev/blog/namastex-npm-packages-compromised-canisterworm
Docker Trivy, KICS, and the shape of supply chain attacks so far in 2026 https://www.docker.com/blog/trivy-kics-and-the-shape-of-supply-chain-attacks-so-far-in-2026/
LiteLLM Security Update: Suspected Supply Chain Incident https://docs.litellm.ai/blog/security-update-march-2026
GitHub Issue LiteLLM Issue #24512 https://github.com/BerriAI/litellm/issues/24512
GitHub Issue Telnyx Python SDK Issue #235 https://github.com/team-telnyx/telnyx-python/issues/235
Checkmarx Ongoing Checkmarx Supply Chain Security Incident https://checkmarx.com/blog/ongoing-security-updates/
Bitwarden Bitwarden Statement on Checkmarx Supply Chain Incident https://community.bitwarden.com/t/bitwarden-statement-on-checkmarx-supply-chain-incident/96127
GitHub Issue Bitwarden CLI Issue #20353 https://github.com/bitwarden/clients/issues/20353
Lightning AI PyTorch Lightning Supply Chain Attack https://lightning.ai/blog/pytorch-lightning-supply-chain-attack
TanStack Postmortem: TanStack npm supply-chain compromise https://tanstack.com/blog/npm-supply-chain-compromise-postmortem
Rami McCarthy Incident Timeline: TeamPCP Supply Chain Campaign https://ramimac.me/teampcp/

10|IOC 指标汇总

本章汇总公开资料中的主要 IOC,便于安全团队按网络、文件、包版本、哈希和行为特征进行排查。

1. 网络与外联指标

指标 类型 关联事件
scan.aquasecurtiy[.]org C2 / typosquat 域名 Trivy
45.148.10.212 IP Trivy C2
tdtqy-oyaaa-aaaae-af2dq-cai.raw.icp0.io ICP Canister C2 Trivy / CanisterWorm
tdtqy-oyaaa-aaaae-af2dq-cai ICP Canister ID CanisterWorm
plug-tab-protective-relay.trycloudflare.com Cloudflare Tunnel Aqua 凭据外传
checkmarx[.]zone C2 / 外传域名 KICS / LiteLLM
83.142.209.11 IP checkmarx[.]zone
models.litellm[.]cloud 外传域名 LiteLLM
83.142.209.203 IP Telnyx
83.142.209.203:8080/ringtone.wav Payload URL Telnyx Linux/macOS
83.142.209.203:8080/hangup.wav Payload URL Telnyx Windows
audit.checkmarx[.]cx 外传域名 KICS Docker Hub
checkmarx.cx 域名 Checkmarx 后续公告
updates.checkmarx.cx 域名 Checkmarx 后续公告
91.195.240.123 IP Checkmarx 后续公告
94.154.172.43 IP Checkmarx / Mini Shai-Hulud
94.154.172.183 IP Checkmarx 后续公告
zero.masscan.cloud 域名 Mini Shai-Hulud
telemetry.api-monitor[.]com 域名 Namastex / CanisterSprawl
cjn37-uyaaa-aaaac-qgnva-cai.raw.icp0[.]io/drop ICP C2 Namastex / CanisterSprawl
git-tanstack[.]com C2 / typosquat 域名 TanStack / Mini Shai-Hulud
git-tanstack[.]com/tmp/transformers.pyz PyPI 变种载荷 URL Mistral / guardrails-ai
https://litter.catbox.moe/h8nc9u.js 二阶段载荷 URL TanStack
https://litter.catbox.moe/7rrc6l.mjs 二阶段载荷 URL TanStack
filev2.getsession.org Session 文件服务器 TanStack
seed1.getsession.org Session seed TanStack
seed2.getsession.org Session seed TanStack
seed3.getsession.org Session seed TanStack
83.142.209[.]194 IP TanStack Python 变种

2. 文件、路径与持久化指标

路径 / 文件 关联事件 说明
tpcp.tar.gz 多事件 被盗数据归档名
~/.config/systemd/user/sysmon.py Trivy 持久化脚本
~/.config/systemd/user/sysmon.service Trivy / KICS systemd 用户服务
/root/.config/sysmon/sysmon.py KICS / K8s 节点后门
/root/.config/systemd/user/sysmon.service KICS / K8s 节点持久化服务
/tmp/pglog Trivy / CanisterWorm 下载执行路径
/tmp/.pg_state CanisterWorm 状态文件
~/.local/share/pgmon/service.py CanisterWorm Python dropper
~/.config/systemd/user/pgmon.service CanisterWorm systemd 用户服务
litellm_init.pth LiteLLM Python 启动自动执行
p.py LiteLLM 写入磁盘的 payload
telnyx/_client.py Telnyx 被注入恶意代码
%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\msbuild.exe Telnyx Windows 持久化
setup.mjs Mini Shai-Hulud Bun 下载器
execution.js Mini Shai-Hulud 主 payload
.claude/execution.js Mini Shai-Hulud Claude Code 持久化
.claude/setup.mjs Mini Shai-Hulud Claude Code 下载器
.claude/settings.json Mini Shai-Hulud SessionStart hook
.vscode/tasks.json Mini Shai-Hulud VS Code folderOpen 触发
.vscode/setup.mjs Mini Shai-Hulud VS Code 下载器
router_init.js TanStack 约 2.3MB 混淆 payload
router_runtime.js TanStack / Lightning 运行时 artifact
tanstack_runner.js TanStack 运行时 artifact
start.py Lightning 恶意 Python 入口文件
~/Library/LaunchAgents/com.user.gh-token-monitor.plist TanStack macOS 持久化
~/.config/systemd/user/gh-token-monitor.service TanStack Linux 持久化

3. 仓库、GitHub 与工作流指标

指标 说明
tpcp-docs Trivy 备用外传仓库名
docs-tpcp KICS 备用外传仓库名
zblgg/configuration TanStack 攻击者 fork
github:tanstack/router#79ac49eedf774dd4b0cfa308722bc463cfe5885c TanStack 恶意 Git dependency
65bf499d16a5e8d25ba95d69ec9790a6dd4a1f14 TanStack fork 恶意 commit
claude <[email protected]> TanStack forged commit identity
beautifulcastle GitHub 搜索回退关键词
OhNoWhatsGoingOnWithGitHub GitHub token 回退提交前缀
Shai-Hulud: Here We Go Again TanStack dead drop 仓库描述
Checkmarx Configuration Storage Mini Shai-Hulud 外传仓库描述
PUSH UR T3MPRR Python 变种 GitHub fallback 仓库描述
Linux-pnpm-store-6f9233a50def742c09fde54f56553d6b449a535adf87d4083690539f49ae4da11 TanStack poisoned cache key
25613093674 TanStack 恶意发布相关 workflow run
25691781302 TanStack 恶意发布相关 workflow run
05f9e609d79eed391015e11380dee4b5c9ead0b6e2e7f0134e6e51767a87323026 TanStack Session recipient ID

4. 恶意包、版本与分发渠道

Trivy / Aqua

  • Trivy v0.69.4
  • Trivy Docker 镜像 0.69.5、0.69.6
  • 恶意制品分发渠道包括 GitHub Releases、Docker Hub、GHCR、ECR
  • trivy-action

多数历史 tag 被覆盖
* setup-trivy

7 个 tag 被覆盖

CanisterWorm

  • @emilgroup/account-sdk

1.41.1、1.41.2
* @emilgroup/account-sdk-node

1.40.1、1.40.2
* @emilgroup/billing-sdk

1.56.1、1.56.2
* @emilgroup/insurance-sdk

1.97.1、1.97.2
* @teale.io/eslint-config

1.8.9、1.8.10

KICS / Checkmarx

  • KICS GitHub Action:v1、v1.0、v1.1、v1.2–v1.7.0、v2、v2.0.0、v2.1.0–v2.1.20
  • OpenVSX:ast-results v2.53.0
  • OpenVSX:cx-dev-assist v1.7.0
  • ast-github-action

至少 2.3.28,后续公告中还出现 2.3.35
* KICS Docker Hub:latest、alpine、debian、v2.1.20、v2.1.20-debian、v2.1.21、v2.1.21-debian
* Jenkins:checkmarx-ast-scanner-2026.5.09

LiteLLM / Telnyx / Bitwarden

  • litellm==1.82.7
  • litellm==1.82.8
  • telnyx==4.87.1
  • telnyx==4.87.2
  • @bitwarden/[email protected]

Mini Shai-Hulud / SAP / Lightning / Intercom

Namastex / CanisterSprawl

  • @automagik/genie

4.260421.33 至 4.260421.39
* pgserve

1.1.11、1.1.12、1.1.13
* @fairwords/websocket

1.0.38、1.0.39
* @fairwords/loopback-connector-es

1.4.3、1.4.4
* @openwebconcept/[email protected]
* @openwebconcept/[email protected]

TanStack / May 2026

、1.161.12
* @tanstack/[email protected]

、1.169.8
* @tanstack/[email protected]

、1.169.8
* @tanstack/[email protected]

、1.166.49
* 共 42 个 @tanstack/* 包、84 个版本

其他受影响包

  • @uipath/*

多个包
* @mistralai/mistralai

2.2.2、2.2.3、2.2.4
* [email protected]
* [email protected]
* 以及 @squawk/*、@tallyui/*、cmux-agent-mcp、nextmove-mcp 等多个包

5. 文件哈希与镜像 Digest

LiteLLM

  • litellm_init.pth

RECORD SHA256:ceNa7wMJnNHy1kRnNCcwJaFjWX3pORLfMh7xGL8TUjg

Telnyx

  • telnyx-4.87.1-py3-none-any.whl

SHA256:7321caa303fe96ded0492c747d2f353c4f7d17185656fe292ab0a59e2bd0b8d9
* telnyx-4.87.2-py3-none-any.whl

SHA256:cd08115806662469bbedec4b03f8427b97c8a4b3bc1442dc18b72b4e19395fe3

KICS / OpenVSX

  • ast-results-2.53.0.vsix

SHA256:65bd72fcddaf938cefdf55b3323ad29f649a65d4ddd6aea09afa974dfc7f105d
* cx-dev-assist-1.7.0.vsix

SHA256:744c9d61b66bcd2bb5474d9afeee6c00bb7e0cd32535781da188b80eb59383e0
* checkmarx-util-1.0.4.tgz

SHA256:0d66d8c7e02574ff0d3443de0585af19c903d12466d88573ed82ec788655975c
* environmentAuthChecker.js

SHA256:527f795a201a6bc114394c4cfd1c74dce97381989f51a4661aafbc93a4439e90

KICS Docker Hub

alpine / v2.1.20 / v2.1.21:

  • Index manifest digest:sha256:2588a44890263a8185bd5d9fadb6bc9220b60245dbcbc4da35e1b62a6f8c230d
  • amd64 image digest:sha256:d186161ae8e33cd7702dd2a6c0337deb14e2b178542d232129c0da64b1af06e4
  • arm64 image digest:sha256:415610a42c5b51347709e315f5efb6fffa588b6ebc1b95b24abf28088347791b

debian / v2.1.20-debian / v2.1.21-debian:

  • Index manifest digest:sha256:222e6bfed0f3bb1937bf5e719a2342871ccd683ff1c0cb967c8e31ea58beaf7b
  • amd64 image digest:sha256:a6871deb0480e1205c1daff10cedf4e60ad951605fd1a4efaca0a9c54d56d1cb
  • arm64 image digest:sha256:ff7b0f114f87c67402dfc2459bb3d8954dd88e537b0e459482c04cffa26c1f07

latest:

  • Index manifest digest:sha256:a0d9366f6f0166dcbf92fcdc98e1a03d2e6210e8d7e8573f74d50849130651a0
  • amd64 image digest:sha256:26e8e9c5e53c972997a278ca6e12708b8788b70575ca013fd30bfda34ab5f48f
  • arm64 image digest:sha256:7391b531a07fccbbeaf59a488e1376cfe5b27aef757430a36d6d3a087c610322

Checkmarx Jenkins 插件

  • checkmarx-ast-scanner-2026.5.09.hpi

SHA256:01ff1e56fd59a8fa525d97e670f7f297a1a204331b89b2cd4e36a9abc6419203
* checkmarx-ast-scanner-2026.5.09.jar

SHA256:f50a96d26a5b0beb29de4127e82b2bf350c21511e5a43d286e43f798dc6cd53f
* checkmarx-ast-scanner-2026.5.09.pom

SHA256:3ddb8967919a801b3c383e58cddceab21138134c6a26560d99e2672e86f36f2a

Lightning

  • router_runtime.js

SHA256:5f5852b5f604369945118937b058e49064612ac69826e0adadca39a357dfb5b1
* start.py

SHA256:8046a11187c135da6959862ff3846e99ad15462d2ec8a2f77a30ad53ebd5dcf2

TanStack

  • router_init.js

SHA256:ab4fcadaec49c03278063dd269ea5eef82d24f2124a8e15d7b90f2fa8601266c
* router_init.js

SHA256:2ec78d556d696e208927cc503d48e4b5eb56b31abc2870c2ed2e98d6be27fc96
* setup.mjs

SHA256:2258284d65f63829bd67eaba01ef6f1ada2f593f9bbe41678b2df360bd90d3df

6. 行为指标

  • GitHub Actions 日志中出现异常读取 /proc/*/mem。
  • Runner 中出现 tpcp.tar.gz。
  • GitHub 账号下异常创建 tpcp-docs、docs-tpcp 或 Dune 主题仓库。
  • npm 包 manifest 中出现异常 preinstall、postinstall、prepare。
  • optionalDependencies

指向陌生 GitHub commit。
* PyPI wheel 中出现仓库源码没有的 .pth 文件。
* 系统出现 pgmon、sysmon、gh-token-monitor 用户服务。
* CI 运行时访问 checkmarx[.]zone、git-tanstack[.]com、*.getsession.org。
* Docker / CI 出站流量中出现 KICS-Telemetry/2.0 User-Agent。
* import lightning

后出现异常后台线程、Bun 下载或大型混淆 JavaScript 执行。
* 浏览器凭据、钱包目录、Vault 配置、Kubernetes Service Account token 被异常读取。

END

更多精彩内容点击下方扫码关注哦~

关注云鼎实验室,获取更多安全情报


投毒即服务:TeamPCP如何引爆AI时代供应链危机" 网络安全文章

投毒即服务:TeamPCP如何引爆AI时代供应链危机"

TeamPCP是一个自2025年下半年活跃的AI驱动供应链攻击组织,其攻击横跨npm、PyPI、DockerHub等10+分发渠道,通过窃取凭据劫持发布权限进行供应链投毒。该组织利用AnthropicClaude、GPT-4o等AI工具生成恶意代码,使武器迭代周期缩短至2-3周,并开源核心框架引发第三方变种扩散,首次实战击穿SLSABuildLevel3可信发布标准,对开源供应链安全构成严重威胁。
关注|公安部召开新闻发布会,通报当前电信网络诈骗犯罪的新形势新特点" 网络安全文章

关注|公安部召开新闻发布会,通报当前电信网络诈骗犯罪的新形势新特点"

公安部通报当前电信网络诈骗呈现刷单返利(占25%)、虚假网络投资理财(占损失40%)等10类高发手法,占全部案件85%。新变化包括通过网络平台寻找目标、使用小众通联软件洗脑、诱导下载诈骗APP盗刷、诱骗购买贵重物品转移资金。警方提示需警惕96110预警并配合劝阻,6月启动`全民反诈在行动`宣传月活动。
评论:0   参与:  0