
CVE-2026-23007のサーバーレス・コールドスタート時のメモリ残存をシミュレートし、Lambda呼び出し間で永続化されたグローバル状態が実行間でシークレットを漏洩させる仕組みを実証します。
# lambda_remanence.py - Simulated Lambda environment reuse
import os, secrets
def first_invocation():
# Simulates storing a secret in a global variable
global SECRET
SECRET = secrets.token_hex(16)
return "Initialized"
def second_invocation():
# Another function in same container? Actually, separate invocations share memory.
# Here we just read the global if it exists
global SECRET
return SECRET if 'SECRET' in globals() else "No secret"
print("Cold start: ", first_invocation())
print("Warm start: ", second_invocation())
サーバーレスプラットフォームは、関数呼び出し間で実行環境(コンテナ)を再利用する際、グローバルメモリをゼロ化しません。同じ基盤ホスト(または同じアカウント)を共有する攻撃者の関数が、以前の実行の残存データにアクセスし、秘密情報を漏えいさせる可能性があります。
実行:
python lambda_remanence.py
2番目の呼び出しは、1番目の呼び出しで設定された秘密情報を読み取ります。