选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

pgAdmin 4 v9.18 发布:修复四个安全漏洞

发布于 2026-09-17,pgAdmin Development Team
相关开源软件

原文:https://www.postgresql.org/about/news/pgadmin-4-v918-released-3381/ 发布日期:2026-09-17 作者:pgAdmin Development Team

pgAdmin 开发团队宣布发布 pgAdmin 4 v9.18。此版本包含 29 项 bug 修复和新功能,并修复了四个安全漏洞(CVE-2026-86861 至 CVE-2026-86864)。详情请参阅 发布说明。pgAdmin 是 PostgreSQL 的开源图形化管理工具,项目主页为 pgadmin.org

功能

  • 重新点击当前工作区图标即可折叠或恢复 Object Explorer,行为类似 VS Code 侧栏,并在刷新后记住选择;默认快捷键为 Ctrl+Alt+B,可通过 toggle_object_explorer 偏好设置修改。
  • 收紧默认 Content-Security-Policy:内联脚本改用每次请求的 nonce,不再使用整站的 'unsafe-inline',并移除 'unsafe-eval'。由于 MUI、React 会注入运行时样式且内联 style 属性无法携带 nonce,style-src 仍保留 'unsafe-inline';开启 DEBUG 时开发包会自动重新加入 'unsafe-eval'

安全修复

  • 修复 Webserver 认证模式下的认证绕过:get_user() 过去会在 WSGI 环境缺少值时回退读取请求头中的 WEBSERVER_REMOTE_USER,任何能访问 pgAdmin 的客户端都可能伪造管理员身份。现在只有显式启用、来自受信代理并带可选共享密钥的请求头才会生效,且非 webserver 认证源的账户会被拒绝(CVE-2026-86863)。
  • 修复 Backup 工具的参数和连接字符串注入:数据库名不再作为裸位置参数追加到 pg_dump,而是通过不会展开连接字符串的 PGDATABASE 环境变量传递(CVE-2026-86864)。
  • 修复 Restore 与 Maintenance 工具把数据库名直接传给 --dbname 导致的同类连接字符串注入,以及密码被导出到 PGPASSWORD 后被重定向的问题(CVE-2026-86862)。
  • 修复 File Manager 的 save_file 端点存在的检查时序竞态:路径校验后直接 open() 可能跟随攻击者插入的符号链接,将文件写到存储目录之外(CVE-2026-86861)。
  • LLM API 请求不再跟随 HTTP 重定向,避免跳到未经 ALLOWED_LLM_API_URLS 检查的目的地;这属于加固,因为能返回重定向本身要求攻击者已控制允许列表中的主机。
  • 导入非共享服务器时拒绝空或 null 的 Username,避免 libpq 默默以运行 pgAdmin 的操作系统账号认证。

Bug 修复与维护

  • 修复 Flask-Security-Too 5.8.2 变更 UserMixin.is_locked() 语义后导致的登录失败。
  • 修复表对话框中继承列可被编辑或删除,以及展开 Definition 选项卡的 Data type 下拉框忽略允许类型限制的问题。
  • 恢复 Schema Diff 生成脚本的依赖顺序。
  • 修复 Schema Diff 对 SERIAL/BIGSERIAL 的虚假差异、外部表重建时重复列和丢失排序规则、应用函数或过程体时插入空格、提高序列 MINVALUE 后生成无效 SQL,以及比较中途失败却报告成功的问题。
  • getNodeAjaxOptions() 共享并发的相同 GET 请求,避免宽表 Columns 选项卡为每一行重复请求 get_types
  • 修复用户函数或过程 Definition 选项卡的参数网格无法在编辑模式增删行的问题。
  • 生成索引 SQL 时省略分区表不接受的冗余 TABLESPACE pg_default
  • 修复仅使用 pg_service.conf 连接时 Password Exec Command 导致的崩溃。
  • servers.json 导入共享服务器时接受 SharedUsername
  • 将 Validate binary path 对话框按 HTML 渲染,而不是显示原始标记。
  • 去除 Windows 安装程序 ProductVersion 尾部多余的引号,并修正 Helm 部署模板中的 existingSecret 路径。
  • 仅在设置 SERVER_MODE 时初始化 Kerberos、LDAP、MFA、OAuth2 和 Webserver 认证提供方,让桌面模式继续只使用内部认证。
  • 升级 JavaScript 和 Python 第三方依赖及消息目录,并修复自 2025 年 11 月以来未重新编译的韩语目录。

Windows、macOS、Python Wheel、Docker Container、RPM、DEB Package 和源码 tarball 已可从 下载区域 获取。