
教育用CVE-2026-11107デモ。脆弱性のあるFlask APIとエクスプロイトスクリプトを含み、予測可能なUUIDv1識別子がどのように安全でない直接オブジェクト参照(IDOR)を引き起こすかを示します。
# idor_server.py - API with UUIDv1 user IDs
import uuid, time
from flask import Flask, request, jsonify
app = Flask(__name__)
# Generate predictable UUIDv1 based on timestamp + MAC
users = {
str(uuid.uuid1()): {"name": "Alice", "data": "private1"},
str(uuid.uuid1()): {"name": "Bob", "data": "private2"},
}
@app.route('/user/<user_id>')
def get_user(user_id):
if user_id in users:
return jsonify(users[user_id])
return "Not found", 404
if __name__ == '__main__':
app.run(port=5000)
REST APIは、ユーザーリソースへの直接オブジェクト参照としてUUIDバージョン1を使用しています。UUIDv1にはタイムスタンプコンポーネントが含まれており、非常に予測可能です。攻撃者は有効なユーザーUUIDを列挙し、プライベートデータにアクセスできます。
pip install flask
python idor_server.py
python exploit_idor_uuid.py