
يعيد إنتاج CVE-2026-4040: خادم رفع ملفات Flask مع حالة سباق TOCTOU وسكربت استغلال يوضح تنفيذ كود تعسفي عن بُعد.
# upload_server.py - File upload with race condition
from flask import Flask, request
import os, tempfile, time, threading
app = Flask(__name__)
UPLOAD_DIR = '/tmp/uploads'
os.makedirs(UPLOAD_DIR, exist_ok=True)
@app.route('/upload', methods=['POST'])
def upload():
file = request.files['file']
# Save to a temporary file
fd, tmp_path = tempfile.mkstemp(dir=UPLOAD_DIR)
file.save(tmp_path)
# Simulate validation (check extension)
if not file.filename.endswith('.txt'):
os.unlink(tmp_path)
return "Invalid extension", 400
# Race window: between save and move, attacker can execute the script
# In a real server, we'd move to safe name, but we simulate time delay
time.sleep(0.5) # vulnerability
final_path = os.path.join(UPLOAD_DIR, file.filename)
os.rename(tmp_path, final_path)
return "Uploaded", 200
if __name__ == '__main__':
app.run(port=5000)
تقوم نقطة رفع الملفات بكتابة الملف المُرفَع إلى مسار مؤقت، ثم تتحقق من الامتداد، وبعد ذلك تنقله إلى اسم آمن بعد فترة انتظار. يمكن للمهاجم أن يستبق الوصول إلى الملف المؤقت وتنفيذه قبل إعادة التسمية، محققاً تنفيذ تعليمات برمجية عن بُعد.
pip install flask
python upload_server.py
python exploit_race_upload.py