ブログ

深掘り:GNU/Linuxシステムにおける深刻なCUPS脆弱性の全容解明

October 7, 2024
Laura Verheyde

ここ数年、Linuxシステムには深刻な脆弱性が次々と報告されており、Linuxユーザーにとって厳しい状況が続いています。セキュリティ研究者たちは現在、GNU/Linuxシステムを標的とし、リモートコード実行(RCE)の潜在的な経路となるCommon UNIX Printing System(CUPS)の新たな脆弱性群の調査を進めています。

2024年9月27日、evilsocket.netのSimone Margaritelli氏は、CUPSにおける複数の悪用可能な脆弱性に関する重要な情報を公開しました。これを受けて4つの脆弱性にCVE番号が割り当てられましたが、今後さらに増える可能性があります。現時点では、これらの発見の深刻度についてセキュリティコミュニティで議論が続いています。CVEの一つであるCVE-2024-47177は、MITREから9.1という極めて高い深刻度評価を受けていますが、このコマンドインジェクションの欠陥を悪用するには、CUPSサービスが有効なサーバーであることに加え、UDPポート631またはDNS-SDへのアクセスが必要となります。RedHatは、CUPSを別のポートに再マッピングすることも可能であると指摘しています。

Margaritelli氏による包括的な分析では、コミュニティ内で意見の相違はあるものの、無視できない複雑で巧妙な攻撃チェーンが明らかになりました。これは、脅威アクターに強い意志があり、不適切なコーディングパターンによってわずかな隙が残されていれば、一見無害に見える依存関係であっても深刻な悪用が可能であるという教訓を与えてくれます。

今回のCUPSのケースは、多くの開発者やアプリケーションセキュリティの専門家がこれまで経験してきたものとは少し異なります。その詳細を確認し、理解を深めていきましょう。

脆弱性の概要:CUPSを介したリモートコード実行(RCE)

今回の脆弱性に関する比類のない詳細な背景情報はEvilsocketのブログで公開されており、今後も注視すべきリソースです。Margaritelli氏は記事の中で、Linuxの一般的なセキュリティの堅牢性について悲観的な見方を示す匿名の情報源の言葉を引用しています。

‍

「一般的なセキュリティの観点から見ると、今日のLinuxシステム全体は、悪用されるのを待っているセキュリティホールが無限に広がる、絶望的な混乱状態にある。」」

これは、オープンソース環境に依然として存在する固有のセキュリティリスクを痛感させるものであり、グローバルな開発コミュニティにおいて、セキュリティ意識の向上とセキュアコーディングスキルの習得がいかに急務であるかを物語っています。

各CVEの内容を見ていきましょう。

‍この脆弱性チェーンは広範囲に及び、現在、以下のパッケージの全バージョン(過去のバージョンを含む)に影響を及ぼしています。

  • distrotech/cups-filters
  • OpenPrinting/cups-filters
  • Cups-browsed
  • libcupsfilters
  • libppd

CUPSは20年以上にわたり、UNIXおよびLinuxオペレーティングシステムのレガシーコンポーネントとして存在してきました。印刷サービスという依存関係の性質上、ネットワークリクエストを頻繁に行うため、RCEクラスの脆弱性の格好の標的となっています。

今回のケースでは、複数の攻撃を組み合わせて成功に導くという巧妙さが見られます。これは、認証されていない攻撃者が、Internet Printing Protocol(IPP)のURLを悪意のあるものに置き換え、さらにPPD(PostScript Printer Description)ファイル内のディレクティブを改ざんすることでコマンドインジェクションを引き起こすというものです。PPDファイルは、新たに追加されたプリンターの機能を記述するために使用されます。その結果、印刷ジョブが実行されるとコマンド実行攻撃が発生します。これはCUPSコンポーネントにおける入力バリデーションの欠如に起因しています。

さらに、Evilsocketが指摘するように、この特定の脆弱性を修正することは諸刃の剣でもあります。CUPSには「foomatic-rip」フィルターが含まれていますが、これは以前からリスクが高く、悪用されやすいコンポーネントとして知られています。このコンポーネントに関連するCVEは2011年まで遡ります。foomatic-ripが悪用されてOSコマンドが実行されることは確認されていますが、これを修正すると安定性の問題が発生し、多くの古いプリンターのサポートが失われてしまいます。これは解決が困難な複雑な問題です。

  1. 脅威アクターによる攻撃の開始
    1. CVE-2024-47176:cups-browsed 2.0.1以下は、INADDR_ANYを使用してUDPポート631にバインドするため、あらゆるソースからのパケットを信頼してしまうという脆弱性があります。これにより、認証されていないリモートの攻撃者が、操作されたIPP URL(攻撃者が制御するIPPサーバーを指す)を含む悪意のあるUDPパケットを送信し、脆弱性をトリガーできます。被害者のマシンは新しいプリンターに接続していると誤認し、プリンター属性を要求するリクエストを送信します。
  2. 被害者システムによるプリンター属性の処理
    1. CVE-2024-47076:libcupsfilters 2.1b1以下には、cfGetPrinterAttributes5関数に脆弱性があり、IPPサーバーから返されたIPP属性を適切に検証またはサニタイズしません。cups-browsedがパケットを処理する際、攻撃者が送信した悪意のある属性を読み込むよう誘導される可能性があります。
  3. 被害者システムが攻撃者の制御するIPPサーバーに接続
    1. CVE-2024-47175:libppd 2.1b1以下では、ppdCreatePPDFromIPP2関数がIPP属性を一時的なPPDファイルに保存する際に、適切な検証やサニタイズを行いません。これにより、攻撃者はPPDファイルに任意のデータを注入できます。これには、後に印刷システムが実行する可能性のあるFoomaticRIPCommandLineディレクティブも含まれます。
  4. 被害者システムが印刷ジョブを開始し、攻撃者のコードが実行される
    CVE-2024-47177
    :cups-filters 2.0.1以下は、foomatic-ripフィルターがFoomaticRIPCommandLineディレクティブを通じて任意のコマンドを実行するため脆弱です。これにより、攻撃者はcups-browsedプロセスとしてコマンドを実行できます。攻撃者は被害者のマシンが印刷ジョブを開始するのを待ちます。その瞬間、攻撃者の悪意のあるコードが実行されます(リモートコード実行)。

RCEのリスクを軽減するには?

CUPSを業務で使用している企業は、EvilsocketおよびRedHatが推奨する修正アドバイスに従う必要があります。これには、緊急レベルの優先度でセキュリティパッチを適用することが含まれますが、これに限定されません。

コマンドインジェクション全般については、当社の包括的なガイドをご覧ください。

コーディングに関する無料ガイドラインをご希望の方は、Secure Code Coachをぜひチェックしてください。セキュアコーディングのベストプラクティスを常に把握するのに役立ちます。

タグライン

AI主導の開発をリリース前にガバナンスする

AIを活用したリスク測定、コミット時のセキュアコーディングポリシーの強制、そしてSDLC全体を通じたセキュアなデリバリーの加速を実現します。

デモを予約する
リソースライブラリ

他のブログ記事を見る

セキュアコーディング、AIガバナンス、ソフトウェアリスク管理に関する専門的なコンテンツをご覧ください。

すべて表示
導入事例
フィルターラベル
これはdivブロック内のテキストです。

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

詳細はこちら
導入事例
フィルターラベル
これはdivブロック内のテキストです。

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

詳細はこちら
導入事例
フィルターラベル
これはdivブロック内のテキストです。

セキュリティ文化の統一:Sageはいかにしてチャンピオンプログラムを構築したか

Sageがどのようにして柔軟かつ関係性を重視したアプローチでセキュリティを強化し、200名以上のセキュリティチャンピオンを育成して、目に見えるリスク低減を実現したのかをご紹介します。

詳細はこちら
ブログ
フィルターラベル
これはdivブロック内のテキストです。

2026年サイバーセキュリティ意識向上月間:企業防衛に不可欠なAIセキュリティの理解

主要なAI企業の多くが、安全対策が追いつくまでの間、AI開発を世界的に減速させるよう公に呼びかける事態となっています。しかし現実には、深刻なセキュリティ問題はすでに顕在化しています。AI導入に伴う金銭的コストやリスクが増大し続ける中、多くのセキュリティリーダーや経営陣は差し迫った状況に追い込まれています。

詳細はこちら
ブログ
フィルターラベル
これはdivブロック内のテキストです。

イネーブラー8:プログラムのブランディング

セキュアコーディングプログラムを成功させるには、優れたコンテンツ以上のものが必要です。イネーブラー8では、ブランディングによって参加を「憧れのステータスを得る体験」へと変える方法を解説します。

詳細はこちら
ブログ
フィルターラベル
これはdivブロック内のテキストです。

すべての従業員が今、AIサイバーセキュリティの最前線に立っている

エンタープライズテクノロジーの状況は、手遅れになるまで誰も予測できなかったほどの速さで変化しています。私たちは今、人間が書いたコードと基本的なコパイロット支援の時代から、エージェント型開発ライフサイクル(ADLC)の時代へと正式に足を踏み入れました。自律型AIエージェントは、複数の機能にわたってかつてない効率性をもたらす一方で、全く新しい種類のセキュリティリスクや規制リスクも引き起こしています。

詳細はこちら

AIを活用した開発をリリース前にセキュアに

開発者のリスクを可視化し、ポリシーを適用することで、ソフトウェア開発ライフサイクル全体における脆弱性を未然に防ぎます。

デモを予約する
該当する項目が見つかりません。