RATATOSKRATATOSK
로그인

Vitess

v24.0.4Storage & Data
2026년 10월 1일

ACTION 6CHECK 1PLAN 1OTHER 13

TLS 인증서 폐기와 테이블 ACL 검사를 강화하고, 보안 공격 표면이 된 HTTP API를 제거한 보안 중심 유지보수 릴리스입니다. 압축 설정의 의미 변경과 운영 지표 추가가 포함되며, 업그레이드 순서와 호환성에 영향을 주는 변경도 있습니다.

조치 필요 (6)

  • securityCRL 설정 gRPC 클라이언트의 TLS 연결

    --tablet-grpc-crl, --vtgate-grpc-crl, --vtctld-grpc-crl 및 다른 *-grpc-crl 플래그를 설정했지만 클라이언트 인증서와 CA가 모두 없는 gRPC 클라이언트가 이제 평문으로 연결되지 않고 TLS로 연결됩니다. 서버 인증에는 시스템 루트를 사용합니다.

  • security읽기 작업의 엄격한 테이블 ACL 검사

    --queryserver-config-strict-table-acl이 활성화된 경우 각 읽기를 같은 테이블을 읽는 일반 SELECT처럼 검사합니다. 다른 테이블 ACL 검사와 동일하게 드라이 런과 ACL 면제 동작도 적용합니다.

  • securityvtctld /api/ HTTP API 제거

    vtctld가 /api/에서 제공하던 HTTP API를 제거했습니다.

  • breaking적용할 수 없는 CRL 설정 거부

    TLS 설정을 시작할 때 구성한 방식으로 CRL을 적용할 수 없는 설정은 거부합니다.

  • breakingvtctld Go API 제거

    Go 패키지를 사용하는 코드에서 vtctld.InitVtctld, vtctld.ActionRepository, vtctld.ActionResult, vtctld.TabletWithURL을 더 이상 사용할 수 없습니다.

  • breaking하위 질의를 포함한 설정 거부

    엄격한 테이블 ACL에서는 표현식에 하위 질의가 포함된 설정을 vttablet이 거부합니다.

영향 확인 (1)

  • breaking대상 지정 SET 문 업그레이드 순서 제약

    vttablets를 vtgates보다 먼저 업그레이드하는 경우 적용됩니다.

    vttablet을 vtgate보다 먼저 업그레이드하는 경우에 적용됩니다.

미리 준비 (1)

  • deprecated플래그 사용 중단 예고v26에서 제거 예정

    --cell, --proxy-tablets, --action-timeout, --tablet-health-keep-alive 플래그는 더 이상 사용이 권장되지 않으며 v26에서 제거됩니다.

그 외 기록된 변경 13건 전체fixes 16 · value changes 6 · constraints 2 · additions 1

fixes (16)

  • A SET of a system variable in a session targeted at a shard (use ks:-80) is now evaluated once on the target shard
  • mysql/json: read numbers the way MySQL does
  • fix(vdiff): map source PK columns to their SELECT positions in getSourcePKCols
  • vreplication: Fix --config-overrides silently erasing existing config keys
  • use tablet db name override when reading current sequence value in SwitchTraffic dry run
  • flagutil: keep the first value passed to StringSetFlag.Set
  • vtadmin: send a non-empty :authority so gRPC works behind a proxy
  • sqlparser: fix panic on WITH followed by parenthesized query
  • vtorc: pass a heartbeat interval to SetReplicationSource only for ReplicaMisconfigured
  • vttablet: reset connection settings with the DEFAULT keyword
  • smartconnpool: re-check capacity after getNew's CAS
  • vttablet: reset foreign_key_checks and unique_checks settings to the global value
  • tabletenv: Fix infinite recursion in OltpConfig.UnmarshalJSON
  • VTTablet: discard a transaction's connection after a CALL ran on it
  • vttablet: derive table ACL permissions the way MySQL resolves CTE names
  • vttestserver: fail, don't panic, on a vschema missing a table or vindex

value changes (6)

  • The exported planbuilder.BuildPermissions now returns a second result, tablesUndetermined bool, alongside the permissions.
  • The lz4 compression engine now uses the pierrec/lz4/v4 library instead of pierrec/lz4 v2.
  • vtgate: report RowsAffected for stored-procedure calls over the streaming path
  • vtgate: list the session's SET_VAR hint variables in a fixed order
  • Upgrade the Golang version to go1.26.8
  • vtgate: only scan shard records for MoveTables state when routing rules reference the keyspace

constraints (2)

  • VDiff: accept a target primary key that extends a unique source key
  • Only negotiate multi statement support on connections that send batches

additions (1)

  • now reports its connections by transport, tls or plaintext, in two new stats: GrpcOptionalTlsOpenConnections
Vitess 스택에 추가

조치가 필요한 릴리스가 나왔을 때 주간 메일로 알려드립니다. 이번 릴리스의 보안 패치와 브레이킹 체인지 같은 것들입니다.

스택에 추가 →