PostgreSQL否认CVE-2019-9193为安全漏洞
最近,PostgreSQL中的任意代码执行都存在漏洞。具有数据库服务器文件读取权限的攻击者可以利用此漏洞执行任意系统命令。
PostgreSQL是一个功能强大的数据库软件,可在所有主要操作系统上运行,包括Linux,Windows,Mac OS X等。所公开的漏洞存在于命令“COPY TO / FROM PROGRAM”中,用于导入和导出数据。在“pg_read_server_files”组中的用户执行上述命令之后,可以获得数据库超级用户权限,从而执行任何系统命令。
针对这一说法,PostgreSQL于2019年4月4日正式发表声明,内容如下:
媒体中广泛提到PostgreSQL中的一个安全漏洞,编号为CVE-2019-9193。 PostgreSQL安全团队想强调这不是一个安全漏洞。我们认为CVE条目存在错误。我们已联系记者调查此问题。
COPY .. PROGRAM功能明确指出它只能由已被授予超级用户权限或默认角色pg_execute_server_program的数据库用户执行。按照设计,此功能允许被授予超级用户或pg_execute_server_program的用户执行操作,因为PostgreSQL服务器运行的操作系统用户(通常是“postgres”)。 CVE中提到的缺省角色pg_read_server_files和pg_write_server_files不授予数据库用户使用COPY .. PROGRAM的权限。
根据设计,数据库超级用户与服务器运行的操作系统用户之间不存在安全边界。因此,根据设计,不允许PostgreSQL服务器作为操作系统超级用户(例如“root”)运行。 PostgreSQL 9.3中添加的COPY .. PROGRAM的功能并未改变上述任何功能,但在已存在的相同安全边界内添加了一个新命令。
我们鼓励PostgreSQL的所有用户遵循最佳做法,即永远不会授予远程用户或其他不受信任用户的超级用户访问权限。这是系统管理中遵循的标准安全操作过程,也扩展到数据库管理。