psqlODBC 18.00.0005, 매개변수 바인딩의 메모리 손상 취약점 수정
PostgreSQL 공식 ODBC 드라이버 psqlODBC 18.00.0005가 메모리 손상 취약점 CVE-2026-109448을 수정했다. 외부 입력으로 바인딩할 매개변수 수를 정하는 앱은 충돌·메모리 손상 위험에 노출될 수 있다. 영향 버전은 08.01.0102~18.00.0004이며, 새 버전은 32767을 넘는 매개변수 번호를 거부한다.
개발팀은 모든 이용자에게 업그레이드를 권고했다. 취약점의 CVSS 3.1 기본 점수는 5.9로 중간 등급이다.
기존 드라이버는 바인딩한 매개변수 수를 부호 있는 16비트 필드에 저장했다. 본문에 따르면 한 문장에 32768개보다 많은 매개변수를 바인딩하면 할당 영역 밖에 0을 기록할 수 있었다.
SQLBindParameter는 32767을 넘는 매개변수 번호에 SQLSTATE 07009를 반환한다. ODBC의 SQLNumParams와 SQL_DESC_COUNT도 16비트 값이며, 이전 버전에서도 32767개를 넘는 문장은 정상 실행할 수 없었다.
서버에서 준비한 문장에 매개변수가 1000개 이상이면 자료형 이름이 잘려 오류가 발생하던 문제를 수정했다.
18.00.0003부터 Microsoft OLE DB Provider for ODBC를 통한 bytea 매개변수 사용 시 발생하던 오류도 수정했다.
Windows 패키지는 OpenSSL 3.5.9로 빌드하며 x86·x64·ARM64 설치 파일을 제공한다.
즉시 업그레이드하기 어렵다면 외부 입력으로 만드는 목록 길이를 제한하거나 긴 값 목록을 단일 배열 매개변수로 전달할 수 있다.
원문
- psqlODBC 18.00.0005 released with security fix for CVE-2026-109448 PostgreSQL · 원문 2026-10-14