Amazon Linux AMI: cacti (ALAS-2023-1675)

critical Nessus プラグイン ID 170545

概要

リモートの Amazon Linux AMI ホストに、セキュリティ更新プログラムがありません。

説明

リモートホストに cacti インストールされているバージョンは、1.1.19-2.20 より前です。したがって、ALAS-2023-1675 のアドバイザリに記載されている脆弱性の影響を受けます。

- 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 はこの問題をテストしておらず、代わりにアプリケーションの自己報告されたバージョン番号にのみ依存しています。

ソリューション

「yum update cacti」を実行してシステムを更新してください。

参考資料

https://alas.aws.amazon.com/ALAS-2023-1675.html

https://alas.aws.amazon.com/cve/html/CVE-2022-46169.html

プラグインの詳細

深刻度: Critical

ID: 170545

ファイル名: ala_ALAS-2023-1675.nasl

バージョン: 1.3

タイプ: local

エージェント: unix

公開日: 2023/1/24

更新日: 2023/9/6

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

リスク情報

VPR

リスクファクター: High

スコア: 7.4

CVSS v2

リスクファクター: Critical

基本値: 10

現状値: 8.7

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

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

CVSS v3

リスクファクター: Critical

基本値: 9.8

現状値: 9.4

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

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

脆弱性情報

CPE: p-cpe:/a:amazon:linux:cacti, cpe:/o:amazon:linux

必要な KB アイテム: Host/local_checks_enabled, Host/AmazonLinux/release, Host/AmazonLinux/rpm-list

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

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

パッチ公開日: 2023/1/19

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

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

エクスプロイト可能

Core Impact

Metasploit (Cacti 1.2.22 unauthenticated command injection)

参照情報

CVE: CVE-2022-46169