FlawOpen

flawopen.com/Teardowns/cve-2015-3306-proftpd-mod-copy-unauthenticated-file-copy

● CVE-2015-3306 · CVSS 10.0 · Kritisch
Sicherheitsforschung · FlawOpen

CVE-2015-3306: Nicht authentifiziertes Kopieren mit ProFTPD mod_copy

CVE-2015-3306 ermöglichte nicht authentifizierten Clients, mit ProFTPD-mod_copy-Befehlen Dateien auf dem Server zu kopieren. Die Upstream-Korrektur prüft die Authentifizierung in beiden Handlern SITE CPFR und SITE CPTO; CISA nahm die Schwachstelle am 08.10.2026 in KEV auf. Ein gemeinsamer Hinweis von FBI, CISA, NSA und Partnern vom 8. Oktober 2026 führt CVE-2015-3306 unter den erfolgreich aus MicroScan-Skripten gewonnenen ausgenutzten CVEs auf; für diese CVE nennt er weder ein Opfer noch ein Vorfallsdatum.[1], [2], [5], [6]

💡 Einfache Erklärung (ELI5)

Stellen Sie sich einen Archivar vor, der von jeder Person die Aufträge „kopiere diese Datei“ und „lege die Kopie hier ab“ annimmt. Eine Prüfung für nur einen Auftrag reicht nicht: Quell- und Zielschritt müssen zu einer authentifizierten Sitzung gehören.[3]

Kernkonzepte & Begriffe

SITE CPFR / SITE CPTO
ProFTPD-mod_copy-Befehle zur Auswahl von Quelle und Ziel einer serverseitigen Dateikopie.[3], [5]
mod_copy
Optionales ProFTPD-Modul für serverseitige Dateikopierbefehle.[3], [5]
CWE-284
Unzureichende Zugriffskontrolle: Ein geschützter Vorgang ist ohne die vorgeschriebene Berechtigung erreichbar.[1]

Framework-Zuordnungen

Ursachenanalyse

In betroffenen ProFTPD-1.3.5-Installationen mit verfügbarem und aktiviertem mod_copy akzeptierten copy_cpfr() und copy_cpto() die Befehle SITE CPFR/SITE CPTO ohne authentifizierte Sitzung. Upstream-PR #109 ergänzte in beiden Handlern nach den grundlegenden Befehlsprüfungen, aber vor der Mindestargumentprüfung, der Verarbeitung der Quell-/Zielpfade und dem Kopiervorgang eine Prüfung des Authentifizierungsstatus; bei fehlender Anmeldung wird FTP 530 / EPERM zurückgegeben. Das Modul bleibt auf die Betriebssystemrechte des ProFTPD-Prozesses beschränkt. Die Dateiauswirkung hängt daher von diesen Rechten und der Konfiguration ab. Debian bezeichnete beliebige Codeausführung als möglich, nicht automatisch; dafür sind zusätzliche deployment-spezifische Bedingungen erforderlich, etwa ein beschreibbarer Pfad, der anschließend als Code verarbeitet wird.[3], [5], [4]

Betriebsmatrix: Erreichbarkeit und Prüfung behobener Pakete

BereitstellungszustandWas die Quellen belegenMaßnahme für Verteidiger
ProFTPD 1.3.5 mit verfügbarem und aktiviertem mod_copyUbuntu beschreibt das entfernte Lesen und Schreiben von Dateien über SITE CPFR und SITE CPTO; NVD führt ProFTPD 1.3.5 als betroffen.Prüfen Sie den genauen Paket-Build, den Modulstatus und die Erreichbarkeit der Befehle; installieren Sie das korrigierte Distributionspaket.
Upstream-Fix: PR #109 / Commit 35b65aaDer Patch ergänzt Authentifizierungsprüfungen in copy_cpfr() und copy_cpto() vor den Kopiervorgängen.Prüfen Sie, dass beide Befehle nicht authentifizierte Sitzungen ablehnen; behandeln Sie Dateisystemrechte als separate Grenze.
Debian wheezy / jessie / stretch und sidDebian behob die Fehler in diesen Zweigen mit 1.3.4a-5+deb7u3, 1.3.5-1.1+deb8u1 und 1.3.5-2.Vergleichen Sie die installierte Debian-Paketrevision mit der passenden korrigierten Version; verlassen Sie sich nicht nur auf die Upstream-Versionsnummer.
Unterstützung für CopyEngine offPR #109 ergänzt die Direktive; laut Moduldokumentation wird sie ab Version 1.3.6rc1 unterstützt.Nutzen Sie CopyEngine off, wenn die installierte Version es unterstützt und die Funktion entbehrlich ist; andernfalls entfernen Sie das Modul oder aktualisieren.

Schritt-für-Schritt Angriffsablauf

Schritt 1

Nicht authentifizierte Sitzung erreicht mod_copy

Betroffen sind Installationen, auf denen das Modul vorhanden und die Kopierbefehle erreichbar sind.[5], [1]

Schritt 2

Kopierbefehle prüfen die Anmeldung nicht

Vor dem Patch konnten CPFR und CPTO fortfahren, ohne den Sitzungsstatus zu prüfen.[3]

Schritt 3

Der Server kopiert innerhalb seiner Rechte

Eine Kopie kann Dateien offenlegen oder verändern, auf die das Dienstkonto zugreifen kann; Codeausführung erfordert weitere Bedingungen.[5], [4]

Schritt 4

Patch schützt beide Vorgänge

Die Upstream-Änderung gibt in jedem Handler vor der Kopierlogik einen Authentifizierungsfehler zurück.[3]

Quellcode: Verwundbar vs. Sicher

Im verwundbaren Ausschnitt fehlt die Authentifizierungsprüfung in copy_cpfr(); der gehärtete Ausschnitt fügt die Upstream-Prüfung des Sitzungsstatus vor Argumentprüfung und Zustandsänderungen ein. PR #109 schützt copy_cpto() auf dieselbe Weise. Der Ausschnitt ist kein eigenständiges Programm.[3]

VERWUNDBARE IMPLEMENTIERUNG
/* Gekürzter Auszug aus copy_cpfr() vor dem Upstream-PR #109. */
if (cmd->argc < 3 ||
    strncasecmp(cmd->argv[1], "CPFR", 5) != 0) {
    return PR_DECLINED(cmd);
}
CHECK_CMD_MIN_ARGS(cmd, 3);
/* Die Verarbeitung des Quellpfads erfolgt ohne Authentifizierungsprüfung weiter. */
GEHÄRTETER SICHERHEITS-PATCH
/* Gekürzter Auszug aus der Upstream-Korrektur für 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);

Checkliste für Engineering & Systemsicherheit

Quellen