v1.18.0은 OIDC 인증 우회와 preshared key 타이밍 취약점 두 가지 보안 버그를 수정합니다. MySQL 사용자는 스키마 마이그레이션으로 인해 업그레이드 전 유지보수 시간을 반드시 확보해야 합니다.
securityOIDC audience 우회 취약점 — 업그레이드 전 설정 확인 필수
authn.oidc.audience를 설정하지 않으면 JWT audience 검증이 무음으로 건너뛰어졌고, 신뢰된 issuer가 발급한 모든 토큰이 수락됐습니다. 업그레이드 후에는 issuer와 audience가 모두 없으면 서버가 기동하지 않습니다. 배포 설정에 authn.oidc.audience가 명시돼 있는지 미리 확인하세요.
securityPreshared key 타이밍 사이드채널 수정 — 키 교체 고려
기존 map lookup 기반 preshared key 검증은 응답 시간 차이로 유효한 키 바이트를 추측할 수 있었습니다. 이제 constant-time 비교로 수정됐습니다. 즉각적인 조치는 불필요하지만, 이 키가 신뢰할 수 없는 네트워크 경로에 오랫동안 노출됐다면 키를 교체하는 것이 좋습니다.
breakingMySQL 사용자: 서버 기동 시 auto-migration 실행 금지
마이그레이션 008은 tuple 및 changelog 테이블에 공유 락을 획득합니다. 데이터가 많은 프로덕션 환경에서는 Write 작업이 장시간 차단될 수 있습니다. collation_migrations.md 운영 가이드를 먼저 읽고, 유지보수 시간을 잡아 마이그레이션을 수동으로 실행하세요. auto-migration 옵션은 반드시 끄세요.
주요 변경 (4)
- MySQL 스키마 마이그레이션 008: 식별자 비교를 대소문자 구분(case-sensitive)으로 변경, tuple·changelog 테이블에 공유 락(shared lock) 획득
- Preshared key 인증에 constant-time 비교 도입 — 이전 map lookup 방식의 타이밍 사이드채널 차단
- OIDC 설정 검증 강화: authn.oidc.issuer 또는 authn.oidc.audience 누락 시 서버 기동 거부, 기존의 JWT audience 조용한 우회 방지
- MySQL 식별자 비교 동작이 Postgres·SQLite와 동일하게 대소문자 구분으로 통일