在亚马逊 Redshift 的多个驱动程序中发现了三个 SQL 注入漏洞,攻击者有可能利用这些漏洞升级权限并对数据造成严重破坏。这些漏洞被追踪为 CVE-2024-12744、CVE-2024-12745 和 CVE-2024-12746,它们的 CVSS 严重性都高达 8.0 分,强调了立即采取行动的紧迫性。这些漏洞影响了亚马逊 Redshift JDBC 驱动程序、Python 连接器和 ODBC 驱动程序的特定版本,凸显了这些工具在处理元数据 API 调用时存在的共同弱点。易受攻击的版本如下:亚马逊 Redshift JDBC 驱动程序: 版本 2.1.0.31亚马逊 Redshift Python 连接器: 版本 2.1.4亚马逊 Redshift ODBC 驱动程序: 版本 2.1.5.0(Windows 和 Linux)核心问题在于这些受影响的驱动程序版本在与 Redshift 的元数据 API 交互时如何处理用户提供的输入。这些 API 用于检索有关数据库模式、表和列的信息(JDBC 和 Python 的 getSchemas、getTables、getColumns 以及 ODBC 的 SQLTables、SQLColumns),容易受到 SQL 注入攻击。从本质上讲,恶意行为者可以制作专门设计的输入,在这些易受攻击的 API 处理时,允许他们将自己的 SQL 代码注入发送到 Redshift 服务器的查询中。这有可能使他们的权限升级,从而能够访问、修改甚至删除敏感数据。亚马逊 Redshift 团队已迅速解决了这些漏洞,为每个受影响的驱动程序发布了修补版本:Amazon Redshift JDBC 驱动程序: 升级至版本 2.1.0.32亚马逊 Redshift Python 连接器: 升级至版本 2.1.5亚马逊 Redshift ODBC 驱动程序: 升级至版本 2.1.6.0这些补丁实现了一项重要的安全增强功能:所有元数据命令输入现在都会作为参数化查询的一部分发送到 Redshift 服务器。这包括使用 QUOTE_IDENT(string) 或 QUOTE_LITERAL(string)来正确转义用户提供的输入,从而有效消除 SQL 注入威胁。然后,命令就会在服务器上安全地构建和执行。如果无法立即升级,亚马逊建议将每个驱动程序恢复到以前未受影响的版本,作为临时解决方案:亚马逊 Redshift JDBC 驱动程序: 恢复到版本 2.1.0.30亚马逊 Redshift Python 连接器: 恢复到版本 2.1.3亚马逊 Redshift ODBC 驱动程序: 还原至版本 2.1.4.0(Windows 或 Linux)