• 公告ID (KylinSec-SA-2024-4218)

摘要:

libpq security update

安全等级: High

公告ID: KylinSec-SA-2024-4218

发布日期: 2024年11月22日

关联CVE: CVE-2023-5868   CVE-2023-5869   CVE-2023-5870   CVE-2024-0985   CVE-2024-10976   CVE-2024-10977   CVE-2024-10978   CVE-2024-10979  

  • 详细介绍

1. 漏洞描述

   

以下是您提供的关于PostgreSQL数据库系统的安全修复信息的直接翻译:

PostgreSQL是一个功能强大的开源对象关系型数据库系统,它使用并扩展了SQL语言,结合了许多功能,可以安全地存储和扩展最复杂的数据工作负载。这个软件包提供了任何PostgreSQL客户端程序或接口所需的基本共享库。

安全修复:

在PostgreSQL中发现了一个内存披露漏洞,允许远程用户通过利用某些带有“未知”类型参数的聚合函数调用来访问敏感信息。处理没有类型指定的字符串字面量的“未知”类型值可以披露字节,可能泄露重要和机密信息。这个问题是由于聚合函数调用中过多的数据输出,使得远程用户能够读取系统内存的一部分。(CVE-2023-5868)

在PostgreSQL中发现了一个缺陷,允许经过身份验证的数据库用户在SQL数组值修改过程中由于缺少溢出检查而执行任意代码。这个问题是由于数组修改过程中的整数溢出,远程用户可以通过提供特别制作的数据处理溢出。这使得在目标系统上执行任意代码成为可能,允许用户将任意字节写入内存,并广泛读取服务器的内存。(CVE-2023-5869)

在PostgreSQL中发现了一个涉及pg_cancel_backend角色的缺陷,该角色可以向包括逻辑复制启动器、自动清理工作进程和自动清理启动器在内的后台工作进程发送信号。成功利用此漏洞需要一个非核心扩展,该扩展具有一个抗性较差的后台工作进程,并且只会影响特定的后台工作进程。这个问题可能允许远程高权限用户发起拒绝服务(DoS)攻击。(CVE-2023-5870)

在PostgreSQL中,对REFRESH MATERIALIZED VIEW CONCURRENTLY的权限延迟下降允许对象创建者作为命令发布者执行任意SQL函数。该命令旨在作为物化视图的所有者运行SQL函数,以安全地刷新不受信任的物化视图。受害者是超级用户或攻击者角色之一的成员。攻击需要诱使受害者在攻击者的物化视图上运行REFRESH MATERIALIZED VIEW CONCURRENTLY。受此影响的版本包括PostgreSQL 16.2、15.6、14.11、13.14和12.18之前的版本。(CVE-2024-0985)

PostgreSQL中对具有行安全性的表的跟踪不完整,允许重用的查询查看或修改与预期不同的行。CVE-2023-2455和CVE-2016-2193修复了行安全性和用户ID变化之间的大部分交互。它们遗漏了子查询、WITH查询、安全调用者视图或SQL语言函数引用具有行级安全策略的表的情况。这与前两个CVE的后果相同,即在应用角色特定策略的情况下,可能导致应用了错误的策略,并且给定的查询在一个角色下计划然后在其他角色下执行。这种情况可能发生在安全定义者函数下,或者当一个普通用户和查询最初计划然后在多个SET ROLEs中重用时。应用错误的策略可能允许用户完成本来被禁止的读取和修改。这只影响那些使用CREATE POLICY定义行安全策略的数据库。攻击者必须根据特定应用程序的查询计划重用模式、用户ID变化和角色特定行安全策略定制攻击。受此影响的版本包括PostgreSQL 17.1、16.5、15.9、14.14、13.17和12.21之前的版本。(CVE-2024-10976)

PostgreSQL中客户端使用服务器错误消息允许当前SSL或GSS设置下不受信任的服务器向libpq应用程序提供任意非NUL字节。例如,中间人攻击者可以发送一个长错误消息,人类或psql的屏幕刮取用户可能会误认为是有效的查询结果。对于用户界面明确指示错误消息与其他文本边界的客户端来说,这可能不是一个问题。受此影响的版本包括PostgreSQL 17.1、16.5、15.9、14.14、13.17和12.21之前的版本。(CVE-2024-10977)

PostgreSQL中不正确的权限分配允许权限较低的应用程序用户查看或修改与预期不同的行。攻击需要应用程序使用SET ROLE、SET SESSION AUTHORIZATION或等效功能。问题出现在应用程序查询使用攻击者提供的参数或向攻击者传达查询结果时。如果该查询对current_setting('role')或当前用户ID做出反应,它可能会修改或返回数据,就好像会话没有使用SET ROLE或SET SESSION AUTHORIZATION一样。攻击者不控制哪个错误的用户ID适用。这里不关心来自权限较低来源的查询文本,因为SET ROLE和SET SESSION AUTHORIZATION不是未经审查的查询的沙箱。受此影响的版本包括PostgreSQL 17.1、16.5、15.9、14.14、13.17和12.21之前的版本。(CVE-2024-10978)

PostgreSQL PL/Perl中对环境变量的控制不正确,允许无权限的数据库用户更改敏感的过程环境变量(例如PATH)。这通常足以启用任意代码执行,即使攻击者缺乏数据库服务器操作系统用户。受此影响的版本包括PostgreSQL 17.1、16.5、15.9、14.14、13.17和12.21之前的版本。(CVE-2024-10979)

2. 影响范围

cve名称 产品 组件 是否受影响
CVE-2023-5868 KY3.5.2 libpq Fixed
CVE-2023-5869 KY3.5.2 libpq Fixed
CVE-2023-5870 KY3.5.2 libpq Fixed
CVE-2024-0985 KY3.5.2 libpq Fixed
CVE-2024-10976 KY3.5.2 libpq Fixed
CVE-2024-10977 KY3.5.2 libpq Fixed
CVE-2024-10978 KY3.5.2 libpq Fixed
CVE-2024-10979 KY3.5.2 libpq Fixed

3. 影响组件

    libpq

4. 修复版本

   

KY3.5.2

软件名称 架构 版本号
libpq x86_64 13.17-1.ky3_5
libpq-devel x86_64 13.17-1.ky3_5
libpq aarch64 13.17-1.ky3_5
libpq-devel aarch64 13.17-1.ky3_5

5. 修复方法


方法一:下载安装包进行升级安装
1、通过下载链接下载需要升级的升级包保存,如 xxx.rpm
2、通过rpm命令升级,如 rpm -Uvh xxx.rpm

方法二:通过软件源进行升级安装
1、保持能够连接上互联网
2、通过yum命令升级指定的包,如 yum install 包名

6. 下载链接

   

KY3.5.2:

x86_64:

     libpq   

     libpq-devel   

aarch64:

     libpq   

     libpq-devel   

上一篇:KylinSec-SA-2024-4217 下一篇:KylinSec-SA-2024-4219