🇰🇷 한글 설명
PostgreSQL에서 취약점이 발견되었습니다. 이 공격은 스키마에 비임시 객체를 생성할 권한, 관리자가 해당 스키마에서 영향받는 확장을 생성하거나 업데이트하도록 유도하거나 기다릴 수 있는 능력, 그리고 CREATE OR REPLACE 또는 CREATE IF NOT EXISTS의 대상이 되는 객체를 피해자가 사용하도록 유도하거나 기다릴 수 있는 능력이 필요합니다. 세 가지 전제 조건이 모두 충족되면, 공격자는 피해자 역할(슈퍼유저일 수 있음)의 권한으로 임의 코드를 실행할 수 있습니다.
💡 쉬운 설명
데이터베이스에 스키마 객체를 만들 수 있는 사용자가 관리자가 특정 확장을 만들거나 갱신하도록 유도하면 공격이 가능합니다. 성공하면 관리자 수준의 권한으로 악성 코드를 실행당할 수 있습니다.
🇺🇸 원문 (English)
A vulnerability was found in PostgreSQL. This attack requires permission to create non-temporary objects in at least one schema, the ability to lure or wait for an administrator to create or update an affected extension in that schema, and the ability to lure or wait for a victim to use the object targeted in CREATE OR REPLACE or CREATE IF NOT EXISTS. Given all three prerequisites, this flaw allows an attacker to run arbitrary code as the victim role, which may be a superuser.
📍 영향받는 시스템
PostgreSQL 10.x 이상 일부 버전 (2022년 9월 이전 패치 전 버전, 예: 14.4 이하, 13.8 이하, 12.12 이하, 11.17 이하, 10.22 이하)
⚔️ 공격 벡터
스키마 생성 권한을 가진 공격자가 확장의 CREATE OR REPLACE/IF NOT EXISTS 동작을 악용해 관리자나 피해자가 악성 객체를 실행하도록 유도
🛡️ 대응 방법
PostgreSQL을 최신 보안 패치 버전(14.5, 13.9, 12.13, 11.18, 10.23 이상)으로 업데이트하고, 불필요한 스키마 CREATE 권한을 회수
🔧 검증 코드
출력된 버전이 영향받는 버전 범위에 해당하는지 확인하고, 패치 버전(14.5, 13.9, 12.13, 11.18, 10.23 이상)보다 낮으면 취약한 것으로 판단
psql -tAc "SHOW server_version;" 2>/dev/null