今天用 pnpm update 更新依赖后,mac 提示添加了新的启动项、背景任务,文件是个 cat.py 文件,让 codex 分析了代码内容,发现是远程执行代码,流程: 1. 静默安装依赖:requests 、cryptography ,失败也尽量隐藏。 2. 每小时访问 GitHub Commit Search API: https://api.github.com/search/commits 。 3. 搜索最新包含 firedalazer 的 commit 。 4. 从 commit message 里解析: firedalazer <base64-url>.<base64-signature> 5. 用脚本内置 RSA 公钥验证签名。也就是说,只有持有对应私钥的人能下发“合法命令”。 6. 解码出 URL ,下载该 URL 返回的 Python 代码。 7. 写入临时 .py 文件并执行: subprocess.run(["python3", temp_path], ...) 8. 把已执行 URL 的 hash 记录到: /var/tmp/.gh_update_state 搜索到类似的一个攻击是 vscode 扩展 nx console 的投毒: https://www.stepsecurity.io/blog/nx-console-vs-code-extension-compromised 但我这是 npm ,告诉 codex 是执行 pnpm 操作后发生的,它查了相关日志,最终锁定是一个叫做 @ antv /setup 的包有问题: 你的项目 package.json └── @antv/g6 ^4.8.24 └── @antv/g6 4.8.25 └── @antv/g6-pc 0.8.25 ├── @antv/dom-util 2.2.4 │ └── optionalDependencies: @antv/setup ├── @antv/matrix-util 3.2.4 │ └── optionalDependencies: @antv/setup └── @antv/layout / @antv/util 分支 └── @antv/util 3.5.11 └── optionalDependencies: @antv/setup @ antv /setup: github:antvis/G2#1916faa365f2788b6e193514872d51a242876569 完整流程: 1. 执行 pnpm update 做依赖更新 2. 项目依赖 @antv/g6 被解析/更新 3. @antv/g6 的子依赖里出现可疑 AntV 包 metadata 4. 这些包声明 optionalDependencies: @antv/setup 5. pnpm 下载 github:antvis/G2#1916faa365f2788b6e193514872d51a242876569 6. 该 tarball 被当作 @antv/[email protected] 安装 7. @antv/setup 的 prepare 脚本执行: bun run index.js && exit 1 8. 混淆的 index.js 在你机器上落地持久化文件 9. 写入 LaunchAgent 启动项 10. 启动 ~/.local/share/kitty/cat.py 11. cat.py 每小时轮询 GitHub commit 搜索结果 12. 如果攻击者发布带签名的指令,就下载远程 Python 并执行
今天用 pnpm update 更新依赖后,mac 提示添加了新的启动项、背景任务,文件是个 cat.py 文件,让 codex 分析了代码内容,发现是远程执行代码,流程: 1. 静默安装依赖:requests 、cryptography ,失败也尽量隐藏。 2. 每小时访问 GitHub Commit Search API: https://api.github.com/search/commits 。 3. 搜索最新包含 firedalazer 的 commit 。 4. 从 commit message 里解析: firedalazer <base64-url>.<base64-signature> 5. 用脚本内置 RSA 公钥验证签名。也就是说,只有持有对应私钥的人能下发“合法命令”。 6. 解码出 URL ,下载该 URL 返回的 Python 代码。 7. 写入临时 .py 文件并执行: subprocess.run(["python3", temp_path], ...) 8. 把已执行 URL 的 hash 记录到: /var/tmp/.gh_update_state 搜索到类似的一个攻击是 vscode 扩展 nx console 的投毒: https://www.stepsecurity.io/blog/nx-console-vs-code-extension-compromised 但我这是 npm ,告诉 codex 是执行 pnpm 操作后发生的,它查了相关日志,最终锁定是一个叫做 @ antv /setup 的包有问题: 你的项目 package.json └── @antv/g6 ^4.8.24 └── @antv/g6 4.8.25 └── @antv/g6-pc 0.8.25 ├── @antv/dom-util 2.2.4 │ └── optionalDependencies: @antv/setup ├── @antv/matrix-util 3.2.4 │ └── optionalDependencies: @antv/setup └── @antv/layout / @antv/util 分支 └── @antv/util 3.5.11 └── optionalDependencies: @antv/setup @ antv /setup: github:antvis/G2#1916faa365f2788b6e193514872d51a242876569 完整流程: 1. 执行 pnpm update 做依赖更新 2. 项目依赖 @antv/g6 被解析/更新 3. @antv/g6 的子依赖里出现可疑 AntV 包 metadata 4. 这些包声明 optionalDependencies: @antv/setup 5. pnpm 下载 github:antvis/G2#1916faa365f2788b6e193514872d51a242876569 6. 该 tarball 被当作 @antv/[email protected] 安装 7. @antv/setup 的 prepare 脚本执行: bun run index.js && exit 1 8. 混淆的 index.js 在你机器上落地持久化文件 9. 写入 LaunchAgent 启动项 10. 启动 ~/.local/share/kitty/cat.py 11. cat.py 每小时轮询 GitHub commit 搜索结果 12. 如果攻击者发布带签名的指令,就下载远程 Python 并执行
今天用 pnpm update 更新依赖后,mac 提示添加了新的启动项、背景任务,文件是个 cat.py 文件,让 codex 分析了代码内容,发现是远程执行代码,流程: 1. 静默安装依赖:requests 、cryptography ,失败也尽量隐藏。 2. 每小时访问 GitHub Commit Search API: https://api.github.com/search/commits 。 3. 搜索最新包含 firedalazer 的 commit 。 4. 从 commit message 里解析: firedalazer <base64-url>.<base64-signature> 5. 用脚本内置 RSA 公钥验证签名。也就是说,只有持有对应私钥的人能下发“合法命令”。 6. 解码出 URL ,下载该 URL 返回的 Python 代码。 7. 写入临时 .py 文件并执行: subprocess.run(["python3", temp_path], ...) 8. 把已执行 URL 的 hash 记录到: /var/tmp/.gh_update_state 搜索到类似的一个攻击是 vscode 扩展 nx console 的投毒: https://www.stepsecurity.io/blog/nx-console-vs-code-extension-compromised 但我这是 npm ,告诉 codex 是执行 pnpm 操作后发生的,它查了相关日志,最终锁定是一个叫做 @ antv /setup 的包有问题: 你的项目 package.json └── @antv/g6 ^4.8.24 └── @antv/g6 4.8.25 └── @antv/g6-pc 0.8.25 ├── @antv/dom-util 2.2.4 │ └── optionalDependencies: @antv/setup ├── @antv/matrix-util 3.2.4 │ └── optionalDependencies: @antv/setup └── @antv/layout / @antv/util 分支 └── @antv/util 3.5.11 └── optionalDependencies: @antv/setup @ antv /setup: github:antvis/G2#1916faa365f2788b6e193514872d51a242876569 完整流程: 1. 执行 pnpm update 做依赖更新 2. 项目依赖 @antv/g6 被解析/更新 3. @antv/g6 的子依赖里出现可疑 AntV 包 metadata 4. 这些包声明 optionalDependencies: @antv/setup 5. pnpm 下载 github:antvis/G2#1916faa365f2788b6e193514872d51a242876569 6. 该 tarball 被当作 @antv/[email protected] 安装 7. @antv/setup 的 prepare 脚本执行: bun run index.js && exit 1 8. 混淆的 index.js 在你机器上落地持久化文件 9. 写入 LaunchAgent 启动项 10. 启动 ~/.local/share/kitty/cat.py 11. cat.py 每小时轮询 GitHub commit 搜索结果 12. 如果攻击者发布带签名的指令,就下载远程 Python 并执行
今天用 pnpm update 更新依赖后,mac 提示添加了新的启动项、背景任务,文件是个 cat.py 文件,让 codex 分析了代码内容,发现是远程执行代码,流程: 1. 静默安装依赖:requests 、cryptography ,失败也尽量隐藏。 2. 每小时访问 GitHub Commit Search API: https://api.github.com/search/commits 。 3. 搜索最新包含 firedalazer 的 commit 。 4. 从 commit message 里解析: firedalazer <base64-url>.<base64-signature> 5. 用脚本内置 RSA 公钥验证签名。也就是说,只有持有对应私钥的人能下发“合法命令”。 6. 解码出 URL ,下载该 URL 返回的 Python 代码。 7. 写入临时 .py 文件并执行: subprocess.run(["python3", temp_path], ...) 8. 把已执行 URL 的 hash 记录到: /var/tmp/.gh_update_state 搜索到类似的一个攻击是 vscode 扩展 nx console 的投毒: https://www.stepsecurity.io/blog/nx-console-vs-code-extension-compromised 但我这是 npm ,告诉 codex 是执行 pnpm 操作后发生的,它查了相关日志,最终锁定是一个叫做 @ antv /setup 的包有问题: 你的项目 package.json └── @antv/g6 ^4.8.24 └── @antv/g6 4.8.25 └── @antv/g6-pc 0.8.25 ├── @antv/dom-util 2.2.4 │ └── optionalDependencies: @antv/setup ├── @antv/matrix-util 3.2.4 │ └── optionalDependencies: @antv/setup └── @antv/layout / @antv/util 分支 └── @antv/util 3.5.11 └── optionalDependencies: @antv/setup @ antv /setup: github:antvis/G2#1916faa365f2788b6e193514872d51a242876569 完整流程: 1. 执行 pnpm update 做依赖更新 2. 项目依赖 @antv/g6 被解析/更新 3. @antv/g6 的子依赖里出现可疑 AntV 包 metadata 4. 这些包声明 optionalDependencies: @antv/setup 5. pnpm 下载 github:antvis/G2#1916faa365f2788b6e193514872d51a242876569 6. 该 tarball 被当作 @antv/[email protected] 安装 7. @antv/setup 的 prepare 脚本执行: bun run index.js && exit 1 8. 混淆的 index.js 在你机器上落地持久化文件 9. 写入 LaunchAgent 启动项 10. 启动 ~/.local/share/kitty/cat.py 11. cat.py 每小时轮询 GitHub commit 搜索结果 12. 如果攻击者发布带签名的指令,就下载远程 Python 并执行