Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/hackspeak/cve-2026-14669
漏洞分析漏洞利用渗透测试Payload 开发数据库安全二进制利用实验室与实践
GitHubhackspeak/cve-2026-14669

CVE-2026-14669

针对 CVE-2026-14669 的概念验证漏洞利用程序,该漏洞为 PostgreSQL to_char() 时区缩写中的堆缓冲区溢出,可通过信息泄露和 ROP 链实现 RCE(远程代码执行);包含 Docker 实验环境与自动化 PoC。

查看仓库
112天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-14669 - PostgreSQL to_char() Timezone Abbreviation Heap Buffer Overflow

PostgreSQL to_char() 函数在处理时区格式化时存在堆缓冲区溢出漏洞。攻击者通过设置超长 POSIX 时区缩写,可触发 25 字节固定缓冲区的越界写入,配合信息泄漏与 ROP 链实现远程代码执行。

漏洞信息

  • CVE 编号: CVE-2026-14669
  • CVSS 评分: 8.8 (高危)
  • 漏洞类型: 堆缓冲区溢出 → 远程代码执行
  • 影响组件: PostgreSQL to_char(timestamptz) 函数
  • 发现团队: V12 Security

受影响版本

PostgreSQL 系列受影响范围
18.x18.0 – 18.5
17.x17.0 – 17.10
16.x16.0 – 16.14
15.x15.0 – 15.18
14.x14.0 – 14.23

修复版本

  • PostgreSQL 18.6+
  • PostgreSQL 17.11+
  • PostgreSQL 16.15+
  • PostgreSQL 15.19+
  • PostgreSQL 14.24+

漏洞原理

formatting.c 中的 DCH_TZ / DCH_tz 处理路径使用 25 字节固定栈缓冲区存储时区缩写,但对输入长度没有任何检查。当时区缩写超过 24 字节时,strcpy() 会越界写入堆内存。

触发路径:

root@kitploit:~
SET TIME ZONE '<超长缩写>+00';
SELECT to_char(now()::timestamptz, 'TZ');
  ↓
DCH_to_char() → DCH_from_char_action()
  ↓
strcpy(buf, tmtcTzn(...))  ← 堆溢出

利用条件

  • 任意有效数据库认证凭据(USAGE 级别最低权限)
  • TCP 可达数据库端口
  • 能执行 SQL 语句

完整利用链

V12 Security 的 PoC 包含三个阶段:

阶段一:信息泄漏

通过堆溢出破坏相邻堆对象,泄漏 PIE 基址和堆指针以击破 ASLR。

阶段二:ROP 链构造

利用大对象或 bytea 字段在堆上布置 ROP gadget 链。

阶段三:控制流劫持

第二次溢出覆盖堆上的函数指针,跳转到 ROP 链执行任意命令(以 postgres 用户权限)。

PoC 文件

  • poc.py - 完整利用脚本(210 行,针对 PostgreSQL 19beta1)
  • requirements.txt - Python 依赖(psycopg, pwntools)
  • docker-compose.yml - 漏洞测试环境

使用方法

1. 启动测试环境

root@kitploit:~
docker-compose up -d

等待容器启动完成(健康检查通过):

root@kitploit:~
docker logs pg-tzlab

2. 安装依赖

root@kitploit:~
pip install -r requirements.txt

3. 运行 PoC

root@kitploit:~
python3 poc.py

默认连接 127.0.0.1:55432,用户名 postgres,密码 postgres。

成功利用后,在容器日志中可看到命令执行输出:

root@kitploit:~
docker logs pg-tzlab | grep PWNED

4. 自定义配置

编辑 poc.py 中的常量:

  • HOST, PORT - 目标地址
  • DEFAULT_COMMAND - 要执行的命令

⚠️ 重要:此 PoC 硬编码了特定构建的偏移地址(postgres:19beta1 Docker 镜像 sha256:a6bdd01...)。其他版本需要重新定位 gadget。

缓解措施

  1. 立即升级到修复版本(最有效)
  2. 网络隔离:限制数据库端口仅对受信主机开放
  3. 账户最小化:清理不必要账户,强制强口令
  4. 监控告警:监控超长 SET TIME ZONE 语句(> 50 字符)

免责声明

⚠️ 本 PoC 仅供安全研究、漏洞验证与防御性测试使用。

  • 请在可销毁的测试环境(Docker lab)中运行
  • 勿对未授权或生产环境使用
  • 利用会导致目标服务器进程崩溃或控制流劫持

使用本 PoC 即表示您同意遵守当地法律法规与目标系统授权边界。

参考链接

  • PostgreSQL 官方安全公告
  • PostgreSQL 发布公告
  • 上游修复 commit
  • V12 Security 技术分析
  • 原始 PoC 仓库

原作者

  • 原始 PoC: V12 Security 团队
  • 原仓库: https://github.com/v12-security/pocs
  • 许可: 上游仓库无 LICENSE 文件,本仓库采用 MIT License
  • 本仓库: 镜像分发版本,保留原作者署名
下载工具