媒体广泛报道了 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 用户遵循最佳实践,即绝不向远程或不受信任的用户授予超级用户访问权限。这是系统管理中遵循的标准安全操作规程,也同样适用于数据库管理。
如果您对此有更多疑问,欢迎通过我们的 支持 资源与社区成员联系。
https://postgresql.ac.cn/support/