Linux Distros のパッチ未適用の脆弱性: CVE-2022-46169

critical Nessus プラグイン ID 259583

概要

Linux/Unix ホストには、ベンダーにより修正されていないことを示す脆弱性を持つ複数のパッケージがインストールされています。

説明

Linux/Unix ホストには、ベンダーが提供するパッチが利用できない脆弱性の影響を受ける複数のパッケージがインストールされています。

- Cacti は、堅牢で拡張可能な操作モニタリングおよび障害管理フレームワークをユーザーに提供するオープンソースプラットフォームです。影響を受けるバージョンでは、監視されているデバイスに対して特定のデータソースが選択されている場合、コマンドインジェクションの脆弱性により、認証されていないユーザーが Cacti を実行しているサーバーで任意のコードを実行する可能性があります。この脆弱性は「remote_agent.php」ファイルにあります。このファイルは認証なしでアクセスできます。この関数は「get_client_addr」を介してクライアントの IP アドレスを取得し、「gethostbyaddr」を介してこの IP アドレスを対応するホスト名に解決します。この後、ホスト名が解決されたホスト名に対応する「poller」テーブル内にエントリが存在することが検証されます。そのようなエントリが見つかった場合、関数は「true」を返し、クライアントは認証されます。
「get_client_addr」関数の実装により、この認証がバイパスされる可能性があります。この関数はファイル「lib/functions.php」で定義され、クライアントの IP アドレスを決定するために複数の「$_SERVER」変数をチェックします。「HTTP_」で始まる変数は、攻撃者が任意に設定できます。
Cacti を実行しているサーバーのホスト名を含む「poller」テーブルにデフォルトのエントリがあるため、攻撃者はヘッダー「Forwarded-For: <TARGETIP>」などを入力して認証をバイパスできます。このように、関数「get_client_addr」は、Cacti を実行しているサーバーの IP アドレスを返します。次の「gethostbyaddr」への呼び出しは、この IP アドレスをサーバーのホスト名に解決します。これは、デフォルトのエントリのため、「poller」ホスト名のチェックに合格します。「remote_agent.php」ファイルの認証がバイパスされた後、攻撃者がさまざまなアクションを発生させる可能性があります。これらのアクションの 1 つは「polldata」と呼ばれます。呼び出された関数「poll_for_data」は、いくつかのリクエストパラメーターを取得し、対応する「poller_item」エントリをデータベースからロードします。「poller_item」の「action」が「POLLER_ACTION_SCRIPT_PHP」と等しい場合、PHP スクリプトを実行するために関数「proc_open」が使用されます。攻撃者が制御するパラメーター「$poller_id」は、任意の文字列を許可する「get_nfilter_request_var」関数を介して取得されます。この変数は後に「proc_open」に渡される文字列に挿入され、コマンドインジェクションの脆弱性を引き起こします。例えば「poller_id=;id」を提供することで、「id」コマンドが実行されます。脆弱な呼び出しに到達するために、攻撃者は「host_id」と「local_data_id」を提供する必要があります。ここで、対応する「poller_item」の「action」は「POLLER_ACTION_SCRIPT_PHP」に設定されます。これらの ID (「host_id」と「local_data_id」) は、簡単にブルートフォースすることができます。唯一の要件は、「POLLER_ACTION_SCRIPT_PHP」アクションを持つ「poller_item」が存在することです。これは、このアクションが「Device - Uptime」または「Device - Polling Time」などのいくつかの事前定義されたテンプレートによって追加されるため、実稼働インスタンスで発生する可能性が非常に高くなります。このコマンドインジェクションの脆弱性により、「action」タイプが「POLLER_ACTION_SCRIPT_PHP」(「2」) の「poller_item」が設定されている場合、認証されていないユーザーが任意のコマンドを実行する可能性があります。攻撃者が「get_client_addr」(ファイル「lib/functions.php」) に任意の IP アドレスを返させないようにすることで、認証バイパスを回避する必要があります。これは、「HTTP _...」「$_SERVER」変数を遵守しないことで実行される可能性があります。互換性の理由でこれらを維持する必要がある場合は、少なくとも Cacti を実行しているサーバーの IP アドレスを偽造することを防ぐ必要があります。この脆弱性は、リリース 1.2.x および 1.3.x の両方のブランチで対処されており、パッチを含む最初のリリースは 1.2.23 です。(CVE-2022-46169)

Nessus は、ベンダーによって報告されたパッケージの存在に依存していることに注意してください。

ソリューション

現時点で既知の解決策はありません。

参考資料

https://ubuntu.com/security/CVE-2022-46169

プラグインの詳細

深刻度: Critical

ID: 259583

ファイル名: unpatched_CVE_2022_46169.nasl

バージョン: 1.1

タイプ: local

エージェント: unix

ファミリー: Misc.

公開日: 2025/8/30

更新日: 2025/8/30

サポートされているセンサー: Agentless Assessment, Frictionless Assessment Agent, Frictionless Assessment AWS, Frictionless Assessment Azure, Nessus Agent, Nessus

リスク情報

VPR

リスクファクター: Critical

スコア: 9.0

CVSS v2

リスクファクター: High

基本値: 7.5

現状値: 6.2

ベクトル: CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:P

CVSS スコアのソース: CVE-2022-46169

CVSS v3

リスクファクター: Critical

基本値: 9.8

現状値: 9.1

ベクトル: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

現状ベクトル: CVSS:3.0/E:F/RL:O/RC:C

脆弱性情報

CPE: cpe:/o:canonical:ubuntu_linux:22.04:-:lts, p-cpe:/a:canonical:ubuntu_linux:cacti

必要な KB アイテム: Host/cpu, Host/local_checks_enabled, global_settings/vendor_unpatched, Host/OS/identifier

エクスプロイトが利用可能: true

エクスプロイトの容易さ: Exploits are available

脆弱性公開日: 2022/12/5

CISA の既知の悪用された脆弱性の期限日: 2023/3/9

参照情報

CVE: CVE-2022-46169