UNIX सिस्टम पर हमला: CUPS के ज़रिए हमला, Part I
सारांश
- CVE-2024-47176:
cups-browsed <= 2.0.1 UDP INADDR_ANY:631 पर bind होता है, जिससे हमलावर-नियंत्रित URL के लिए Get-Printer-Attributes IPP अनुरोध trigger किया जा सकता है
- CVE-2024-47076:
libcupsfilters <= 2.1b1 का cfGetPrinterAttributes5 IPP server से लौटाए गए IPP attributes को validate या sanitize नहीं करता, जिससे हमलावर-नियंत्रित data CUPS सिस्टम तक पहुँच सकता है
- CVE-2024-47175:
libppd <= 2.1b1 का ppdCreatePPDFromIPP2 अस्थायी PPD file में IPP attributes लिखते समय उन्हें validate या sanitize नहीं करता, जिससे हमलावर-नियंत्रित data inject किया जा सकता है
- CVE-2024-47177:
cups-filters <= 2.0.1 का foomatic-rip FoomaticRIPCommandLine PPD parameter के जरिए arbitrary command execution की अनुमति देता है
प्रभाव
- दूरस्थ, बिना authentication वाला हमलावर मौजूदा printer के IPP URL को malicious URL से बदल सकता है या नया printer install कर सकता है, और print job शुरू होने पर arbitrary command चला सकता है
प्रवेश बिंदु
- WAN / सार्वजनिक इंटरनेट: दूरस्थ हमलावर port 631 पर UDP packet भेजता है. Authentication की आवश्यकता नहीं
- LAN: स्थानीय हमलावर zeroconf / mDNS / DNS-SD advertisement spoof करके उसी code path के जरिए RCE हासिल कर सकता है
प्रभावित सिस्टम
- अधिकांश GNU/Linux distributions
- कुछ BSD
- Google Chromium / ChromeOS (संभावित)
- Oracle Solaris
- अन्य
समाधान
cups-browsed service को disable और remove करें
- सिस्टम के CUPS packages को update करें
- यदि सिस्टम को update नहीं किया जा सकता, तो UDP port 631 और सभी DNS-SD traffic को block करें
परिचय
- कुछ हफ्ते पहले, नए laptop पर Ubuntu सेट करते समय UDP port सुनने वाली services की जाँच के लिए
netstat -anu command चलाई गई
- पाया गया कि port 631 पर
cups-browsed UDP का उपयोग करते हुए सभी network interfaces पर listen और respond कर रहा था
cups-browsed का काम नए printers को अपने-आप सिस्टम में जोड़ना है
cups-browsed क्या है?
cups-browsed CUPS सिस्टम का हिस्सा है, जो नए printers खोजता है और उन्हें अपने-आप सिस्टम में जोड़ता है
- इसकी default configuration file में टिप्पणियाँ की गई हैं, और यह किसी को भी connect करने की अनुमति देती है
स्टैक बफ़र ओवरफ़्लो और race condition
cups-browsed oss-fuzz coverage में शामिल नहीं है
process_browse_data function में stack buffer overflow और race condition हो सकते हैं
- इन समस्याओं की सूचना developers और CERT को दी गई, लेकिन अभी तक patch नहीं किया गया है
found_cups_printer पर वापस
found_cups_printer function packet से URL निकालता है और उसे cfGetPrinterAttributes function को देता है
- यह URL हमलावर-नियंत्रित server से connect होता है
Internet Printing Protocol (IPP)
- IPP client devices और printers के बीच communication के लिए एक protocol है
- हमलावर-नियंत्रित printer attributes लौटाकर सिस्टम में printer जोड़ा जा सकता है
GN⁺ का सार
- यह लेख बताता है कि CUPS सिस्टम की vulnerabilities का दुरुपयोग करके remote code execution कैसे हासिल किया जा सकता है
- CUPS से जुड़ी कई vulnerabilities हैं, जिनके जरिए हमलावर सिस्टम पर नियंत्रण पा सकता है
- इन vulnerabilities पर अभी तक patch नहीं आया है, इसलिए उपयोगकर्ताओं को CUPS service disable करनी चाहिए या update करना चाहिए
- इसी तरह की कार्यक्षमता वाले अन्य projects में
LPRng और CUPS के नवीनतम versions शामिल हैं
अभी कोई टिप्पणी नहीं है.