CVE-2024-47176 として追跡されている Common Unix Printing System (CUPS) RCE の欠陥に脆弱なデバイスがないか、セキュリティ専門家が環境をスキャンするのに役立つ自動スキャナーがリリースされた。
この欠陥は、特定の条件が満たされた場合に攻撃者が任意のリモート・コード実行を可能にするもので、発見者であるSimone Margaritelli氏によって先月末に公開された。
悪用するための前提条件があるため、実際の展開では RCE の側面は限定的なものに見えますが、アカマイはその後、CVE-2024-47176 が分散型サービス妨害(DDoS)攻撃において600 倍に増幅される可能性もあることを示しました。
このスキャナーはサイバーセキュリティ研究者の Marcus Hutchins 氏(別名「MalwareTech」)によって作成されたもので、システム管理者がネットワークをスキャンし、脆弱な CUPS-Browsed サービスを実行しているデバイスを迅速に特定できるよう支援するものです。
「この脆弱性は、cups-browsedがその制御ポート(UDPポート631)をINADDR_ANYにバインドし、世界中に公開していることに起因する。リクエストは認証されないので、制御ポートに到達できる人なら誰でも、cups-browsedに発見されたプリンターの実行を指示できる。”
“(ファイアウォールやNATのために)インターネットからポートに到達できない場合でも、ローカルネットワーク経由で到達できる可能性があり、特権の昇格や横移動が可能になる。”
“このような理由から、脆弱なcups-browsedインスタンスをローカルネットワークからスキャンするように設計されたこのスキャナーを作成しました。”– マーカス・ハッチンス
スキャナーの仕組み
Pythonスクリプト(cups_scanner.py)は、ネットワーク上のデバイスからのHTTPリクエスト(コールバック)をリッスンするHTTPサーバーをスキャンマシンにセットアップします。
CVE-2024-47176は、CUPS-browsed(CUPSのデーモン)がその制御ポート(UDPポート631)をINADDR_ANYにバインドし、そのポートをネットワークに公開し、どんなシステムでもそのポートにコマンドを送れるようにすることから発生する。
スキャナは、ポート631のネットワークのブロードキャストアドレスにカスタムUDPパケットを送信し、指定された範囲の各IPアドレスに送信し、CUPSインスタンスにリクエストを送り返すように指示する。
脆弱なcups-browsedインスタンスを実行しているデバイスがUDPパケットを受信すると、リクエストを解釈してサーバにHTTPコールバックを送信するので、応答したものだけが脆弱であるとマークされる。
1つ(cups.log)は応答したデバイスのIPアドレスとCUPSバージョンを含み、もう1つ(requests.log)はコールバックサーバーによって受信された生のHTTPリクエストを含み、より深い分析に使用できる。
このスキャナーを使用することで、システム管理者は標的を絞ったパッチ適用や再構成を計画・実行し、CVE-2024-47176のオンライン暴露を最小限に抑えることができる。
このスクリプトの有効性や安全性については保証できませんので、自己責任で使用してください。
Comments