Pulse 게시 ·

psqlODBC 18.00.0005, 매개변수 바인딩의 메모리 손상 취약점 수정

PostgreSQL 공식 ODBC 드라이버 psqlODBC 18.00.0005가 메모리 손상 취약점 CVE-2026-109448을 수정했다. 외부 입력으로 바인딩할 매개변수 수를 정하는 앱은 충돌·메모리 손상 위험에 노출될 수 있다. 영향 버전은 08.01.0102~18.00.0004이며, 새 버전은 32767을 넘는 매개변수 번호를 거부한다.

내용·출처 업데이트 · 2026. 10. 14. 오후 9:41

개발팀은 모든 이용자에게 업그레이드를 권고했다. 취약점의 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 설치 파일을 제공한다.

즉시 업그레이드하기 어렵다면 외부 입력으로 만드는 목록 길이를 제한하거나 긴 값 목록을 단일 배열 매개변수로 전달할 수 있다.

원문