首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >投毒即服务:TeamPCP如何引爆AI时代供应链危机

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

作者头像
云鼎实验室
发布2026-06-15 09:44:46
发布2026-06-15 09:44:46
1430
举报

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 邮箱地址 claude@users.noreply.github.com。借助 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-docsdocs-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.pypgmon 后门
  • 使用 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、包管理器和云身份机制的系统性理解。

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

类型

技术点

说明

被盗发布令牌

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 恢复并触发恶意执行。

类别

目标

说明

本地开发环境

环境变量、.env、Shell history、SSH key、Git 凭据

攻击者重点寻找长期有效 token 与本地私钥。

包管理器

.npmrc、PyPI/Twine 配置、registry token

可用于重新发布恶意包,扩大供应链影响面。

容器与 CI/CD

Docker config、GitHub Actions secrets、Runner 内存

多起事件读取 /proc/<pid>/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 等

后期变种开始扩展到浏览器凭据和加密钱包数据。

能力

技术实现

风险

自传播

读取 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.14.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.orgseed1/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[.]orgmodels.litellm[.]cloudgit-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/cli@2026.4.0 被投毒

影响窗口期通过 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 范围更新

新增 intercom-client@7.0.5 与 PyPI lightning@2.6.2/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 同步投毒;guardrails-ai@0.10.1、mistralai@2.4.6 等

显示 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. 关键狩猎线索

代码语言:javascript
复制
检查 trivy-action 的 Run Trivy step、setup-trivy 的 Setup environment step;排查是否执行过 Trivy v0.69.4 或拉取过 0.69.5/0.69.6 镜像。

3. 应急处置优先级

代码语言:javascript
复制
对确认安装或执行过恶意版本的开发机、CI runner、构建容器进行隔离,避免继续使用原环境构建或发布。

4. 长期加固清单

代码语言:javascript
复制
禁止在 pull_request_target 中执行 fork 代码;Action 固定到 full SHA;最小化 GITHUB_TOKEN 权限;仅在真实发布 job 中启用 id-token: write;隔离 PR cache 与发布 cache。

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 与工作流指标

代码语言:javascript
复制
Trivy 备用外传仓库名

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

Trivy / Aqua

  • Trivy v0.69.4
  • Trivy Docker 镜像 0.69.50.69.6
  • 恶意制品分发渠道包括 GitHub Releases、Docker Hub、GHCR、ECR
  • trivy-action 多数历史 tag 被覆盖
  • setup-trivy 7 个 tag 被覆盖

CanisterWorm

  • @emilgroup/account-sdk 1.41.11.41.2
  • @emilgroup/account-sdk-node 1.40.11.40.2
  • @emilgroup/billing-sdk 1.56.11.56.2
  • @emilgroup/insurance-sdk 1.97.11.97.2
  • @teale.io/eslint-config 1.8.91.8.10

KICS / Checkmarx

  • KICS GitHub Action:v1v1.0v1.1v1.2v1.7.0v2v2.0.0v2.1.0v2.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:latestalpinedebianv2.1.20v2.1.20-debianv2.1.21v2.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/cli@2026.4.0

Mini Shai-Hulud / SAP / Lightning / Intercom

  • @cap-js/sqlite@2.2.2
  • @cap-js/postgres@2.2.2
  • @cap-js/db-service@2.10.1
  • mbt@1.2.48
  • intercom-client@7.0.5
  • lightning@2.6.2
  • lightning@2.6.3

Namastex / CanisterSprawl

  • @automagik/genie 4.260421.334.260421.39
  • pgserve 1.1.111.1.121.1.13
  • @fairwords/websocket 1.0.381.0.39
  • @fairwords/loopback-connector-es 1.4.31.4.4
  • @openwebconcept/design-tokens@1.0.3
  • @openwebconcept/theme-owc@1.0.3

TanStack / May 2026

  • @tanstack/history@1.161.91.161.12
  • @tanstack/react-router@1.169.51.169.8
  • @tanstack/router-core@1.169.51.169.8
  • @tanstack/router-cli@1.166.461.166.49
  • 共 42 个 @tanstack/* 包、84 个版本

其他受影响包

  • @uipath/* 多个包
  • @mistralai/mistralai 2.2.22.2.32.2.4
  • mistralai@2.4.6
  • guardrails-ai@0.10.1
  • 以及 @squawk/*@tallyui/*cmux-agent-mcpnextmove-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-docsdocs-tpcp 或 Dune 主题仓库。
  • npm 包 manifest 中出现异常 preinstallpostinstallprepare
  • optionalDependencies 指向陌生 GitHub commit。
  • PyPI wheel 中出现仓库源码没有的 .pth 文件。
  • 系统出现 pgmonsysmongh-token-monitor 用户服务。
  • CI 运行时访问 checkmarx[.]zonegit-tanstack[.]com*.getsession.org
  • Docker / CI 出站流量中出现 KICS-Telemetry/2.0 User-Agent。
  • import lightning 后出现异常后台线程、Bun 下载或大型混淆 JavaScript 执行。
  • 浏览器凭据、钱包目录、Vault 配置、Kubernetes Service Account token 被异常读取。
图片
图片

END

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

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

图片
图片
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-06-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云鼎实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 01 |总览与摘要
  • 核心观点
  • 02|组织介绍
    • 1. TeamPCP 是什么
    • 2. 组织画像
    • 3. 归属证据
    • 3.1 命名与标识复用
    • 3.2 加密材料复用
    • 3.3 基础设施复用
    • 3.4 技术模式复用
  • 4. 与 Shai-Hulud / Mini Shai-Hulud 的关系
  • 5. 访谈材料
  • 03|攻击技战法
  • 1. 攻击链总览
  • 04|攻击武器与基础设施
  • 1. 武器总览
  • 2. TeamPCP Cloud Stealer
  • 3. CanisterWorm
    • 典型行为
    • 主要 IOC
  • 4. sysmon.py 与 systemd 后门
  • 5. LiteLLM .pth 注入
  • 6. Telnyx WAV 隐写投递
  • 7. Mini Shai-Hulud
  • 8. TanStack 变种基础设施
  • 9. 基础设施特点
  • 05|事件时间线
  • 时间线
    • 共性结论
    • 06|典型事件深度复盘
    • 1. 生态影响矩阵
    • 2. 影响面归纳
    • 3. 生态级启示
    • 07|受影响生态系统全景
    • 1. 检测与狩猎重点
    • 2. 关键狩猎线索
    • 3. 应急处置优先级
    • 4. 长期加固清单
    • 5. 建设目标
    • 08|总结与趋势研判
    • 1. TeamPCP 代表了供应链攻击的新阶段
    • 2. 几个关键趋势
      • 2.1 攻击目标从生产系统前移到研发系统
      • 2.2 OIDC 与短期凭据成为新攻击面
      • 2.3 自传播蠕虫回到开源生态
      • 2.4 合法平台被用作 C2 与外传通道
      • 2.5 AI 与开发者工具链成为高价值入口
    • 3. 对企业的启示
      • 3.1 SCA 不等于供应链安全
      • 3.2 CI/CD 是核心安全边界
      • 3.3 发布链需要可验证
    • 4. 对开源维护者的启示
    • 5. 对安全团队的启示
    • 6. 文章结论
    • 09|参考资料与链接
    • 10|IOC 指标汇总
    • 1. 网络与外联指标
    • 2. 文件、路径与持久化指标
    • 3. 仓库、GitHub 与工作流指标
    • 4. 恶意包、版本与分发渠道
      • Trivy / Aqua
      • CanisterWorm
      • KICS / Checkmarx
      • LiteLLM / Telnyx / Bitwarden
      • Mini Shai-Hulud / SAP / Lightning / Intercom
      • Namastex / CanisterSprawl
      • TanStack / May 2026
      • 其他受影响包
    • 5. 文件哈希与镜像 Digest
      • LiteLLM
      • Telnyx
      • KICS / OpenVSX
      • KICS Docker Hub
      • Checkmarx Jenkins 插件
      • Lightning
      • TanStack
    • 6. 行为指标
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档