RATATOSKRATATOSK
로그인

Vitess

v23.0.8Storage & Data
2026년 10월 13일

ACTION 7CHECK 14OTHER 7

SQL 삽입과 권한 검사를 강화한 보안 중심 유지보수 릴리스입니다. `sql_mode`, 문자 집합, 파싱, 테이블 ACL, `VExplain` 실행 정책이 바뀌어 일부 운영 환경에서는 설정 조정이 필요할 수 있습니다.

조치 필요 (7)

  • security전역 SET 변수 이름 SQL 삽입 수정

    전역 SET 변수 이름을 통한 SQL 삽입을 수정했습니다. GHSA-m282-7w35-g77m이 해결되었습니다.

    GHSA-m282-7w35-g77m

  • security날짜 및 시간 리터럴 SQL 삽입 수정

    DATE, TIME, TIMESTAMP 리터럴을 통한 SQL 삽입을 수정했습니다. GHSA-9248-hccp-qf8f가 해결되었습니다.

    GHSA-9248-hccp-qf8f

  • securitySET_VAR 세션 변수 값 SQL 삽입 수정

    SET_VAR 힌트에 담긴 세션 변수 값을 통한 SQL 삽입을 수정했습니다. GHSA-9rx3-8pwm-c228이 해결되었습니다.

    GHSA-9rx3-8pwm-c228

  • security후행 주석 SQL의 파싱 및 ACL 검사 우회 수정

    후행 주석에 숨겨져 파싱과 테이블 ACL 검사를 피하던 SQL을 수정했습니다. GHSA-pfg5-ppc7-ff45가 해결되었습니다.

    GHSA-pfg5-ppc7-ff45

  • security숫자 바인드 변수 SQL 삽입 수정

    잘못된 형식의 숫자 바인드 변수를 통한 SQL 삽입을 수정했습니다. GHSA-xf67-9r78-xv82가 해결되었습니다.

    GHSA-xf67-9r78-xv82

  • breaking빈 이름 검증

    빈 문자 집합, 정렬 규칙, 엔진 또는 파티션 테이블스페이스 이름을 거부합니다.

  • breakingENCRYPTION 값 형식 검증

    ENCRYPTION에는 따옴표로 감싼 값만 지정할 수 있습니다.

영향 확인 (14)

  • security테이블 ACL 권한 판정 보완

    적용 대상이 릴리스 노트에 명시되지 않았습니다.

    {"table_names_or_prefixes": ["%"]}로 모든 테이블을 포함하는 테이블 그룹에서 읽기, 쓰기, 관리자 권한을 모두 가진 호출자는 해당 문장이 접근할 수 있는 모든 테이블의 역할을 보유한 것으로 처리됩니다. 따라서 이제 DO, REPAIR, OPTIMIZE와 일부만 파싱된 CREATE TABLE을 실행할 수 있습니다. 관련 설정은 --queryserver-config-strict-table-acl과 --queryserver-config-acl-exempt-acl입니다. GHSA-w6mx-2f8x-pqf4가 수정되었습니다.

  • security허용되지 않는 MySQL 문자 집합 차단

    이 변경은 --db-charset을 설정하는 경우에 적용됩니다.

    --db-charset을 비롯해 MySQL 연결 문자 집합을 설정하는 위치에서 sjis, cp932, gb18030, gbk, big5, ucs2, utf16, utf16le, utf32를 문자 집합 이름이나 해당 정렬 규칙으로 지정할 수 없게 됩니다. GHSA-c28j-qmfx-4gxp가 수정되었습니다.

  • securityVExplain 쿼리 실행 제한

    이 변경은 VExplain을 사용하는 경우에 적용됩니다.

    해당 모드에서 VTAdmin은 INTO, 시퀀스 다음 값 또는 자문 잠금 함수를 포함하지 않은 SELECT만 허용합니다. 쿼리는 읽기 전용 트랜잭션에서 실행되며 항상 롤백됩니다. GHSA-c2r8-grjp-w8c2가 수정되었습니다.

  • securityVStream LastPK 값 SQL 삽입 수정

    이 변경은 VStream이 실행 중인 경우에 적용됩니다.

    VStream의 LastPK 값을 통한 SQL 삽입을 수정했습니다. GHSA-73pp-99vw-h5g8가 해결되었습니다.

    GHSA-73pp-99vw-h5g8

  • securityVStream 필터의 convert_tz() SQL 삽입 수정

    이 변경은 VStream이 실행 중인 경우에 적용됩니다.

    VStream 필터의 convert_tz() 인자를 통한 SQL 삽입을 수정했습니다. GHSA-92cc-q2h6-m2vr가 해결되었습니다.

    GHSA-92cc-q2h6-m2vr

  • securityOnline DDL 테이블 이름 SQL 삽입 수정

    이 변경은 Online DDL이 실행되는 경우에 적용됩니다.

    Online DDL 문장의 테이블 이름을 통한 SQL 삽입을 수정했습니다. GHSA-8w3p-4xg5-rm9w가 해결되었습니다.

    GHSA-8w3p-4xg5-rm9w

  • security쿼리 주석 호출자 ID SQL 삽입 수정

    이 변경은 --queryserver-config-annotate-queries를 설정하는 경우에 적용됩니다.

    쿼리 주석의 호출자 ID를 통한 SQL 삽입을 수정했습니다. --queryserver-config-annotate-queries를 사용할 때 발생할 수 있으며, GHSA-x56j-8c72-5xgg가 해결되었습니다.

    GHSA-x56j-8c72-5xgg

  • securityVTAdmin 상태 변경 API의 사이트 간 GET 요청 차단

    이 변경은 VTAdmin이 실행 중인 경우에 적용됩니다.

    클러스터 상태를 바꾸는 VTAdmin API 경로가 사이트 간 GET 요청을 허용하던 문제를 수정했습니다. GHSA-3fr2-mqr5-r5x5가 해결되었습니다.

    GHSA-3fr2-mqr5-r5x5

  • securityReloadSchemaShard RBAC 검사 보완

    이 변경은 ReloadSchemaShard를 사용하는 경우에 적용됩니다.

    VTAdmin의 ReloadSchemaShard가 RBAC를 검사하지 않던 문제를 수정했습니다. GHSA-78h7-x6qm-xpr8가 해결되었습니다.

    GHSA-78h7-x6qm-xpr8

  • breakingVTGate의 sql_mode 대입 검증

    이 변경은 VTGate가 실행 중인 경우에 적용됩니다.

    VTGate가 이제 MySQL 8.x의 sql_mode 대입 규칙을 구현하고, 모든 대입값을 해당 규칙에 따라 검증합니다.

  • breaking지원하지 않는 sql_mode 설정 거부

    이 변경은 sql_mode를 설정하는 경우에 적용됩니다.

    지원하지 않는 모드를 설정하면 MySQL에서 이미 같은 모드를 사용 중인 경우에도 거부됩니다. 값이 실제로 바뀌지 않는 SET도 예외가 아닙니다.

  • breakingsql_mode 오류 처리 정합성 개선

    이 변경은 sql_mode를 설정하는 경우에 적용됩니다.

    알 수 없는 모드 이름과 잘못된 숫자값은 MySQL 자체 오류로 처리됩니다. 일반적인 잘못된 값에는 ER_WRONG_VALUE_FOR_VAR (1231), MySQL 8.0에서 제거된 모드 비트에는 ER_UNSUPPORTED_SQL_MODE (3899)가 반환됩니다.

  • breakingVTTablet의 sql_mode 검증

    이 변경은 VTTablet이 실행 중인 경우에 적용됩니다.

    VTTablet도 자체 진입점에서 같은 검증을 적용하고 동일한 오류를 반환합니다.

  • breakingMySQL 연결의 세션 sql_mode 정리

    이 변경은 sql_mode를 설정하는 경우에 적용됩니다.

    Vitess가 생성하는 모든 MySQL 연결은 서버 전역값에서 물려받은 세션 sql_mode에서 SQL 텍스트 해석 방식을 바꾸는 모드를 제거합니다.

그 외 기록된 변경 7건 전체value changes 7

value changes (7)

  • Numeric values decode against MySQL's sql_mode bitmask.
  • Constant values are validated at planning time, with no shard round trip.
  • These checks are counted under the undetermined-table-set TableName label, in TableACLDenied, or in TableACLAllowed for a caller with every role on every table.
  • A charset, collation, engine, tablespace or full-text parser name is now decoded when parsed, and written back as a single token when Vitess regenerates the statement
  • A quoted name is normalized.
  • Only known names stay bare.
  • COLLATE binary in an expression is quoted.
Vitess 스택에 추가

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

스택에 추가 →