PostgreSQL CVE 취약점 16건 상세 분석 및 보안 패치 가이드
2026년 PostgreSQL에서는 서버 코어뿐만 아니라 psql, pg_dump, PL/Perl, contrib 모듈 등 다양한 영역에서 보안 취약점이 공개되었습니다. 특히 메모리 손상, 버퍼 오버플로, Type Confusion, SQL Injection 등으로 인해 PostgreSQL 서버 또는 클라이언트 실행 계정 권한으로 임의 코드가 실행될 수 있는 취약점이 다수 포함되어 있습니다.
1. PostgreSQL 주요 CVE 목록
| CVE | 주요 내용 | 영향 영역 | CVSS |
|---|---|---|---|
| CVE-2026-6464 | psql COPY FROM STDIN 처리 과정에서 데이터가 psql 명령으로 처리될 수 있음 | Client | 8.1 |
| CVE-2026-6471 | Logical Decoding을 통한 임의 파일 dlopen 가능 | Core Server | 7.2 |
| CVE-2026-14662 | tsvector / tsquery 정수 오버플로에 따른 메모리 손상 및 코드 실행 | Core Server | 8.8 |
| CVE-2026-14664 | 정규표현식 처리 중 Heap Buffer Overflow | Core Server | 8.8 |
| CVE-2026-14668 | ctid Type Confusion을 통한 메모리 정보 노출 | Core Server | 8.1 |
| CVE-2026-14669 | to_char(timestamptz) Heap Buffer Overflow | Core Server | 8.8 |
| CVE-2026-14670 | PL/Perl tied hash 처리 과정 Heap Buffer Overflow | Core Server | 8.8 |
| CVE-2026-14671 | refint Plan Cache Type Confusion | Contrib Module | 8.8 |
| CVE-2026-14677 | 32-bit PL/Tcl 및 PL/Perl Integer Wraparound | Core Server | 8.8 |
| CVE-2026-14679 | Argument Match 과정 Stack Buffer Overflow | Core Server | 8.2 |
| CVE-2026-14780 | PostgreSQL 공식 보안 목록 및 NVD 등록 여부 별도 확인 필요 | 확인 필요 | - |
| CVE-2026-15741 | EXTRACT 표현식 Deparse 과정 SQL Injection | Core Server | 8.8 |
| CVE-2026-15742 | fuzzystrmatch Integer Wraparound에 따른 임의 메모리 쓰기 | Contrib Module | 8.8 |
| CVE-2026-16239 | Cursor/Portal Lifecycle Type Confusion | Core Server | 8.8 |
| CVE-2026-18408 | pg_dump / psql 복원 과정에서 클라이언트 코드 실행 가능 | Client | 8.8 |
| CVE-2026-19385 | pg_dump Heap Buffer Overflow | Client | 8.8 |
2. CVE-2026-6464 - psql COPY FROM STDIN 명령 처리 취약점
PostgreSQL의 psql 클라이언트에서
COPY FROM STDIN 또는 \copy FROM STDIN 명령이 정상적으로 입력 데이터를 기다리기 전에 실패할 경우,
뒤따르는 데이터 행이 일반 데이터가 아닌 psql 명령으로 해석될 수 있는 취약점입니다.
공격 조건이 충족되면 데이터에 포함된 내용이 의도하지 않은 psql 명령으로 처리될 수 있습니다. 반면 파일명을 직접 사용하는 COPY FROM 방식은 해당 취약점의 영향을 받지 않습니다.
CVSS: 8.1 / High
3. CVE-2026-6471 - Logical Decoding 임의 파일 로드 취약점
PostgreSQL Logical Decoding 기능에서 임의 파일을 동적 라이브러리로 로드할 수 있는 문제입니다. 공식 PostgreSQL 보안 정보에서는 Core Server 취약점으로 분류되며 CVSS 7.2가 부여되었습니다.
공격을 위해서는 높은 데이터베이스 권한이 요구되지만, 조건이 충족되는 환경에서는 서버 측 코드 실행으로 연결될 가능성이 있으므로 Logical Replication이나 Logical Decoding 기능을 사용하는 시스템에서는 패치 여부를 반드시 확인해야 합니다.
4. CVE-2026-14662 - tsvector / tsquery Integer Wraparound
PostgreSQL Full Text Search에서 사용하는 tsvector 및 tsquery 처리 과정에서
Integer Wraparound가 발생할 수 있는 취약점입니다.
조작된 대용량 입력으로 메모리 할당 크기가 실제 필요한 크기보다 작게 계산될 수 있으며, 이후 Out-of-Bounds Write가 발생할 수 있습니다.
악용에 성공하면 PostgreSQL 서버 프로세스를 실행하는 OS 계정 권한으로 임의 코드가 실행될 가능성이 있습니다.
CVSS: 8.8 / High
5. CVE-2026-14664 - PostgreSQL Regexp Heap Buffer Overflow
PostgreSQL 정규표현식 처리 과정에서 발생하는 Heap Buffer Overflow 취약점입니다. 특수하게 조작된 문자열을 이용해 메모리 경계를 벗어난 쓰기가 발생할 수 있습니다.
공격에 성공할 경우 PostgreSQL 서버를 실행하는 운영체제 사용자 권한으로 임의 코드가 실행될 수 있기 때문에 영향도가 높은 취약점입니다.
CVSS: 8.8 / High
6. CVE-2026-14668 - ctid Type Confusion
PostgreSQL의 ctid 데이터 타입 Selectivity Estimator에서 발생하는 Type Confusion 취약점입니다.
공격자는 잘못된 데이터 타입을 이용해 PostgreSQL 프로세스 메모리 일부에 기반한 계산 결과를 확인할 수 있으며, 이를 반복적으로 활용하면 서버 메모리 정보가 노출될 가능성이 있습니다.
CVSS: 8.1 / High
7. CVE-2026-14669 - to_char Heap Buffer Overflow
to_char(timestamptz) 함수에서 긴 POSIX Timezone 약어를 처리하는 과정에서
Heap Buffer Overflow가 발생할 수 있습니다.
공격자가 Timezone 값을 조작할 수 있는 조건에서는 메모리 손상을 유발하고 PostgreSQL 서버 OS 계정 권한으로 임의 코드 실행까지 이어질 수 있습니다.
CVSS: 8.8 / High
8. CVE-2026-14670 - PL/Perl Heap Buffer Overflow
PostgreSQL의 PL/Perl 기능에서 tied hash 객체를 반환하는 과정에서 발생하는 Heap Buffer Overflow 취약점입니다.
악의적으로 작성된 PL/Perl 함수가 존재할 경우 PostgreSQL 프로세스의 메모리를 손상시키고 서버 프로세스 권한으로 임의 코드를 실행할 가능성이 있습니다.
CVSS: 8.8 / High
9. CVE-2026-14671 - refint Plan Cache Type Confusion
PostgreSQL contrib 모듈인 refint에서 Plan Cache를 처리하는 과정에서
Type Confusion이 발생하는 취약점입니다.
공격자가 관련 데이터베이스 객체를 생성할 수 있는 경우 PostgreSQL 서버 프로세스 권한으로 임의 코드가 실행될 수 있습니다.
CVSS: 8.8 / High
10. CVE-2026-14677 - 32-bit PL/Tcl 및 PL/Perl Integer Wraparound
32-bit PostgreSQL 환경의 PL/Tcl 및 PL/Perl에서 함수 본문을 처리할 때 Integer Wraparound로 인해 실제보다 작은 메모리 공간이 할당될 수 있습니다.
이후 Out-of-Bounds Write가 발생할 수 있으며, 악용 시 PostgreSQL 서버 프로세스 권한으로 코드 실행이 가능합니다.
11. CVE-2026-14679 - Stack Buffer Overflow
PostgreSQL 함수의 Argument Name Matching 과정에서 OUT Parameter 개수를 이용해 Stack Buffer Overflow를 발생시킬 수 있는 취약점입니다.
공식 설명에 따르면 공격자가 기록 가능한 값에는 제약이 있지만, 서비스 가용성 또는 메모리 무결성에 영향을 줄 수 있어 패치가 필요합니다.
CVSS: 8.2 / High
12. CVE-2026-14780 - 별도 확인 필요
따라서 CVE 번호 오기 여부를 먼저 확인하는 것이 좋습니다. CVE 번호가 잘못된 상태에서 PostgreSQL 취약점으로 단정하면 보안 점검 보고서나 취약점 조치 결과에 오류가 발생할 수 있습니다.
NVD에서는 다음 형식으로 직접 확인할 수 있습니다.
https://nvd.nist.gov/vuln/detail/CVE-2026-14780
13. CVE-2026-15741 - EXTRACT Deparse SQL Injection
PostgreSQL의 EXTRACT() 표현식을 Deparse하는 과정에서 발생하는 SQL Injection 취약점입니다.
악의적인 객체 정의가 존재하면 Expression Deparse를 사용하는 기능에서
의도하지 않은 SQL이 실행될 수 있습니다.
영향 대상에는 pg_dump, psql의 일부 명령 및 유사한 기능을 사용하는 외부 도구가 포함될 수 있습니다.
CVSS: 8.8 / High
14. CVE-2026-15742 - fuzzystrmatch Integer Wraparound
PostgreSQL contrib 모듈인 fuzzystrmatch의
levenshtein() 및 levenshtein_less_equal() 함수에서 발생하는 Integer Wraparound 취약점입니다.
극단적인 입력값을 이용하면 메모리 주소에 대한 비정상적인 쓰기가 발생할 수 있으며, 공격 성공 시 PostgreSQL 서버 프로세스 권한으로 임의 코드가 실행될 수 있습니다.
CVSS: 8.8 / High
15. CVE-2026-16239 - Cursor Type Confusion
PostgreSQL Cursor 및 Portal의 생명주기 관리 과정에서 발생하는 Type Confusion 취약점입니다.
Cursor를 닫은 뒤 동일한 이름으로 다른 타입의 Portal을 재생성하는 등의 방식으로 잘못된 타입의 메모리가 사용될 수 있습니다.
악용에 성공하면 PostgreSQL 서버를 실행하는 OS 계정 권한으로 임의 코드 실행이 가능합니다.
CVSS: 8.8 / High
16. CVE-2026-18408 - pg_dump / psql 복원 코드 실행 취약점
신뢰할 수 없는 PostgreSQL 서버에서 생성한 Dump 파일을
psql로 복원할 때 문제가 발생할 수 있는 취약점입니다.
악의적인 원본 서버의 Superuser가 Dump 데이터에 조작된 내용을 삽입하면 복원을 수행하는 클라이언트의 OS 계정 권한으로 임의 코드가 실행될 가능성이 있습니다.
pg_dumpall 역시 영향을 받을 수 있으며,
pg_restore를 이용해 Plain Format Dump를 생성하는 경우도 주의해야 합니다.
CVSS: 8.8 / High
17. CVE-2026-19385 - pg_dump Heap Buffer Overflow
PostgreSQL pg_dump가 긴 Function Transform List를 처리하는 과정에서
Heap Buffer Overflow가 발생할 수 있는 취약점입니다.
공격자가 조작된 Transform List를 가진 객체를 생성할 수 있는 환경이라면 Dump를 실행하는 OS 사용자 권한으로 임의 코드가 실행될 가능성이 있습니다.
CVSS: 8.8 / High
18. 영향받는 PostgreSQL 버전
위 취약점 대부분은 PostgreSQL 14~18 계열에 영향을 주며, 2026년 8월 13일 PostgreSQL 보안 업데이트에서 수정되었습니다.
| Major Version | 취약 버전 기준 | 보안 패치 버전 |
|---|---|---|
| PostgreSQL 14 | 14.24 미만 | 14.24 이상 |
| PostgreSQL 15 | 15.19 미만 | 15.19 이상 |
| PostgreSQL 16 | 16.15 미만 | 16.15 이상 |
| PostgreSQL 17 | 17.11 미만 | 17.11 이상 |
| PostgreSQL 18 | 18.6 미만 | 18.6 이상 |
19. 현재 PostgreSQL 버전 확인
SQL에서 다음 명령으로 버전을 확인할 수 있습니다.
SELECT version();
또는 Linux 서버에서 다음과 같이 확인할 수 있습니다.
psql --version
postgres --version
예를 들어 다음과 같이 표시된다면:
psql (PostgreSQL) 16.9
PostgreSQL 16.9는 위 2026년 8월 보안 릴리스인 16.15보다 이전 버전이므로 16.15 이상으로 업데이트하는 것을 검토해야 합니다.
20. 설치된 Extension 확인
이번 취약점 중에는 PostgreSQL Core Server뿐 아니라 contrib 모듈과 PL 언어에 영향을 주는 항목도 존재합니다. 현재 데이터베이스에 설치된 Extension은 다음 명령으로 확인할 수 있습니다.
SELECT
extname,
extversion
FROM pg_extension
ORDER BY extname;
psql에서는 다음 명령도 사용할 수 있습니다.
\dx
특히 다음과 같은 구성요소 사용 여부를 확인하는 것이 좋습니다.
fuzzystrmatch
refint
plperl
pltcl
21. 운영 환경 대응 방법
1) PostgreSQL 버전 확인
SELECT version();
2) 패키지 버전 확인
RPM 계열 Linux에서는 다음과 같이 확인할 수 있습니다.
rpm -qa | grep -i postgres
3) Extension 확인
SELECT extname, extversion
FROM pg_extension
ORDER BY extname;
4) PL 언어 확인
SELECT lanname
FROM pg_language
ORDER BY lanname;
5) 보안 업데이트 적용
운영 중인 Major Version을 변경하는 것이 아니라 해당 Major Version의 최신 Minor Release로 업데이트하는 방법을 우선 검토합니다.
PostgreSQL 14 → 14.24 이상
PostgreSQL 15 → 15.19 이상
PostgreSQL 16 → 16.15 이상
PostgreSQL 17 → 17.11 이상
PostgreSQL 18 → 18.6 이상
6) 업데이트 전 백업
운영 DB라면 패치 전 데이터베이스 백업과 복구 가능 여부를 확인해야 합니다.
pg_dump -Fc DB_NAME > DB_NAME.dump
다만 이번 취약점에는 pg_dump 자체와 관련된 보안 문제가 포함되어 있으므로,
신뢰할 수 없는 서버나 데이터베이스에서 생성한 Dump를 취약한 버전의 도구로 처리하는 것은 피해야 합니다.
7) 업데이트 후 버전 검증
SELECT version();
psql --version
22. 보안 점검 시 확인해야 할 핵심 사항
| 점검 항목 | 확인 내용 |
|---|---|
| PostgreSQL Version | 보안 패치 버전 이상인지 확인 |
| psql | 서버와 별도로 클라이언트 패키지 버전 확인 |
| pg_dump | 취약한 클라이언트 버전 사용 여부 확인 |
| PL/Perl | plperl 사용 여부 확인 |
| PL/Tcl | pltcl 사용 여부 확인 |
| fuzzystrmatch | Extension 설치 여부 확인 |
| refint | Contrib 모듈 사용 여부 확인 |
| Logical Decoding | Replication / Decoding 기능 사용 여부 확인 |
| Backup Server | pg_dump 실행 서버의 PostgreSQL Client 버전 확인 |
23. 서버만 업데이트하면 끝일까?
이번 CVE 목록에서는 Core Server 취약점과 Client 취약점이 동시에 존재한다는 점이 중요합니다.
예를 들어 다음 도구가 영향을 받을 수 있습니다.
PostgreSQL Server
psql
pg_dump
pg_dumpall
pg_restore
따라서 DB 서버 패키지만 업데이트하고,
별도의 백업 서버나 관리 서버에 설치된 psql과 pg_dump를
이전 버전으로 유지하면 일부 Client 취약점이 남을 수 있습니다.
24. 결론
2026년 PostgreSQL 보안 취약점은 단순한 정보 노출이나 서비스 거부 수준에 그치지 않고, Heap Buffer Overflow, Integer Wraparound, Type Confusion, SQL Injection 등 임의 코드 실행으로 연결될 수 있는 High 등급 취약점이 다수 포함되어 있습니다.
특히 PostgreSQL 14~18을 운영하고 있다면 현재 Minor Version을 확인하고, 환경에 맞는 보안 패치 버전인 14.24 / 15.19 / 16.15 / 17.11 / 18.6 이상 적용 여부를 확인하는 것이 중요합니다.
또한 서버 버전만 확인하지 말고 psql, pg_dump,
PL/Perl, PL/Tcl, fuzzystrmatch, refint 등 실제 사용 중인 구성요소까지 함께 확인해야 합니다.
한편 요청 목록의 CVE-2026-14780은 작성 시점 기준 PostgreSQL 공식 Security Information에서 PostgreSQL 취약점으로 확인되지 않았으므로 CVE 번호를 다시 확인한 뒤 보안 점검 대상에 포함하는 것이 안전합니다.
25. 참고 사이트
NVD(National Vulnerability Database)의 각 CVE 상세 페이지는 다음 형식으로 확인할 수 있습니다.
https://nvd.nist.gov/vuln/detail/CVE-CODE
예:
https://nvd.nist.gov/vuln/detail/CVE-2026-6464
PostgreSQL 공식 Security Information에서도 PostgreSQL 버전별 영향 범위, 수정 버전, CVSS와 취약점 설명을 확인할 수 있습니다.
'지식 공유 > DBMS' 카테고리의 다른 글
| 오라클 이중화 리스너 Fail-Over 스크립트 적용 (1) | 2026.07.16 |
|---|---|
| Tibero 5 JDBC-590743 문자셋 변환 오류 점검 방법 (0) | 2026.07.02 |
| PostgreSQL VACUUM FULL 후 relfrozenxid age가 1로 줄어드는 이유 (0) | 2026.07.02 |
| oracle to postgresql ORA-00943 오류, Oracle 테이블 대소문자와 스키마 확인 방법 (0) | 2026.06.28 |
| PostgreSQL invalid page in block 오류 원인과 복구 대응 방법 (0) | 2026.06.28 |
