PgBouncer 1.26.1 보안 업데이트: CVE 3건 영향 버전·대응 방법

DB 소식 · 2026-10-17 · 기술/보안

PgBouncer 1.26.1 보안 업데이트: CVE 3건 영향 버전·대응 방법

ADVERTISEMENTGoogle AdSense (Client/Slot ID 설정 대기)
ADVERTISEMENTGoogle AdSense (Client/Slot ID 설정 대기)

PostgreSQL 연결 풀러 PgBouncer가 2026년 10월 14일 1.26.1을 공개하면서 인증 우회 1건과 서비스 거부(DoS) 2건을 수정했습니다. 다만 세 문제는 서로 다른 버전과 설정 조건을 가집니다. 아래에서는 패치 필요성을 빠르게 판단할 수 있도록 공식 릴리스와 변경 이력을 기준으로 영향을 분리했습니다.

데이터베이스와 연결 풀을 모니터링하는 엔지니어 실사풍 이미지
개념 이미지: 실제 취약점 재현 화면이 아닌 운영 모니터링 장면.

PgBouncer 1.26.1 업데이트: 영향 버전부터 확인

이번 PgBouncer 보안 업데이트는 세 가지 결함을 수정합니다. PgBouncer CVE 2026 관련 항목은 이름이 비슷하더라도 공격 전제조건이 다르므로 아래 표를 먼저 확인해야 합니다.

ADVERTISEMENTGoogle AdSense (Client/Slot ID 설정 대기)
식별자영향 버전핵심 전제
CVE-2026-1073501.17.0~1.26.0특정 SCRAM 인증 흐름과 기존 사용자 암호 지식
CVE-2026-1073491.20.0~1.26.0ignore_startup_parameters 설정 조건
CVE-2026-1073481.21.0~1.26.0비기본 max_packet_size 값
PgBouncer 취약점 세 건의 영향 버전 및 설정 조건 비교 정보도
공식 변경 이력에 따른 영향 범위 비교. 자세한 조건은 본문을 참조하세요.

CVE-2026-107350: PgBouncer 인증 우회 조건

SCRAM 인증 취약점은 기존 사용자 계정의 암호를 알고 있다는 전제 아래 다른 SCRAM 사용자로 인증될 수 있는 문제입니다. 특히 존재하지 않는 데이터베이스 접속 중 SCRAM 인증 과정에서 두 번째 StartupMessage가 처리된다는 원인이 공개됐습니다. 두 계정 모두 SCRAM 방식이어야 하며, 공격자가 알고 있는 암호는 auth_file에 정의된 사용자의 암호여야 합니다. 대상 사용자는 auth_file 또는 auth_query에서 올 수 있습니다.

이 때문에 PgBouncer 인증 우회를 ‘인터넷에 연결된 누구나 아무 조건 없이 관리자 계정으로 접속한다’고 설명하는 것은 부정확합니다. 암호 유출 여부, 사용자 구성, 네트워크 노출을 따져 대응 우선순위를 정해야 합니다.

두 가지 PgBouncer DoS: 기본 설정과 다른 예외

CVE-2026-107349는 비인증 클라이언트의 startup options에 비정상 옵션 이름이 포함될 때 무한 루프가 발생할 수 있는 문제입니다. ignore_startup_parameters가 비어 있지 않으면서 options를 포함하지 않는 환경이 전제입니다. 해당 조건에 맞으면 CPU 코어가 점유되며 다른 클라이언트 처리까지 영향을 줄 수 있습니다.

CVE-2026-107348는 패킷 버퍼 확장 처리의 정수 오버플로 문제입니다. PgBouncer max_packet_size가 2,147,483,649 이상으로 설정될 때 영향이 있으며 공식 문서는 기본값 2,147,483,647은 이 조건에 해당하지 않는다고 설명합니다. 따라서 기본 설정 사용자에게 이 특정 CVE가 곧바로 적용된다고 주장하면 안 됩니다. 다만 다른 CVE와 전체 보안 패치 필요성은 별개입니다.

PgBouncer 영향받는 버전 확인과 업그레이드 방법

PgBouncer 1.26.1 업그레이드 방법은 설치 경로에 따라 다릅니다. 컨테이너 이미지, 배포판 패키지, 직접 컴파일 버전의 제공 시점이 다를 수 있으므로 서버별 설치 상태를 먼저 조사하세요.

ADVERTISEMENTGoogle AdSense (Client/Slot ID 설정 대기)
  1. 운영 서버의 버전과 배포 방식, 연결된 PgBouncer 인스턴스 전체를 식별합니다.
  2. SCRAM 계정 사용 여부와 ignore_startup_parameters, max_packet_size 값을 점검합니다. 확인값에는 자격증명 자체를 노출하지 않습니다.
  3. 공식 배포 페이지나 사용 중인 패키지 공급업체의 보안 공지를 확인하고, 고정된 취약 릴리스가 아닌 수정 버전이 포함됐는지 대조합니다.
  4. 스테이징에서 애플리케이션 연결, 인증, 트랜잭션 풀링, search_path 호환성 및 모니터링을 점검합니다.
  5. 백업과 롤백 계획을 준비한 후 변경 창에 배포하고 오류율·대기 연결·로그를 관찰합니다.
PgBouncer 업데이트 전 설치 현황, 설정, 배포 검증의 세 단계 정보도
운영 확인 절차. 특정 배포판의 자동 업그레이드 성공을 보증하지 않습니다.

실제 운영 서버에서 명령을 실행하거나 패치 적용 결과를 시험한 것은 아닙니다. 환경별 명령·재시작 방식은 반드시 해당 배포판과 운영 정책에 맞춰 결정해야 합니다.

1.26.1의 보안 외 변경: search_path 주의

이번 버전에서는 ignore_startup_parameters가 추적되는 매개변수보다 우선하도록 바뀌었습니다. 특히 ignore_startup_parameters = search_path 사용 시 1.25 계열과 유사하게 search_path를 무시할 수 있습니다. 1.26.0에서 추적 동작에 변화가 있었으므로 이전 동작에 의존한 애플리케이션은 회귀 테스트가 필요합니다.

자주 묻는 질문

어떤 버전이 영향을 받나요?

세 취약점은 각각 1.17.0, 1.20.0, 1.21.0부터 1.26.0까지입니다. 버전뿐 아니라 구성 조건도 함께 비교해야 합니다.

SCRAM 사용자는 모두 인증 우회에 노출되나요?

아닙니다. 알려진 기존 사용자 암호와 인증 설정 등 추가 조건이 존재합니다. 다만 조건이 맞는 환경에서는 관리자를 포함한 다른 계정으로의 가장이 가능하다고 공지돼 있습니다.

기본 설정이면 DoS 걱정이 없나요?

CVE-2026-107348에 대해서는 기본 max_packet_size 값이 해당 조건에서 제외됩니다. 그러나 CVE-2026-107349의 구성 조건과 다른 보안 결함까지 사라지는 뜻은 아닙니다.

무조건 1.26.1을 직접 설치해야 하나요?

공식 수정 릴리스는 1.26.1입니다. 배포판의 백포트나 공급업체 패키지 정책이 다를 수 있으므로 공급업체 공지와 실제 패치 적용 상태를 확인하세요.

이번 업데이트가 애플리케이션 동작에 영향을 주나요?

search_path와 시작 매개변수 무시 우선순위가 달라지므로 사용 중이라면 인증 및 쿼리 관련 회귀 테스트를 권합니다.

공식 자료와 검증 범위

발표일은 2026년 10월 14일이며, 본문은 10월 17일 기준 공식 변경 이력을 검토해 작성했습니다. 현재 서비스 노출·실제 공격 발생·개별 공급업체의 백포트 상태·실험 재현 결과는 검증되지 않았습니다. CVSS 실측 점수나 악용 건수도 별도 확인 없이 인용하지 않습니다.