flawopen.com/Teardowns/cve-2015-3306-proftpd-mod-copy-unauthenticated-file-copy
CVE-2015-3306: copia de archivos sin autenticar en ProFTPD mod_copy
CVE-2015-3306 permitía que clientes no autenticados usaran comandos de mod_copy de ProFTPD para copiar archivos en el servidor. La corrección upstream comprueba la autenticación en ambos manejadores SITE CPFR y SITE CPTO; CISA añadió el fallo a KEV el 08/10/2026. Un aviso conjunto del FBI/CISA/NSA y sus socios, publicado el 8 de octubre de 2026, incluye CVE-2015-3306 entre las CVE explotadas con éxito recuperadas de los scripts de MicroScan; no identifica una víctima ni la fecha de un incidente para esta CVE.[1], [2], [5], [6]
Imagina a un empleado de archivo que acepta de cualquiera las solicitudes «copia este archivo» y «deja la copia aquí». No basta con comprobar una sola solicitud: los pasos de origen y destino deben pertenecer a una sesión autenticada.[3]
Conceptos Clave y Términos
SITE CPFR / SITE CPTO- Comandos de mod_copy de ProFTPD que seleccionan el origen y el destino de una copia en el servidor.[3], [5]
mod_copy- Módulo opcional de ProFTPD que implementa comandos de copia de archivos en el servidor.[3], [5]
CWE-284- Control de acceso inadecuado: se puede alcanzar una operación protegida sin la autorización exigida.[1]
Mapeos de marcos
- Referencia CWE para la debilidad descrita en esta guía: CWE-284
- CISA KEV — añadido el 2026-10-08 — CVE-2015-3306
Análisis de Causa Raíz
En implementaciones afectadas de ProFTPD 1.3.5 con mod_copy disponible y habilitado, copy_cpfr() y copy_cpto() aceptaban la ruta de comandos SITE CPFR/SITE CPTO sin exigir una sesión autenticada. La PR upstream #109 añadió una comprobación del estado de autenticación a ambos manejadores después de las comprobaciones básicas de despacho del comando, pero antes de validar el número mínimo de argumentos, procesar las rutas de origen/destino y realizar copias, y devuelve FTP 530 / EPERM si la sesión no está autenticada. El módulo sigue limitado por los permisos del sistema operativo del proceso ProFTPD, por lo que el impacto en archivos depende de esos permisos y de la configuración. Debian describió la ejecución de código arbitrario como posible, no automática; requiere condiciones adicionales específicas de la implementación, como una ruta escribible que luego se ejecute como código.[3], [5], [4]
Matriz operativa: exposición y comprobación de paquetes corregidos
| Estado del despliegue | Qué establecen las fuentes | Acción defensiva |
|---|---|---|
ProFTPD 1.3.5 con mod_copy disponible y habilitado | Ubuntu describe lectura y escritura remotas de archivos mediante SITE CPFR y SITE CPTO; NVD incluye ProFTPD 1.3.5 entre las versiones afectadas. | Confirma la compilación exacta del paquete, la carga del módulo y la exposición de los comandos; actualiza con el paquete corregido de tu distribución. |
Corrección upstream: PR #109 / commit 35b65aa | El parche añade comprobaciones de autenticación a copy_cpfr() y copy_cpto() antes de las operaciones de copia. | Verifica que ambos comandos rechacen sesiones no autenticadas; trata los permisos del sistema de archivos como un límite independiente. |
| Debian wheezy / jessie / stretch y sid | Debian corrigió esas ramas en 1.3.4a-5+deb7u3, 1.3.5-1.1+deb8u1 y 1.3.5-2, respectivamente. | Compara la revisión instalada del paquete Debian con la versión corregida correspondiente; no te bases solo en la versión upstream. |
Compatibilidad con CopyEngine off | El PR #109 añade la directiva; la documentación del módulo indica compatibilidad desde 1.3.6rc1. | Usa CopyEngine off si la versión instalada lo admite y no necesitas la función; de lo contrario, elimina el módulo o actualiza. |
Flujo de Ataque Paso a Paso
Los comandos de copia carecen de control de autenticación
Antes del parche, CPFR y CPTO podían continuar sin verificar el estado de autenticación.[3]
El parche protege ambas operaciones
El cambio upstream devuelve un error de autenticación en cada manejador antes de la lógica de copia.[3]
Código Fuente: Vulnerable vs. Seguro
El fragmento vulnerable omite una comprobación de autenticación en copy_cpfr(); el fragmento corregido inserta la verificación upstream del estado de sesión antes de validar argumentos y cambiar el estado. La PR #109 añade la misma protección a copy_cpto(). Es un fragmento de código, no un programa independiente.[3]
/* Fragmento reducido de copy_cpfr() antes del PR #109 upstream. */
if (cmd->argc < 3 ||
strncasecmp(cmd->argv[1], "CPFR", 5) != 0) {
return PR_DECLINED(cmd);
}
CHECK_CMD_MIN_ARGS(cmd, 3);
/* El manejo de la ruta de origen continúa sin una comprobación de autenticación. */
/* Fragmento reducido de la corrección 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);
Lista de Verificación de Seguridad para Ingeniería
- ✓Actualiza a un paquete ProFTPD compatible con soporte del proveedor que incluya la corrección; comprueba los backports en el aviso de la distribución y no te bases solo en el número upstream.[4], [5], [3]
- ✓Inventaría los sistemas con mod_copy compilado, cargado o habilitado; si no necesitas la función, desactívala con CopyEngine off en versiones compatibles o elimina el módulo en versiones sin esa directiva.[3], [5]
- ✓En un entorno de pruebas autorizado, confirma que SITE CPFR y SITE CPTO rechazan sesiones no autenticadas y que los usuarios autenticados no copian fuera de los permisos previstos.[3]
- ✓Revisa los registros FTP y de integridad de archivos para detectar copias inesperadas; evalúa la exposición según el acceso del proceso al sistema de archivos y a rutas de aplicaciones.
Fuentes
- 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)