Vitess v24.0.2는 gRPC 인증 타이밍과 twopcz 값 이스케이프 관련 보안 강화 수정 2건에, 백업/복구, VReplication, vtgate, VTOrc, 커넥션 풀링 전반의 버그 수정을 더한 패치 릴리스입니다. 브레이킹 API나 설정 변경은 명시되지 않았습니다.
security보안 강화 수정 2건: gRPC 인증 타이밍, twopcz 반사값 처리
static gRPC 인증 플러그인의 비밀번호 비교에서 발생하던 타이밍 사이드채널과 twopcz 핸들러의 반사값 이스케이프 누락을 수정했습니다. 두 건 모두 조건 없이 적용되므로, gRPC static auth를 쓰거나 twopcz 엔드포인트를 노출하는 환경이라면 v24.0.2로 업그레이드를 권장합니다.
주요 변경 (7)
- servenv: static gRPC 인증 플러그인이 이제 상수 시간 비밀번호 비교를 사용해 타이밍 사이드채널을 막았습니다.
- tabletserver: twopcz 핸들러가 반사되는 폼 값을 이스케이프 처리해 반사형 인젝션 가능성을 제거했습니다.
- smartconnpool 다건 수정: MaxLifetime 지터, reopen 후 refresh worker 유지, idle reopen 정지, close 데드락, Setting 보존, closed pool에서의 SetCapacity 거부 처리.
- VTOrc: PrimaryIsReadOnly 복구와 PrimarySemiSyncBlocked 사이의 데드락을 해결했고, errant GTID 해소 시 게이지 값을 초기화합니다.
- VReplication/vtgate: reshard 수렴 시 vstream StopOnReshard가 멈추는 문제, 교체된 태블릿의 취소된 연결 확인에서 오는 오래된 healthcheck 업데이트, binlog 디코딩 시 DECIMAL JSON 선행 0 처리를 수정했습니다.
- vtgate: Filter 스트리밍 경로가 ToBoolean()을 사용해 정확한 결과를 내도록 고쳤고, OLAP/스트리밍 모드의 prepared statement에 전용 플랜을 적용합니다.
- 그 외 소소한 수정 6건 정도: mysqlctl 원격 종료 타임아웃 전파, 백업 중 lastErr 초기화, discovery의 keyspaceState 누수, etcd2topo 락 정리 RPC 범위 제한, vttablet Stream의 스키마 덮어쓰기 문제.