🇰🇷 한글 설명
pgx PostgreSQL 드라이버의 단순 프로토콜 사용 시 달러 인용 문자열 리터럴에 포함된 플레이스홀더 텍스트를 통해 SQL 인젝션이 가능합니다. 공격자가 플레이스홀더 값을 제어할 수 있을 경우 악의적인 SQL을 주입하여 데이터베이스를 손상시킬 수 있습니다. 버전 5.9.2 이상으로 업그레이드하면 해결됩니다.
💡 쉬운 설명
Go 언어로 PostgreSQL 데이터베이스를 사용하는 프로그램에서 특정 상황에 해커가 악의적인 명령을 주입할 수 있습니다. 가장 최신 버전으로 업그레이드하면 이 문제가 해결됩니다.
🇺🇸 원문 (English)
pgx is a PostgreSQL driver and toolkit for Go. Prior to version 5.9.2, SQL injection can occur when the non-default simple protocol is used, a dollar quoted string literal is used in the SQL query, that string literal contains text that would be would be interpreted as a placeholder outside of a string literal, and the value of that placeholder is controllable by the attacker. This issue has been patched in version 5.9.2.
📍 영향받는 시스템
pgx (Go PostgreSQL driver) 버전 5.9.2 미만
⚔️ 공격 벡터
단순 프로토콜 + 달러 인용 문자열 리터럴 + 공격자 제어 가능한 플레이스홀더 조합을 통한 SQL 인젝션
🛡️ 대응 방법
pgx를 5.9.2 이상으로 업그레이드 (go get -u github.com/jackc/pgx/v5@latest)
🔧 검증 코드
go.mod 또는 go.sum에서 pgx 버전이 5.9.2 미만이면 출력되고, 5.9.2 이상이면 출력되지 않습니다.
grep 'github.com/jackc/pgx' go.mod go.sum 2>/dev/null | grep -v 'v5.9.2\|v6.'