
Exploit PoC et webhook d'admission vulnérable pour CVE-2026-5556, démontrant un contournement du contrôleur d'admission Kubernetes via une comparaison des noms de pods sensible à la casse qui permet la création non autorisée de pods.
#!/usr/bin/env python3
# admission_webhook.py - Vulnerable webhook that rejects pods with specific name
from flask import Flask, request, jsonify
app = Flask(__name__)
DENIED_POD_NAMES = ["kube-system-svc", "admin-pod"]
@app.route('/validate', methods=['POST'])
def validate():
req = request.get_json()
pod_name = req["request"]["object"]["metadata"]["name"]
# Flaw: case‑sensitive comparison
if pod_name in DENIED_POD_NAMES:
return jsonify({"response": {"allowed": False, "status": {"message": "Name denied"}}})
return jsonify({"response": {"allowed": True}})
if __name__ == '__main__':
app.run(port=443, ssl_context='adhoc') # using self-signed cert for demo
Un webhook d'admission qui valide les noms de pods utilise une correspondance de chaînes sensible à la casse contre une liste de refus. Un attaquant peut contourner la restriction en modifiant la casse du nom du pod, car Kubernetes préserve la casse des noms mais effectue souvent des recherches insensibles à la casse, ce qui conduit à la création non autorisée de pods.
python admission_webhook.py
python exploit_admission_bypass.py