PostgreSQL이 2026년 11월 정기 업데이트에서 수정한, 임의 코드 실행으로 이어지는 타입 혼동 결함의 해설입니다. 무슨 일이 일어나는지, 누가 영향을 받는지, 어떻게 대응해야 하는지를 방어하는 쪽의 관점에서, 공격 절차 없이 설명합니다.
- CVE
- CVE-2026-6460 (ALTER ... SET DATA TYPE 뒤의 PostgreSQL 타입 혼동으로 임의 코드 실행)
- 심각도
- CVSS v3.1 8.8 (High, 벡터 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H, PostgreSQL이 부여)
- 유형
- 타입 혼동(CWE-843). 데이터베이스를 실행하는 OS 사용자 권한으로 임의의 코드를 실행
- 조건
- 인증 필요. 객체 생성자(낮은 권한의 계정)
- 영향 대상
- PostgreSQL 14–18 (아래 수정 버전 이전)
- 수정
- 18.7 / 17.12 / 16.16 / 15.20 / 14.25 (2026년 11월 12일 공개)
- 같은 업데이트
- 모두 52개의 취약점을 수정. 14.25는 PostgreSQL 14의 마지막 업데이트
- 악용
- 보고 없음. CISA KEV 11월 10일판에는 없음
- 회피책
- 언급 없음
PostgreSQL 14는 더 이상 수정을 받지 못합니다
PostgreSQL 공지에 따르면 14.25는 PostgreSQL 14의 마지막 릴리스이며, 이후 보안 수정이나 버그 수정이 제공되지 않습니다. 14를 쓰고 있다면 이 업데이트를 적용하고 지원되는 버전으로의 이전을 계획하세요.
어떤 취약점인가
프로젝트는 객체 생성자가 주로 ALTER ... SET DATA TYPE을 통해 데이터베이스를 실행하는 운영 체제 사용자 권한으로 임의의 코드를 실행할 수 있게 하는 타입 혼동(CWE-843)을 설명합니다. 또한 데이터 정의 명령을 통한 다른 경로도 있다고 밝힙니다. 원인은 타입이 있는 값의 추적이 불충분했던 것입니다. 값이 스스로 타입을 식별하지 않아 데이터 사전 항목, PL/pgSQL 변수 등에 오래된 값이 나타날 수 있었습니다.
- 조건은 계정이 데이터베이스에 로그인해 객체를 만들 수 있다는 것입니다. CVSS로는 낮은 권한(PR:L)이고 사용자 상호작용은 없음(UI:N)입니다.
- 이 사이트는 악용 절차나 위험한 작업을 설명하지 않습니다.
- 수정은 PostgreSQL 코어에 있습니다. 공식 페이지는 확장 기능이나 기본값이 아닌 설정이 필요한지 밝히지 않습니다.
- CVE.org 레코드에 있는 CISA의 평가(SSVC)는 exploitation: none, automatable: no, technical impact: total입니다.
영향 범위
| 항목 | 내용 |
|---|---|
| 제품 | PostgreSQL(코어) |
| 영향받는 버전 | 18.7, 17.12, 16.16, 15.20, 14.25 이전 |
| 수정(18) | 18.7 |
| 수정(17) | 17.12 |
| 수정(16) | 16.16 |
| 수정(15) | 15.20 |
| 수정(14) | 14.25 (14의 마지막 업데이트) |
| 회피책 / 완화책 | 언급 없음 |
- 덤프와 다시 불러오기나 pg_upgrade는 필요 없습니다. PostgreSQL 공지는 서버를 멈추고 바이너리만 업데이트하면 된다고 밝힙니다.
- 13 이하는 이미 지원이 끝났습니다. 공식 페이지는 이 CVE에 대해 14–18을 나열합니다.
같은 업데이트의 다른 취약점
2026년 11월 12일 릴리스(18.7, 17.12, 16.16, 15.20, 14.25)는 52개의 보안 취약점과 140개가 넘는 버그를 수정합니다. 이 글은 CVE-2026-6460에 초점을 맞춥니다.
- 52개의 목록과 각 CVE의 심각도, 영향받는 버전은 PostgreSQL 보안 정보 페이지를 보세요.
- 목록에는 임의 코드 실행, 서버 메모리 노출, SQL 인젝션, 권한 검사 우회 등 서로 다른 종류의 문제가 있습니다. 클라이언트 도구(pg_dump, pg_restore, reindexdb 등)의 수정도 포함됩니다.
- 일부 수정은 업데이트 후 추가 절차가 필요합니다(손상이 의심되는 경우 GIN 인덱스와 pg_trgm 인덱스 재구축, 증분 백업을 쓴다면 새 전체 백업, 파티션 테이블의 제약 조건 확인). 릴리스 공지의 "Updating" 절을 따르세요.
영향 여부 확인 방법
PostgreSQL 버전 확인
SELECT version();을 실행해 서버 버전을 확인하세요. 18이 18.7 미만, 17이 17.12 미만, 16이 16.16 미만, 15가 15.20 미만, 14가 14.25 미만이면 영향을 받습니다.
동작하는 모든 곳을 찾기
운영하는 서버, 컨테이너, 애플리케이션에 번들된 PostgreSQL, 개발 및 테스트 환경을 목록으로 만드세요. 목록을 유지하는 방법은 자산 목록 체크리스트를 보세요.
객체를 만들 수 있는 계정 확인
데이터베이스에 로그인해 테이블 등의 객체를 만들거나 바꿀 수 있는 롤을 찾으세요. 애플리케이션이 쓰는 계정이 필요 이상의 권한을 갖고 있지 않은지 확인하세요.
관리형 서비스는 제공업체의 공지를 읽기
RDS, Cloud SQL 등을 쓴다면 내 인스턴스의 버전과 제공업체의 대응 상태를 제공업체의 공지에서 확인하세요.
오늘 해야 할 일
마이너 버전을 수정된 릴리스로 업데이트(우선)
해당 계열의 수정된 릴리스(18.7, 17.12, 16.16, 15.20, 14.25) 이상으로 옮기세요. 업데이트하기 전에 백업이 있고 복원할 수 있는지 확인하세요(백업 기본). 복제본이 있다면 절차와 순서를 먼저 정하세요.
업데이트 후 절차 확인
릴리스 공지의 "Updating" 절에서 해당하는 것을 확인하세요: 손상이 의심되는 경우 GIN 인덱스 재구축, pg_trgm GiST 인덱스 재구축, 증분 백업을 쓴다면 새 전체 백업.
업데이트할 때까지 권한 줄이기
PostgreSQL 페이지에는 회피책이 없습니다. 이 사이트의 자체 보충으로, 업데이트할 때까지 객체를 만들 수 있는 계정을 최소한으로 제한하고, 애플리케이션이 쓰는 계정에 필요 없는 생성 권한을 주지 마세요. 권고에 명시된 조치가 아니며 업데이트를 대신하지 못합니다.
관리형 서비스의 업데이트 확인
제공업체의 공지에서 지원 버전과 업데이트 일정을 확인하세요. 자동 마이너 업데이트가 켜져 있는지와 유지보수 시간대도 확인하세요.
PostgreSQL 14를 쓴다면 이전 계획
14.25로 업데이트한 뒤 지원되는 버전으로의 이전을 계획하세요. 기한과 담당자를 정하세요.
악용 상황
- PostgreSQL 페이지는 악용을 언급하지 않습니다.
- CVE.org 레코드에 있는 CISA의 평가(SSVC)는 exploitation: none, automatable: no, technical impact: total입니다(2026년 11월 12일 자).
- CISA KEV 카탈로그의 11월 10일판에는 없습니다.
- 공격의 규모, 기법, 공격 주체에 대한 공개 정보는 확인할 수 없었습니다.
- 여러 연구자와 조직이 이 문제를 보고했으며 공식 페이지에 사의가 실려 있습니다.
출처
- PostgreSQL — CVE-2026-6460 (설명, 영향받는 버전과 수정 버전, CVSS 8.8, 2026년 11월 12일)
- PostgreSQL — PostgreSQL 18.7, 17.12, 16.16, 15.20, 14.25, and 19 RC 2 Released! (52개 수정, PostgreSQL 14 지원 종료, 업데이트 후 절차)
- PostgreSQL — Security Information (52개의 목록)
- CVE.org — CVE-2026-6460 (2026년 11월 12일 공개. CWE-843, CISA SSVC 평가)
- CISA KEV — Known Exploited Vulnerabilities Catalog (카탈로그의 11월 10일판에는 없음)
객체 생성 권한을 제한하는 것은 이 사이트가 일반적인 방어로 적어 둔 것이며 PostgreSQL이 밝힌 회피책이 아닙니다. 최종 확인: 2026년 11월 13일.
이어서 읽기
- 실천: 취약점 대응 플레이북 / 자산 목록 체크리스트
- 준비: 백업 기본
- 판단: CVSS, EPSS, KEV로 우선순위 정하기
- 용어: SQL 인젝션이란? / CVSS란?