flawopen.com/Teardowns/cve-2015-3306-proftpd-mod-copy-unauthenticated-file-copy
CVE-2015-3306: ProFTPD mod_copy में बिना प्रमाणीकरण फ़ाइल कॉपी
CVE-2015-3306 में बिना प्रमाणीकरण वाले क्लाइंट ProFTPD mod_copy कमांड से सर्वर पर फ़ाइलें कॉपी कर सकते थे। upstream सुधार SITE CPFR और SITE CPTO, दोनों हैंडलर में प्रमाणीकरण जाँचता है। CISA ने 2026-10-08 को इसे KEV में जोड़ा। 8 अक्तूबर 2026 को प्रकाशित FBI, CISA, NSA और साझेदार एजेंसियों की संयुक्त सलाह में CVE-2015-3306 को MicroScan स्क्रिप्ट से प्राप्त सफलतापूर्वक शोषित CVE की सूची में शामिल किया गया है; इसमें इस CVE के लिए किसी पीड़ित या घटना की तारीख नहीं बताई गई है।[1], [2], [5], [6]
ऐसे अभिलेख-कक्ष कर्मचारी की कल्पना करें जो किसी से भी “यह फ़ाइल कॉपी करें” और “कॉपी यहाँ रखें” अनुरोध स्वीकार करता है। केवल एक अनुरोध जाँचना पर्याप्त नहीं है; स्रोत और गंतव्य, दोनों चरण प्रमाणित सत्र से जुड़े होने चाहिए।[3]
इस पेज के मुख्य शब्द
CWE-284- अनुचित अभिगम नियंत्रण: आवश्यक अनुमति के बिना संरक्षित कार्रवाई तक पहुँचना।[1]
फ्रेमवर्क मैपिंग
- इस गाइड में बताई गई कमजोरी के लिए CWE संदर्भ: CWE-284
- CISA KEV — जोड़ा गया 2026-10-08 — CVE-2015-3306
मूल कारण विश्लेषण (Root Cause)
प्रभावित ProFTPD 1.3.5 परिनियोजन में, जहाँ mod_copy उपलब्ध और सक्षम था, copy_cpfr() और copy_cpto() बिना प्रमाणित सत्र की माँग किए SITE CPFR/SITE CPTO कमांड पथ स्वीकार करते थे। upstream PR #109 ने कमांड-डिस्पैच की शुरुआती जाँचों के बाद, लेकिन न्यूनतम तर्क-संख्या के सत्यापन, स्रोत/लक्ष्य पथ के प्रसंस्करण और कॉपी कार्रवाई से पहले दोनों हैंडलर में प्रमाणीकरण स्थिति की जाँच जोड़ी; सत्र प्रमाणित न होने पर FTP 530 / EPERM लौटता है। मॉड्यूल की पहुँच ProFTPD प्रक्रिया की ऑपरेटिंग-सिस्टम अनुमतियों तक सीमित रहती है, इसलिए फ़ाइलों पर प्रभाव उन अनुमतियों और कॉन्फ़िगरेशन पर निर्भर है। Debian ने मनमाना कोड निष्पादन को संभावित बताया, स्वचालित नहीं; इसके लिए तैनाती-विशिष्ट अतिरिक्त शर्तें चाहिए, जैसे लिखने योग्य पथ जिसे बाद में कोड के रूप में चलाया जाए।[3], [5], [4]
ऑपरेटर मैट्रिक्स: एक्सपोज़र और फिक्स्ड पैकेज की जाँच
| डिप्लॉयमेंट स्थिति | स्रोत क्या स्थापित करते हैं | रक्षक की कार्रवाई |
|---|---|---|
ProFTPD 1.3.5 में mod_copy उपलब्ध और सक्षम | Ubuntu रिकॉर्ड SITE CPFR और SITE CPTO से दूरस्थ फ़ाइल पढ़ने/लिखने का वर्णन करता है; NVD ProFTPD 1.3.5 को प्रभावित बताता है। | सटीक पैकेज बिल्ड, मॉड्यूल लोड स्थिति और कमांड एक्सपोज़र की पुष्टि करें; डिस्ट्रिब्यूशन के फिक्स्ड पैकेज पर अपग्रेड करें। |
Upstream fix: PR #109 / commit 35b65aa | पैच कॉपी ऑपरेशन से पहले copy_cpfr() और copy_cpto() दोनों में authentication checks जोड़ता है। | पुष्टि करें कि दोनों कमांड unauthenticated sessions को अस्वीकार करते हैं; filesystem permissions को अलग सीमा मानें। |
| Debian wheezy / jessie / stretch और sid | Debian ने इन शाखाओं को क्रमशः 1.3.4a-5+deb7u3, 1.3.5-1.1+deb8u1, और 1.3.5-2 में ठीक किया। | इंस्टॉल किए Debian package revision को संबंधित fixed version से मिलाएँ; केवल upstream version number पर निर्भर न रहें। |
CopyEngine off समर्थन | PR #109 यह directive जोड़ता है; module documentation के अनुसार यह 1.3.6rc1 से समर्थित है। | जहाँ installed version समर्थन करता हो और feature आवश्यक न हो, CopyEngine off उपयोग करें; अन्यथा module हटाएँ या upgrade करें। |
हमले का चरण-दर-चरण प्रवाह
सोर्स कोड: कमज़ोर बनाम सुरक्षित कार्यान्वयन
कमज़ोर अंश में copy_cpfr() के भीतर प्रमाणीकरण जाँच नहीं है; सुरक्षित अंश तर्क जाँच और स्थिति परिवर्तन से पहले upstream सत्र-स्थिति जाँच जोड़ता है। PR #109 copy_cpto() में भी यही सुरक्षा जोड़ता है। यह स्रोत कोड का अंश है, स्वतंत्र प्रोग्राम नहीं।[3]
/* upstream PR #109 से पहले copy_cpfr() का संक्षिप्त अंश। */
if (cmd->argc < 3 ||
strncasecmp(cmd->argv[1], "CPFR", 5) != 0) {
return PR_DECLINED(cmd);
}
CHECK_CMD_MIN_ARGS(cmd, 3);
/* Authentication जाँचे बिना source-path handling जारी रहती है। */
/* copy_cpfr() के upstream सुधार, 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);
इंजीनियरिंग और सिस्टम सुरक्षा चेकलिस्ट
- ✓ऐसे ProFTPD पैकेज पर अपडेट करें जिसे विक्रेता समर्थन देता हो और जिसमें सुधार शामिल हो; केवल upstream संस्करण संख्या पर निर्भर न रहें, वितरण की सुरक्षा सूचना से backport सत्यापित करें।[4], [5], [3]
- ✓उन होस्ट की सूची बनाएँ जहाँ mod_copy बनाया, लोड या सक्षम है। आवश्यकता न हो तो समर्थित संस्करण में CopyEngine off करें या उस संस्करण में मॉड्यूल हटाएँ जिसमें यह निर्देश उपलब्ध नहीं है।[3], [5]
- ✓अनुमोदित परीक्षण वातावरण में सत्यापित करें कि SITE CPFR और SITE CPTO, दोनों बिना प्रमाणीकरण सत्र अस्वीकार करते हैं और प्रमाणित उपयोगकर्ता अपेक्षित फ़ाइल अनुमतियों के भीतर रहते हैं।[3]
- ✓अनपेक्षित कॉपी के लिए FTP और फ़ाइल-अखंडता लॉग जाँचें; सेवा प्रक्रिया की फ़ाइल-सिस्टम पहुँच और एप्लिकेशन के लिखने योग्य पथों के आधार पर जोखिम आँकें।
स्रोत
- 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)