
CVE-2025-59359, Chaos-Mesh में एक महत्वपूर्ण OS कमांड इंजेक्शन दोष, का एक व्यावहारिक फॉरेंसिक वॉकथ्रू। जानें कैसे हमलावर GraphQL म्यूटेशन के माध्यम से Kubernetes क्लस्टर को हाईजैक करते हैं, और ELK का उपयोग करके उल्लंघन का पता कैसे लगाएं, विश्लेषण करें और रिपोर्ट करें।
CVE-2025-59359 का एक व्यावहारिक फोरेंसिक वॉकथ्रू, जो Chaos-Mesh में एक गंभीर OS कमांड इंजेक्शन दोष है। जानें कि कैसे हमलावर GraphQL म्यूटेशन के माध्यम से कुबेरनेटीस क्लस्टर को हाईजैक करते हैं, और ELK का उपयोग करके उल्लंघन का पता कैसे लगाएं, विश्लेषण करें और रिपोर्ट करें।
मार्क मल्लिया द्वारा
CVE-2025-59359 Chaos-Mesh के कंट्रोलर मैनेजर में एक गंभीर OS कमांड इंजेक्शन दोष को उजागर करता है। यह कमजोरी हमलावरों को कुबेरनेटीस पॉड्स में मनमाने शेल कमांड निष्पादित करने की अनुमति देती है, जिससे संभावित रूप से पूर्ण क्लस्टर समझौता हो सकता है। यह लेख शोषण का अनुकरण करता है, इसके फोरेंसिक फुटप्रिंट को मैप करता है, और तकनीकी टीमों और कार्यकारी हितधारकों दोनों के लिए प्रासंगिक पहचान और शमन रणनीतियों की रूपरेखा प्रस्तुत करता है।
कुबेरनेटीस सुरक्षा की निरंतर विकसित होती दुनिया में, CVE-2025-59359 एक स्पष्ट अनुस्मारक के रूप में सामने आता है कि कैसे एक एकल अनदेखा इनपुट पूरे क्लस्टर को बर्बाद कर सकता है। यह गंभीर कमजोरी (CVSS 9.8) Chaos-Mesh के कंट्रोलर मैनेजर को प्रभावित करती है, जहां उपयोगकर्ता द्वारा प्रदत्त पैरामीटर बिना किसी जांच या स्वच्छता के शेल कमांड में लापरवाही से जोड़ दिए जाते हैं। परिणाम? क्लस्टर के अंदर एक अप्रमाणित हमलावर पॉड्स में मनमाने कमांड निष्पादित कर सकता है, भयावह आसानी से पूर्ण नियंत्रण प्राप्त कर सकता है। यह कमांड इंजेक्शन के माध्यम से विशेषाधिकार वृद्धि का एक पाठ्यपुस्तक मामला है, और इसका एक शक्तिशाली उदाहरण है कि क्लाउड-नेटिव वातावरण में सुरक्षित कोडिंग आज्ञाएं क्यों मायने रखती हैं।
दोष cleanTcs म्यूटेशन के अंदर मौजूद है। यह म्यूटेशन कैओस प्रयोगों के बाद Linux ट्रैफिक-कंट्रोल (TC) सेटिंग्स को साफ करता है, और यह प्रयोग विनिर्देशों से उपयोगकर्ता द्वारा प्रदत्त पैरामीटर स्वीकार करता है।
जब कोई हमलावर उन पैरामीटरों के लिए एक गढ़ा हुआ मान प्रदान करता है, तो परिणामी शेल कमांड स्ट्रिंग संयोजन द्वारा बनाया जाता है। इस कमांड को कंट्रोलर मैनेजर विशेषाधिकारों के साथ निष्पादित करने से पहले कोई रक्षात्मक जांच नहीं की जाती है—इसका मतलब है कि एक अप्रमाणित उपयोगकर्ता क्लस्टर द्वारा नियंत्रित किसी भी पॉड या नेमस्पेस में मनमाने कमांड इंजेक्ट कर सकता है।
नीचे म्यूटेशन के स्रोत कोड का एक अंश दिया गया है (इसके Go कार्यान्वयन के संदर्भ में दिखाया गया है)।
// cleanTcsMutation.go
func executeCleanTcs(ctx context.Context, payload Payload) error {
// Build command string using user input directly
cmd := fmt.Sprintf(
"tc qdisc add dev %s root handle 1: htb rate %s ceil %s",
payload.Device,
payload.Rate,
payload.Ceil,
)
log.Debugf("Running command: %s", cmd)
if err := ctx.RunCommand(cmd); err != nil {
return fmt.Errorf("tc clean mutation failed: %w", err)
}
return nil
}
Device, Rate, और Ceil।एक कुबेरनेटीस क्लस्टर की कल्पना करें जो Chaos-Mesh चला रहा है, जहां एक हमलावर एक प्रतीत होने वाला निर्दोष प्रयोग स्पेक तैयार करता है। लेकिन ट्रैफिक कंट्रोल को ट्यून करने के बजाय, वे Device, Rate, या Ceil जैसे फ़ील्ड में ; rm -rf /tmp जैसे पेलोड डाल देते हैं। UI या API के माध्यम से सबमिट करने के बाद, म्यूटेशन आँख बंद करके कमांड बनाता और निष्पादित करता है—कोई स्वच्छता नहीं, कोई सुरक्षा बाधा नहीं। और चूंकि यह कंट्रोलर-मैनेजर विशेषाधिकारों के साथ चलता है, इंजेक्ट किया गया कोड पॉड्स में आग की तरह फैलता है। इससे भी बदतर, यदि हमलावर CVE-2025-59358 का भी लाभ उठाकर GraphQL एंडपॉइंट तक बिना प्रमाणीकरण के पहुंचता है, तो उन्हें क्रेडेंशियल्स की भी आवश्यकता नहीं है।
यदि उत्पादन में शोषण किया जाता है, तो CVE-2025-59359 हमलावरों को सेवाओं को बाधित करने, संवेदनशील वर्कलोड तक पहुंचने और नेमस्पेस में पिवट करने की अनुमति दे सकता है—जो व्यवसाय निरंतरता और नियामक अनुपालन के लिए एक भौतिक जोखिम पैदा करता है। Chaos-Mesh का उपयोग करने वाले संगठनों को पैचिंग, RBAC प्रवर्तन और GraphQL एंडपॉइंट ऑडिटिंग को प्राथमिकता देनी चाहिए।
| रणनीति | तकनीक |
|---|---|
| Execution | T1059 – कमांड और स्क्रिप्टिंग इंटरप्रेटर |
| Privilege Escalation | T1068 – विशेषाधिकार वृद्धि के लिए शोषण |
| Lateral Movement | T1021 – दूरस्थ सेवाएँ |
| Impact | T1499 – एंडपॉइंट सेवा अस्वीकार |
cleanTcs म्यूटेशन में उपयोगकर्ता इनपुट हैंडलिंग के आसपास अपनी नीति की समीक्षा करें।अपने Logstash कॉन्फ़िग निर्देशिका में logstash-tcs.conf नामक एक फ़ाइल बनाएं।
input {
beats {
port => 5044
codec => "json"
}
}
filter {
# The Python script will be referenced here.
python {
code => "/opt/elk/python/process_tcs.py"
add_field => { "[tcs]" => "%{[message][device]}-%{[message][rate]}-%{[message][ceil]}" }
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "chaos-tcs"
document_type => "experiment"
codec => "json"
}
}
### Python फ़िल्टर स्क्रिप्ट – process_tcs.py
#!/usr/bin/python3
def process(event):
"""
Transforms the raw event from Logstash into a JSON document suitable for Elasticsearch.
Expected input format (example):
{
"message": {
"device": "eth0",
"rate": "100mbit/s",
"ceil": "200mbit/s",
"timestamp": "2025‑09‑18T14:33:00Z"
}
}
The script extracts the three key values, normalises them and returns a dictionary.
"""
# 1. Grab nested fields
device = event.get("message", {}).get("device", "")
rate = event.get("message", {}).get("rate", "")
ceil = event.get("message", {}).get("ceil", "")
# 2. Normalise numeric values – remove unit suffixes and cast to float.
def strip_unit(val, unit):
return float(val.replace(unit, "").strip())
rate_val = strip_unit(rate, "mbit/s")
ceil_val = strip_unit(ceil, "mbit/s")
# 3. Build output dict
result = {
"device": device,
"rate_mbit_s": rate_val,
"ceil_mbit_s": ceil_val,
"ts": event.get("message", {}).get("timestamp", ""),
"tcs_id": f"{device}-{rate_val}-{ceil_val}"
}
# 4. Return the dict
return result
### Elasticsearch इंडेक्स मैपिंग
एक मैपिंग फ़ाइल chaos-tcs-mapping.json बनाएं:
{
"mappings": {
"_doc": {
"properties": {
"device": { "type": "keyword" },
"rate_mbit_s":{ "type":"float" },
"ceil_mbit_s":{ "type":"float" },
"ts": { "type":"date", "format":"yyyy-MM-dd'T'HH:mm:ssZ"},
"tcs_id": { "type":"keyword" }
}
}
}
}
CVE-2025-59359 के प्रभाव को वास्तविक समय में देखने के लिए, डैशबोर्ड तीन प्रमुख पैनल प्रदान करता है जो कच्चे कैओस प्रयोग डेटा को कार्रवाई योग्य अंतर्दृष्टि में बदलते हैं। टाइम-सीरीज़ लाइन प्रति पॉड rate_mbit_s को ट्रैक करती है, नेमस्पेस द्वारा एकत्रित होकर टीमों को क्लस्टर भर में ट्रैफिक शेपिंग में विसंगतियों का पता लगाने में मदद करती है। हिस्टोग्राम प्रति घंटे प्रयोगों की मात्रा दिखाता है और जब दर माध्य से 1.5× से अधिक हो जाती है तो अलर्ट ट्रिगर करता है, संभावित दुरुपयोग या स्वचालित हमले पैटर्न को उजागर करता है। अंत में, फ़िल्टर तालिका प्रत्येक tcs_id को उसकी निष्पादन स्थिति और सफलता फ़्लैग के साथ सूचीबद्ध करती है, जिससे जांचकर्ता तुरंत विफल या संदिग्ध रन को अलग कर सकते हैं। साथ में, ये पैनल एक फोरेंसिक लेंस बनाते हैं कि कैसे कमांड इंजेक्शन कुबेरनेटीस वातावरण में सामने आता है।
एक सरल अलर्ट नियम जोड़ें:
PUT /chaos-tcs/_settings
{
"number_of_shards": 2,
"number_of_replicas": 1
}
एक इन्जेस्ट पाइपलाइन बनाएं जो ऊपर दिए गए Python स्क्रिप्ट का उपयोग करती है, फिर एक Kibana अलर्ट कॉन्फ़िगर करें जो तब फायर हो जब rate_mbit_s अपने 24-घंटे के मूविंग एवरेज से 15% से अधिक विचलित हो।
### तैनाती चेकलिस्ट
CVE-2025-59359 सिर्फ एक भेद्यता डेटाबेस में एक और पंक्ति नहीं है; यह एक ज्वलंत उदाहरण है कि कैसे अनदेखा इनपुट स्वच्छता पूरे कुबेरनेटीस क्लस्टर की सुरक्षा को बर्बाद कर सकती है। इस शोषण से गुज़रते हुए, हमने देखा है कि कैसे Chaos-Mesh में एक एकल म्यूटेशन रिमोट कोड निष्पादन, विशेषाधिकार वृद्धि और पूर्ण पॉड समझौता का प्रवेश द्वार बन सकता है। लेकिन इससे भी महत्वपूर्ण बात, हमने दिखाया है कि कैसे अवलोकनीयता, फोरेंसिक टूलिंग, और विचारशील पहचान तर्क कैओस को स्पष्टता में बदल सकते हैं।
यह परियोजना विशेष रूप से शैक्षिक और नैतिक उपयोग के लिए है। सभी प्रदर्शन, सिमुलेशन और फोरेंसिक वॉकथ्रू वास्तविक दुनिया की कमजोरियों के बारे में जागरूकता बढ़ाने और सुरक्षित कोडिंग, जिम्मेदार प्रकटीकरण और सक्रिय रक्षा रणनीतियों को बढ़ावा देने के लिए डिज़ाइन किए गए हैं। किसी भी परिस्थिति में यहां प्रस्तुत तकनीकों या अंतर्दृष्टियों का उपयोग स्पष्ट प्राधिकरण के बिना लाइव सिस्टम से समझौता करने, बाधित करने या शोषण करने के लिए नहीं किया जाना चाहिए।
| वस्तु | कार्रवाई |
|---|
| Logstash सेवा | सुनिश्चित करें कि beats इनपुट पोर्ट 5044 पर सुन रहा है। |
| Python स्क्रिप्ट अनुमतियाँ | /opt/elk/python/process_tcs.py निष्पादन योग्य होना चाहिए (chmod +x)। |
| Elasticsearch इंडेक्स | मैपिंग फ़ाइल के साथ PUT /chaos‑tcs/_mapping। |
| Kibana डैशबोर्ड | JSON परिभाषा आयात करें और Command‑Injection Overview के रूप में सहेजें। |
| सुरक्षा समूह | अपने Kubernetes नोड्स से पोर्ट 5044 पर ट्रैफ़िक की अनुमति दें। |
| निगरानी | प्रत्येक 5 मिनट में curl -s http://localhost:9200/_cat/indices?v चलाने के लिए एक क्रॉन जॉब जोड़ें ताकि इंडेक्स स्वास्थ्य की पुष्टि हो सके। |