Skip to main content

CUPS (Common UNIX Printing System) にゼロデイ RCE の脆弱性が見つかる

feature-insights-context

2024年9月27日

0 分で読めます

2024 年 9 月 27 日、evilsocket.net (Simone Margaritelli 氏) が、任意のリモートコード実行 (RCE) を可能にする CUPS (Common UNIX Printing System) の複数の脆弱性に関する情報を公開しました。この調査結果には現在 4 件の CVE が関連付けられており、今後増える可能性があります。ただし、これらの脆弱性の重大度についての議論も行われており、CVE のうちの 1 つについては当初 CVSS スコア 9.9 が設定されました。最新情報を入手次第、こちらのブログを更新します。

重要なお知らせ: これらの脆弱性および元の研究者である Simone 氏により検出されたその他の脆弱性に関連する他の CVE が発行される場合があります。必要に応じて新しい詳細情報でこのブログを更新します。

現在わかっていること

一般的なプリンターサポートパッケージである Common UNIX Printing System (CUPS) に影響する新しいゼロデイ脆弱性が特定されました。これは、ダウンストリームパッケージである、cups-browsedlibcupsfilterscups-filterslibppd に影響します。この脆弱性により、認証されていないリモートコード実行 (RCE) が可能となり、少なくとも 1 つの脆弱性に CVSS スコア 9.9 が割り当てられました。ただし、この脆弱性を悪用できるのは、CUPS サービスが有効になっているサーバーに限定され、さらに外部ネットワークアクセスでより一般的な UDP ポート 631 (CUPS を別のポートに再マップすることはできない) または社内ネットワークでより一般的な DNS-SD のいずれかへのアクセスが必要です。

この脆弱性に関連する以下の複数のアドバイザリが存在します。

この脆弱性は現在、以下のパッケージの以前のすべてのバージョンに影響します。

  • distrotech/cups-filters - すべてのバージョン

  • OpenPrinting/cups-filters - すべてのバージョン

  • cups-browsed - すべてのバージョン

  • libcupsfilters - すべてのバージョン

  • libppd - すべてのバージョン

CUPS は 1999 年以降、UNIX および Linux オペレーティングシステムに組み込まれており、多くの UNIX と Linux のディストリビューション、Apple、Windows、その他のオペレーティングシステムで広く配布されています。CUPS は印刷サービスを提供するため、通常はネットワーク要求をリッスンするので、RCE の脆弱性と攻撃の影響を受けやすくなっています。

対策準備

Snyk では、管理されていない C/C++ パッケージの検出を含め、Snyk Open Source と Snyk Container の両方で脆弱性を検出します。さらに、Snyk とそのランタイムセキュリティパートナーはこの脆弱性を含む実行中のコンテナが存在するかどうかを示すことができ、多くの場合、影響を受ける CUPS プロセスがコンテナの実行中にロードされるかどうか、およびコンテナがネットワークアクセス用に構成されているかどうかを識別できます。

  • コンテナとパッケージの使用状況を確認して、CUPS へのエクスポージャを測定します。

  • CUPS が本当に必要かどうかを判断し、必要でなければ削除するまたは無効化することを検討します。

  • CUPS が不要なことが確実な場合は、外部ネットワークから UDP ポート 631 へのアクセスをブロックすることを検討する必要があります。さらに、社内トラフィック用の DNS-SD トラフィックをブロックすることも検討できます。ただし、DNS-SD は CUPS 以外にも使用されるため、追加調査が必要になる場合があることに注意してください。

Snyk Open Source 

Snyk Open Source を使って影響を受けるパッケージを検出するには、snyk test コマンドを使用するか、C/C++ のコードとライブラリがある場合は、snyk test --unmanaged コマンドを使用します。Snyk Open Source に監視されている以前にスキャン済みのプロジェクトはすべて自動的に再テストされ、それらのプロジェクトを確認することができます。

サポートされている SCM 統合 (GitHub、Bitbucket、GitLab、Azure Repos) を使用してプロジェクトを Snyk にインポートすると、自動的にテストが開始され、Snyk UI を使用してプロジェクト内のこれらの脆弱性を特定し、優先順位を付けて修正できるようになります。 

  • Snyk CLI と CI/CD の統合:

    • snyk test (ほとんどの言語向け)

    • snyk test --unmanaged (C/C++ プロジェクト用)

    • snyk monitor を使用してこれらのプロジェクトを継続的に監視することもできます。

  • ソースコードマネージャー:

    • 新しいインポートの自動検出

    • 既存プロジェクトの自動再スキャンは進行中

    • 既存プロジェクトの日次更新はデフォルトかつ自動

  • IDE:

    • Snyk の IDE プラグインは Snyk CLI を使用して、スキャン中にこれらの脆弱性を検出します。

Snyk Container

Snyk Container を使って影響を受けるコンテナイメージを検出するには、snyk container test コマンドを使用します。既にスキャン済みのプロジェクトがあり、Snyk Container で監視されている場合、プロジェクトは自動的に再テストされるため、今すぐプロジェクトを確認できます。

Snyk CLI と CI/CD の統合:

  • snyk container test により、コンテナイメージがチェックされ、言語マニフェスト (package.json など) を探して使用状況が検出されます。

  • snyk container monitor でもスキャンと検出が実行され、今後の脆弱性を継続的に監視します。

  • コンテナレジストリ:

    • レジストリ統合によりスキャンされたコンテナでは、インポート時にこれらの脆弱性が自動的に検索されます。

    • 既存のインポート済みコンテナプロジェクトでは、この脆弱性の存在に対してアラートが発生します。

  • ソースコードマネージャー:

    • Snyk Container は SCM インポート中に Dockerfile をスキャンしますが、チェックされるのは親イメージのみであり (FROM コマンド)、一部の Docker Certified 親イメージについてのみ脆弱性を報告します。親イメージが対象であり、この脆弱性がある場合、そのイメージは報告されます。ただし、ビルド後に実際のコンテナイメージをスキャンすることが、最も信頼できる検出方法です。

Snyk のリスクスコアを使用した優先順位付け

たいていの場合、プロジェクト内に複数の cups の問題を発見する可能性が高く、修正作業を最初にどこに集中すべきか混乱する場合があります。Snyk の問題リスクスコアは、多くのリスク要因を取り入れて、最初に対処すべき問題を迅速に特定できるようにします。このスコアには、EPSS、攻撃方法の成熟度、CVSS、社会的傾向など、多くのシグナルが含まれており、脆弱性のリストを素早くふるいにかけ、それに応じて修正に優先順位をつけるために利用できます。 

スコアはプロジェクトページに検出された問題ごとに表示され、Snyk のレポート内でも利用できます。

1_Zero-day_RCE_vulnerability_found_in_CUPS_-_Common_UNIX_Printing_System

Snyk レポート

Snyk の「Featured Zero-Day」レポートリストの中に、この一連の脆弱性に対して利用可能な新しいレポートがあります。エンタープライズプランをご利用中の場合は、左のナビゲーションで「レポート」をクリックしてこのレポートにアクセスできます (グループレベルと組織レベルの両方のレポートを利用できます)。デフォルトでは、「問題の詳細」レポートが表示されますが、レポートタイトルの横にある「レポートの変更」ドロップダウンをクリックして「Featured Zero-Day」を選択できます。次の画面で、ゼロデイのドロップダウンリストから CUPS レポートを選択します。

2_Zero-day_RCE_vulnerability_found_in_CUPS_-_Common_UNIX_Printing_System

問題の詳細、問題の概要、脆弱性の詳細、SLA 管理の各レポートで CVE を他のフィルターと一緒に使用して、独自のカスタムレポートを作成、保存、共有し、すべての Snyk Open Source と Snyk Container の検出全体でこの脆弱性を追跡することもできます。レポートおよび他のページで次の CVE をフィルターして抽出します: CVE-2024-47177、CVE-2024-47176、CVE-2024-47076 および CVE-2024-47175。 

以下の動画は、1 つの CVE をフィルター処理するところを示していますが、必要なすべての CVE を一度に含めることができます。

3_Zero-day_RCE_vulnerability_found_in_CUPS_-_Common_UNIX_Printing_System

Snyk AppRisk Pro

Snyk AppRisk Pro を使用している場合、「問題」画面のインサイトファネルが、これらの脆弱性があり、さらに外部ネットワークアクセスもあるアプリケーションの実行中インスタンスをピンポイントで特定します。ここでも、フィルターを追加して必要な問題だけに集中することができます。

4_Zero-day_RCE_vulnerability_found_in_CUPS_-_Common_UNIX_Printing_System

Snyk の役割

Snyk のセキュリティ専門家はリリースの更新、脆弱性の情報、ソーシャルメディアでのチャットなどを積極的に追跡し、入手したデータをお客様に提供しています。さらに、影響を受けるダウンストリームのパッケージについても追加調査を行っています。新しい情報は必要に応じてこのブログでお伝えします。ここで紹介した脆弱性についてご質問がある場合は、Snyk Community Discord 経由でいつでもご連絡ください。または、無料トライアルに登録してこれらの脆弱性の影響を受けているかどうかを判断できます。