flawopen.com/Incidents/citrix-bleed-session-token-leak-october-2023
Citrix Bleed: सेशन टोकन लीक और MFA बायपास
CVE-2023-4966 से NetScaler की मेमोरी और सेशन टोकन लीक हो सकते थे; हमलावर MFA के बिना सेशन हाईजैक कर सकते थे। शोषण अगस्त 2023 के अंत में शुरू हुआ।[1], [2]
आप एक सहायक से कहते हैं कि एक संदेश छोटे कार्ड पर उतार दे और बताए कि वह कितना लंबा है। कार्ड पर सिर्फ़ 50 अक्षर आते हैं, इसलिए वह 50 लिखता है, लेकिन लंबाई पूछने पर ईमानदारी से कहता है "800 अक्षर", क्योंकि मूल संदेश इतना ही लंबा था। फिर आप वह कार्ड किसी और को देकर कहते हैं कि इसमें से 800 अक्षर पढ़ो। वह आपके 50 अक्षर पढ़कर कागज़ के बाक़ी हिस्से पर जो कुछ लिखा है, वह भी पढ़ता चला जाता है।[2]
इस पेज के मुख्य शब्द
snprintf- C का एक फ़ंक्शन जो टेक्स्ट को तय आकार के बफ़र में फ़ॉर्मेट करता है। टेक्स्ट न समाए तो वह उसे काट देता है, लेकिन लौटाता वह लंबाई है जो पूरे टेक्स्ट की होती।[3]
NetScaler ADC / Gateway- नेटवर्क की सीमा पर रिमोट एक्सेस और लोड बैलेंसिंग देने वाले Citrix उपकरण। केवल Gateway या AAA वर्चुअल सर्वर के रूप में कॉन्फ़िगर किए गए उपकरण प्रभावित थे।[1]
बफ़र से आगे पढ़ना (CWE-125)- बफ़र के अंत के आगे पढ़ना। कुछ भी ओवरराइट नहीं होता, लेकिन पड़ोसी मेमोरी में जो कुछ है वह उजागर हो जाता है। यह विशिष्ट out-of-bounds read तंत्र (
CWE-125) बताता है; CitrixCVE-2023-4966को व्यापक रूप सेCWE-119में वर्गीकृत करता है।[1], [3] सेशन टोकन- वह मान जो साबित करता है कि उपयोगकर्ता पहले ही लॉग-इन कर चुका है। इसे पेश करने वाले को, बिना पासवर्ड या MFA के, वही उपयोगकर्ता मान लिया जाता है।[2]
फ्रेमवर्क मैपिंग
- इस गाइड में बताई गई कमजोरी के लिए CWE संदर्भ: CWE-119
- CISA KEV — जोड़ा गया 2023-10-18 — CVE-2023-4966
घटना का समयक्रम (Timeline)
बाद की इंसिडेंट-रिस्पॉन्स रिपोर्टों के अनुसार, ख़ामी का ज़ीरो-डे के रूप में दुरुपयोग शुरू होता है।[2]
Citrix सुरक्षा बुलेटिन CTX579459 प्रकाशित करता है, जिसमें सुधरे हुए बिल्ड 14.1-8.50, 13.1-49.15 और 13.0-92.19 हैं।[1]
CISA, CVE-2023-4966 को Known Exploited Vulnerabilities सूची में जोड़ता है।[4]
हमले का चरण-दर-चरण प्रवाह
बफ़र के आगे की मेमोरी भेज दी जाती है
जवाब उसी बड़ी लंबाई के साथ भेजा जाता है, इसलिए उपकरण कटे हुए JSON के साथ पड़ोसी मेमोरी भी लौटा देता है।[2]
सोर्स कोड: कमज़ोर बनाम सुरक्षित कार्यान्वयन
यह उदाहरण के लिए C कोड है, NetScaler का सोर्स कोड नहीं। सुधार snprintf के रिटर्न मान की जाँच करता है, जो बताता है कि पूरा आउटपुट कितना लंबा होता। यदि यह ऋणात्मक हो या बफ़र के आकार के बराबर या उससे बड़ा हो, तो formatting विफल हुई या आउटपुट कट गया; इसलिए फ़ंक्शन कुछ नहीं भेजता। इस तरह send_response को लंबाई तभी मिलती है जब पूरा उत्तर buf में समा जाए।[3], [2]
#include <stdio.h>
int send_response(const char *data, int len);
int send_oidc_config(const char *host)
{
char buf[256];
/* n उन bytes की संख्या है जो लिखे जाते और sizeof(buf) से अधिक हो सकती है */
int n = snprintf(buf, sizeof(buf), "{\"issuer\":\"https://%s\"}", host);
return send_response(buf, n); /* n bytes भेजता है और buf की सीमा से आगे पढ़ता है */
}
#include <stdio.h>
int send_response(const char *data, int len);
int send_oidc_config(const char *host)
{
char buf[256];
int n = snprintf(buf, sizeof(buf), "{\"issuer\":\"https://%s\"}", host);
if (n < 0 || (size_t)n >= sizeof(buf))
return -1; /* कटे हुए आउटपुट को अस्वीकार करें; बफ़र से आगे कभी न भेजें */
return send_response(buf, n);
}
इंजीनियरिंग और सिस्टम सुरक्षा चेकलिस्ट
- ✓snprintf के कटाव की जाँच हर बार करें: if (n < 0 || (size_t)n >= sizeof(buf)) ही त्रुटि वाला रास्ता है। रिटर्न वैल्यू को लिखे गए बाइट्स मान लेना C की आम और गंभीर ग़लती है।[3]
- ✓हमलावर के नियंत्रण वाले इनपुट को कभी आउटपुट की लंबाई तय न करने दें। अविश्वसनीय डेटा से निकले किसी भी आकार को इस्तेमाल से पहले बफ़र की वास्तविक सीमाओं में बाँधें।[3]
- ✓FlawOpen की प्रतिक्रिया सलाह: यदि सेशन टोकन उजागर होने का संदेह हो, तो जहाँ प्लेटफ़ॉर्म इसकी सुविधा देता है वहाँ प्रभावित सेशन रद्द या अमान्य करें। पैच लीक बंद करता है, लेकिन पहले से उजागर टोकन रद्द नहीं करता।
- ✓FlawOpen की संचालन सलाह: सेवा की आवश्यकताएँ अनुमति दें तो सेशन की अवधि कम रखें और अनपेक्षित नेटवर्क या डिवाइस से टोकन के उपयोग की जाँच करें। Mandiant संदिग्ध लॉगिन पैटर्न को जाँच का संकेत मानता है और कहता है कि उनका मूल्यांकन संगठन के संदर्भ में किया जाना चाहिए।[2]
- ✓एज उपकरणों पर भी अपने सर्वरों जैसा ही पैच और निगरानी का अनुशासन लागू करें; वे इंटरनेट के सामने हैं और अपने पीछे के सभी लोगों की पहुँच रखते हैं।[1], [2]