flawopen.com/Teardowns/cve-2015-3306-proftpd-mod-copy-unauthenticated-file-copy
CVE-2015-3306 : copie de fichiers sans authentification dans ProFTPD mod_copy
CVE-2015-3306 permettait à des clients non authentifiés d’utiliser les commandes mod_copy de ProFTPD pour copier des fichiers sur le serveur. Le correctif upstream vérifie l’authentification dans les deux handlers SITE CPFR et SITE CPTO ; la CISA a ajouté la faille au KEV le 08/10/2026. Un avis conjoint du FBI, de la CISA, de la NSA et de leurs partenaires, publié le 8 octobre 2026, cite CVE-2015-3306 parmi les CVE exploitées avec succès et récupérées à partir des scripts MicroScan ; il ne précise ni victime ni date d’incident pour cette CVE.[1], [2], [5], [6]
Imaginez un employé des archives qui accepte de n’importe qui les demandes « copiez ce fichier » et « déposez la copie ici ». Vérifier une seule demande ne suffit pas : les étapes de source et de destination doivent toutes deux appartenir à une session authentifiée.[3]
Concepts Clés et Termes
SITE CPFR / SITE CPTO- Commandes ProFTPD mod_copy qui définissent la source et la destination d’une copie côté serveur.[3], [5]
mod_copy- Module ProFTPD facultatif qui fournit des commandes de copie de fichiers côté serveur.[3], [5]
CWE-284- Contrôle d’accès inadéquat : une opération protégée est accessible sans l’autorisation requise.[1]
Correspondances de référentiels
- Référence CWE pour la faiblesse décrite dans ce guide : CWE-284
- CISA KEV — ajouté le 2026-10-08 — CVE-2015-3306
Analyse de Cause Racine
Dans les déploiements concernés de ProFTPD 1.3.5 où mod_copy est disponible et activé, copy_cpfr() et copy_cpto() acceptaient les commandes SITE CPFR/SITE CPTO sans exiger une session authentifiée. La PR upstream #109 a ajouté une vérification de l’état d’authentification dans les deux handlers après les vérifications élémentaires de distribution de la commande, mais avant la validation du nombre minimal d’arguments, le traitement des chemins source/destination et la copie, avec une réponse FTP 530 / EPERM si la session n’est pas authentifiée. Le module reste limité aux droits système du processus ProFTPD ; l’impact sur les fichiers dépend donc de ces droits et de la configuration. Debian indique que l’exécution de code arbitraire est possible, mais pas automatique : elle nécessite des conditions supplémentaires propres au déploiement, par exemple un chemin inscriptible ensuite interprété comme du code.[3], [5], [4]
Matrice opérationnelle : exposition et vérification des paquets corrigés
| État du déploiement | Ce que les sources établissent | Action défensive |
|---|---|---|
ProFTPD 1.3.5 avec mod_copy disponible et activé | Ubuntu décrit la lecture et l’écriture de fichiers à distance via SITE CPFR et SITE CPTO ; NVD indique ProFTPD 1.3.5 comme affecté. | Vérifiez le build exact du paquet, le chargement du module et l’exposition des commandes ; installez le paquet corrigé de votre distribution. |
Correctif upstream : PR #109 / commit 35b65aa | Le correctif ajoute des contrôles d’authentification dans copy_cpfr() et copy_cpto() avant les opérations de copie. | Vérifiez que les deux commandes refusent les sessions non authentifiées ; considérez les permissions du système de fichiers comme une limite distincte. |
| Debian wheezy / jessie / stretch et sid | Debian a corrigé ces branches dans 1.3.4a-5+deb7u3, 1.3.5-1.1+deb8u1 et 1.3.5-2, respectivement. | Comparez la révision du paquet Debian installé à la version corrigée correspondante ; ne vous fiez pas uniquement au numéro upstream. |
Prise en charge de CopyEngine off | La PR #109 ajoute cette directive ; la documentation du module indique une compatibilité à partir de 1.3.6rc1. | Utilisez CopyEngine off si la version installée le prend en charge et si la fonctionnalité est inutile ; sinon, retirez le module ou mettez à niveau. |
Déroulement de l'Attaque Étape par Étape
Les commandes ne contrôlent pas l’authentification
Avant le correctif, CPFR et CPTO pouvaient continuer sans vérifier l’état d’authentification.[3]
Le correctif protège les deux opérations
Le changement upstream renvoie une erreur d’authentification dans chaque handler avant la logique de copie.[3]
Code Source : Vulnérable vs Sécurisé
L’extrait vulnérable omet le contrôle d’authentification dans copy_cpfr() ; l’extrait corrigé ajoute le contrôle upstream de l’état de session avant la validation des arguments et toute modification d’état. La PR #109 applique la même protection à copy_cpto(). Cet extrait n’est pas un programme autonome.[3]
/* Extrait réduit de copy_cpfr() avant le PR #109 upstream. */
if (cmd->argc < 3 ||
strncasecmp(cmd->argv[1], "CPFR", 5) != 0) {
return PR_DECLINED(cmd);
}
CHECK_CMD_MIN_ARGS(cmd, 3);
/* Le traitement du chemin source continue sans vérification d’authentification. */
/* Extrait réduit du correctif upstream de copy_cpfr(), PR #109. */
unsigned char *authenticated = NULL;
if (cmd->argc < 3 ||
strncasecmp(cmd->argv[1], "CPFR", 5) != 0) {
return PR_DECLINED(cmd);
}
authenticated = get_param_ptr(cmd->server->conf, "authenticated", FALSE);
if (authenticated == NULL || *authenticated == FALSE) {
pr_response_add_err(R_530, _("Please login with USER and PASS"));
pr_cmd_set_errno(cmd, EPERM);
errno = EPERM;
return PR_ERROR(cmd);
}
CHECK_CMD_MIN_ARGS(cmd, 3);
Liste de Contrôle de Sécurité pour l'Ingénierie
- ✓Mettez à niveau vers un paquet ProFTPD pris en charge par le fournisseur et contenant le correctif ; vérifiez les rétroportages dans l’avis de la distribution, pas uniquement le numéro upstream.[4], [5], [3]
- ✓Recensez les hôtes où mod_copy est compilé, chargé ou activé ; si la fonction est inutile, désactivez-la avec CopyEngine off sur les versions compatibles ou retirez le module des versions sans cette directive.[3], [5]
- ✓Dans un environnement de test autorisé, vérifiez que SITE CPFR et SITE CPTO refusent les sessions non authentifiées et que les utilisateurs authentifiés restent limités aux droits prévus.[3]
- ✓Examinez les journaux FTP et d’intégrité des fichiers à la recherche de copies inattendues ; évaluez l’exposition selon les droits du démon et les chemins applicatifs accessibles en écriture.
Sources
- NVD — CVE-2015-3306, CWE-284 and CISA KEV status
- CISA Known Exploited Vulnerabilities Catalog — CVE-2015-3306
- ProFTPD upstream fix — PR #109, commit 35b65aa
- Debian Security Advisory DSA-3263-1
- Ubuntu security record — CVE-2015-3306
- FBI/CISA/NSA and partner agencies — AA26-281A joint advisory (2026-10-08)