Your question is Find and Explain Vulnerabilities. Take a moment with it on the right.
Talk me through your thinking if you like. When you're confident, submit your answer and I'll grade it like a real screen (7/10 or better passes).
Splunk is reviewing a lightweight ingestion endpoint that forwarders use to push log events. It authenticates each forwarder with a shared per-forwarder token before accepting the event.
import traceback
from flask import Flask, request, jsonify
app = Flask(__name__)
INGEST_TOKENS = {
"forwarder-01": "a1b2c3d4e5f6token",
"forwarder-02": "9f8e7d6c5b4a3token",
}
@app.route("/ingest", methods=["POST"])
def ingest_event():
forwarder_id = request.headers.get("X-Forwarder-Id")
submitted_token = request.headers.get("X-Ingest-Token")
expected_token = INGEST_TOKENS.get(forwarder_id, "")
if submitted_token == expected_token:
try:
event = parse_event(request.data)
store_event(event)
return jsonify({"status": "ok"})
except Exception as e:
return jsonify({"error": str(e), "trace": traceback.format_exc()}), 500
return jsonify({"error": "unauthorized"}), 401
Review this code snippet, identify the security vulnerabilities, and explain how an attacker could exploit each one. Name the OWASP Top 10 category each falls under.