Summary
SQL injection in Cacti (CVE-2026-71287). Successful exploitation can lead to full system takeover. Exploitable via sort_column.
Original description
The description as published by the source.
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.
Source: NIST National Vulnerability Database NVD GitHub Advisory
AI summary
Written by an external AI model and may contain mistakes. Check the original description and references below before acting on it.
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に対する入力の確認とアクセスログの精査。
References
- web github.com
- web github.com
- web nvd.nist.gov
- web github.com