Cacti's sanitize_sql_column() (lib/functions.php) sanitizes user-supplied ORDER BY column names...
概要
Cacti's sanitize_sql_column() (lib/functions.php) sanitizes user-supplied ORDER BY column names...
原文の説明
取得元が公開している説明をそのまま載せています (多くは英語)。
Cacti's sanitize_sql_column() (lib/functions.php) sanitizes user-supplied ORDER BY column names using the regex preg_replace('/[^a-zA-Z0-9_().]/', '', $column). Because this allowlist retains letters, digits, underscore, parentheses, and dot (intended to support expressions like COUNT(id) and table.column), a payload such as SLEEP(5) passes through completely unmodified. The sanitized value is concatenated directly into raw SQL ORDER BY clauses (which cannot be parameterized) driven by a sort_column GET parameter in at least user_log.php, utilities.php, user_domains.php, and user_group_admin.php, allowing any authenticated Cacti user, regardless of privilege level, to perform time-based blind SQL injection against the Cacti database.
出典: NIST National Vulnerability Database NVD GitHub Advisory
AI要約
外部の AI が作成した要約です。誤りを含むことがあります。重要な判断の前に、下の原文と参照URLを確認してください。
Cactiの関数sanitize_sql_column()は、ユーザーから提供されたORDER BYカラム名を正規表現でサニタイズしていますが、指定された文字列がそのまま許可されてしまうため、SQLインジェクションのリスクがあります。この脆弱性を利用すると、認証されたユーザーがCactiデータベースに対してタイムベースのブラインドSQLインジェクションを実行できます。
Cactiの関数sanitize_sql_column()の不適切なサニタイズによるSQLインジェクションの脆弱性。
lib/functions.php内のsanitize_sql_column()関数。
認証済みのCactiユーザーがタイムベースのブラインドSQLインジェクションを実行可能。
正規表現の見直しおよびパラメータ化されたクエリの使用を考慮する。
時間がかかってもSQLクエリの内容を手動で確認する。
GETパラメータsort_columnに対する入力の確認とアクセスログの精査。
参照URL
- web github.com
- web github.com
- web nvd.nist.gov
- web github.com