Zapocalypse: The Attack Chain That Could Have Hijacked Zapier¶
Ch11.204 Zapocalypse: The Attack Chain That Could Have Hijacked Zapier¶
📊 Level ⭐⭐ | 4.8KB |
entities/zapocalypse-the-attack-chain-that-could-have-hijacked-zapier-20260606.md
Zapocalypse: The Attack Chain That Could Have Hijacked Zapier¶
→ 原文存档
深度分析¶
Starting from a sandboxed Python code block on Zapier's free tier, the Token Security research team walked a five-step chain that ended with node package manager (NPM) publishing rights to zapier-design-system, a private package that ships JavaScript into every authenticated Zapier user's browser.
核心观点¶
- Publishing a tampered version could have shipped attacker-controlled JavaScript could have executed in every authenticated Zapier session, allowing for full platform account takeover (ATO).
- No novel primitive.
- Five known patterns, composed: | # | Stage | Primitive | | --- | --- | --- | | 1 | Sandbox reconnaissance | `os.
- com` | Token Security reported the vulnerability (now known as Zapocalypse) on February 12, 2026.
- It was acknowledged within hours by Zapier and the NPM token was revoked and the ECR role tightened by February 16, 2026.
内容结构¶
- Why Zapier
- Stage 1: Escaping the Code Block Sandbox
- lambda_function.py — verbatim, as it appeared on disk
- Stage 2:
delis not deletion - extract_secrets_from_memory.py — runs inside the Zapier code block
- extract_secrets_from_memory.py — runs inside the Zapier code block
- Stage 3:
allow_nothing_roleallowed plenty - ... 1,111 entries
- Stage 3b — The LiteLLM container, and an email from a co-founder
- Stage 3C: An NPM token, hiding in the container metadata
代码/配置示例¶
AWS_LAMBDA_FUNCTION_VERSION=1
AWS_LAMBDA_LOG_GROUP_NAME=/aws/lambda/prd-mngd-lmbd_paidcodeapipy3_z349279347
LAMBDA_TASK_ROOT=/var/task
LD_LIBRARY_PATH=/var/lang/lib:/lib64:/usr/lib64:/var/runtime:/var/runtime/lib:/var/task:/var/task/lib:/opt/lib
AWS_LAMBDA_LOG_STREAM_NAME=2026/02/15/[1]ca626535d2104
# lambda_function.py — verbatim, as it appeared on disk
import requests # NOQA
from store_api import StoreClient # NOQA
try:
basestring
except NameError:
basestring = str
def lambda_handler(event, context=None):
# note - this isn't a security thing since we pass a allow_nothing role - just
技术要点¶
- article架构: 本文在article方向提出的设计理念与实现路径
- 工程挑战: 实际落地中面临的关键问题与应对策略
- aws趋势: 相关技术演进方向与新兴范式
关联实体¶
- Google Brings Local Ai Agents To Laptops With Gemma 4 12B 20260606
- 构建无服务器Kiro调度平台用Kiro Cli Eventbridge Ecs Fargate实现定时Ai任务
- Ai Friendly Architecture Design Taobao
- Headroom Context Compression Agent Vibecoder
- 5237875
- Demis Hassabis Yc Interview Jiedaotixi
实践启示¶
- 威胁建模: 建立持续的安全评估机制,关注供应链和身份安全
- 纵深防御: 多层防护优于单点加固,关注攻击链的每个环节
- 自动化响应: 利用 AI 加速威胁检测和事件响应流程
- 合规先行: 安全方案需与监管要求对齐,避免事后补救