Retour aux bulletins
Élevée2026-04-01CVSS 7.1CVE-2026-35412 (2026-04-01)directuscmsheadlessauthentificationuploadweb

CVE-2026-35412 — Directus : contournement d'authentification sur l'upload TUS

Une vérification d'autorisation défaillante dans le gestionnaire d'upload TUS de Directus (versions antérieures à 11.16.1) permet à un utilisateur authentifié de faibles privilèges d'écraser des fichiers arbitraires sur le serveur, y compris des fichiers système ou de configuration.

Contexte

Le 1er avril 2026, une vulnérabilité de contournement d'authentification a été divulguée dans Directus, le headless CMS open source largement adopté pour les projets web modernes. La faille affecte le gestionnaire d'upload résumable TUS (Tus Resumable Upload Protocol), permettant à un attaquant disposant d'un simple compte utilisateur d'écraser des fichiers arbitraires sur le serveur.

Versions affectées

  • Directus toutes versions antérieures à 11.16.1

Version corrigée : 11.16.1

Mécanisme d'exploitation

TUS est un protocole d'upload résumable que Directus utilise pour gérer les envois de fichiers volumineux. Le gestionnaire TUS de Directus ne valide pas correctement les autorisations lors de la reprise d'un upload :

  1. Un attaquant authentifié (même avec un rôle à très faibles privilèges) initie un upload TUS
  2. Il manipule l'identifiant de reprise (Upload-ID) pour cibler un fichier existant sur le serveur
  3. Le serveur écrase le fichier cible sans vérifier si l'utilisateur a le droit de modifier ce fichier

Les fichiers potentiellement écrasables incluent des fichiers de configuration, des templates, ou tout fichier accessible par le processus Node.js de Directus.

Impact

Selon la configuration du serveur et les droits du processus Directus, l'exploitation peut permettre :

  • Écrasement de fichiers de configuration de Directus (.env, config.js)
  • Remplacement de fichiers statiques servis par l'application
  • Élévation de privilèges si des fichiers de configuration d'autorisation peuvent être modifiés
  • Déni de service en corrompant des fichiers critiques à l'application

L'impact réel dépend fortement de la structure de déploiement et des permissions système du processus Directus.

Détection

# Vérifier la version Directus installée
npx directus --version
# ou dans package.json
grep '"directus"' package.json

# Rechercher des uploads TUS suspects dans les logs
# (uploads vers des chemins inattendus ou par des utilisateurs à faibles droits)
grep -i "tus\|upload" /var/log/directus/app.log | grep -v "200\|201"

Remédiation

  1. Mettez à jour Directus vers la version 11.16.1 ou supérieure :

    npm install directus@latest
    # ou version spécifique
    npm install directus@11.16.1
    
  2. Vérifiez l'intégrité des fichiers critiques — comparez les checksums des fichiers de configuration avec des versions connues valides

  3. Restreignez les permissions du processus Directus au niveau système — le processus ne devrait avoir accès en écriture qu'aux répertoires strictly nécessaires (uploads/, extensions/) :

    # Exemple : restreindre l'écriture hors du dossier uploads
    chmod 755 /app
    chmod 755 /app/config
    chown -R directus:directus /app/uploads
    
  4. Auditez les rôles et permissions des utilisateurs Directus — supprimez les comptes inutilisés ou à privilèges excessifs

Recommandations

  • Principe du moindre privilège — le processus applicatif ne devrait jamais avoir accès en écriture à ses propres fichiers de configuration en production
  • Conteneurisez Directus — un conteneur Docker avec un système de fichiers en lecture seule (sauf le volume uploads) limite considérablement la surface d'attaque
  • Surveillez les modifications de fichiers via un outil d'intégrité (AIDE, Tripwire, ou simplement inotifywait) sur les fichiers de configuration critiques
  • Mettez en place une politique de mise à jour pour les CMS headless — les instances Directus en production doivent être maintenues à jour activement