
Воспроизводит 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