Debian DLA-3252-1: cacti - LTS セキュリティ更新

critical Nessus プラグイン ID 169445

概要

リモートの Debian ホストにセキュリティ関連の更新プログラムがありません。

説明

リモートの Debian 10 ホストには、dla-3252 のアドバイザリに記載された複数の脆弱性の影響を受けるパッケージがインストールされています。

- 複数のクロスサイトスクリプティング (XSS) の脆弱性が、(1) reports_admin.php、(2) data_queries.php、(3) data_input.php、(4) graph_templates.php、(5) graphs.php、(6) reports_admin.php、および (7) data_input.php の Cacti 1.2.12 に存在します。(CVE-2020-23226)

- xml_path フィールドのテンプレートインポートプレビュー中のエラーメッセージの不適切なエスケープにより、templates_import.php (Cacti 1.2.13) にクロスサイトスクリプティング (XSS) の脆弱性が存在します (CVE-2020-25706)

- Cacti 1.2.8 の graph_realtime.php では、ゲストユーザーが graph リアルタイム権限を持っている場合、リモート攻撃者が Cookie のシェルメタ文字を介して任意の OS コマンドを実行する可能性があります。(CVE-2020-8813)

- 特定の ldap 条件下で、Cacti 認証が特定の認証情報タイプでバイパスされる可能性があります。
(CVE-2022-0730)

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

ソリューション

cacti パッケージをアップグレードしてください。

Debian 10 buster では、これらの問題はバージョン 1.2.2+ds1-2+deb10u5 で修正されています。

参考資料

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=951832

https://security-tracker.debian.org/tracker/source-package/cacti

https://www.debian.org/lts/security/2022/dla-3252

https://security-tracker.debian.org/tracker/CVE-2020-23226

https://security-tracker.debian.org/tracker/CVE-2020-25706

https://security-tracker.debian.org/tracker/CVE-2020-8813

https://security-tracker.debian.org/tracker/CVE-2022-0730

https://security-tracker.debian.org/tracker/CVE-2022-46169

https://packages.debian.org/source/buster/cacti

プラグインの詳細

深刻度: Critical

ID: 169445

ファイル名: debian_DLA-3252.nasl

バージョン: 1.4

タイプ: local

エージェント: unix

公開日: 2023/1/1

更新日: 2023/9/11

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

リスク情報

VPR

リスクファクター: High

スコア: 8.4

CVSS v2

リスクファクター: High

基本値: 9.3

現状値: 8.1

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

CVSS スコアのソース: CVE-2020-8813

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

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

脆弱性情報

CPE: p-cpe:/a:debian:debian_linux:cacti, cpe:/o:debian:debian_linux:10.0

必要な KB アイテム: Host/local_checks_enabled, Host/Debian/release, Host/Debian/dpkg-l

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

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

パッチ公開日: 2022/12/31

脆弱性公開日: 2020/2/22

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

エクスプロイト可能

Core Impact

Metasploit (Cacti 1.2.22 unauthenticated command injection)

参照情報

CVE: CVE-2020-23226, CVE-2020-25706, CVE-2020-8813, CVE-2022-0730, CVE-2022-46169