跳转至

Zapocalypse: The Attack Chain That Could Have Hijacked Zapier

📊 Level ⭐⭐⭐⭐ | 4.0KB

→ 原文存档

深度分析

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.

核心观点

  1. 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).
  2. No novel primitive.
  3. Five known patterns, composed: | # | Stage | Primitive | | --- | --- | --- | | 1 | Sandbox reconnaissance | `os.
  4. com` | Token Security reported the vulnerability (now known as Zapocalypse) on February 12, 2026.
  5. It was acknowledged within hours by Zapier and the NPM token was revoked and the ECR role tightened by February 16, 2026.

代码/配置示例

import os
os.system('env')
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

关联实体

实践启示

  1. 威胁建模: 建立持续的安全评估机制,关注供应链和身份安全
  2. 纵深防御: 多层防护优于单点加固,关注攻击链的每个环节
  3. 自动化响应: 利用 AI 加速威胁检测和事件响应流程
  4. 合规先行: 安全方案需与监管要求对齐,避免事后补救