RATATOSKRATATOSK
ログイン

Vitess

v23.0.8Storage & Data
2026年10月13日

ACTION 7CHECK 14OTHER 7

SQLインジェクションと認可に関する脆弱性を修正し、SQL の解釈、文字セット、解析、テーブル ACL、`VExplain` の実行条件を厳格化した保守リリースです。`sql_mode` や接続文字セットなどの設定によっては、運用環境の構成変更が必要になります。

要対応 (7)

  • securityグローバル SET 変数名処理修正

    グローバル SET 変数名を経由した SQL インジェクションを修正しました。GHSA-m282-7w35-g77m に対応しています。

    GHSA-m282-7w35-g77m

  • security日時リテラル処理修正

    DATE、TIME、TIMESTAMP リテラルを経由した SQL インジェクションを修正しました。GHSA-9248-hccp-qf8f に対応しています。

    GHSA-9248-hccp-qf8f

  • securitySET_VAR ヒントのセッション変数値処理修正

    SET_VAR ヒントに含まれるセッション変数値を経由した SQL インジェクションを修正しました。GHSA-9rx3-8pwm-c228 に対応しています。

    GHSA-9rx3-8pwm-c228

  • security末尾コメント内 SQL の解析と ACL チェック修正

    末尾コメントに隠された SQL が解析とテーブル ACL のチェックをすり抜ける問題を修正しました。GHSA-pfg5-ppc7-ff45 に対応しています。

    GHSA-pfg5-ppc7-ff45

  • security数値バインド変数の処理修正

    形式不正な数値バインド変数を経由した 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接続文字セットの許可範囲変更

    --db-charset を設定している場合に適用されます。

    --db-charset を含む MySQL 接続の文字セット設定で、sjis、cp932、gb18030、gbk、big5、ucs2、utf16、utf16le、utf32 が、文字セット名でも照合順序名でも受け付けられなくなりました。GHSA-c28j-qmfx-4gxp に対応しています。

  • securityVExplain の実行文とトランザクション制限

    VExplain を使用している場合に適用されます。

    対象のモードで VTAdmin が受け付けるのは、INTO、シーケンスの next-value、アドバイザリロック関数を含まない SELECT だけになりました。実行は読み取り専用トランザクションで行われ、常にロールバックされます。GHSA-c2r8-grjp-w8c2 に対応しています。

  • securityVStream の LastPK 値経由の SQL インジェクション修正

    VStream を実行している場合に適用されます。

    VStream の LastPK 値を経由した SQL インジェクションを修正しました。GHSA-73pp-99vw-h5g8 に対応しています。

    GHSA-73pp-99vw-h5g8

  • securityVStream フィルターの convert_tz() 引数処理修正

    VStream を実行している場合に適用されます。

    VStream フィルターの convert_tz() 引数を経由した SQL インジェクションを修正しました。GHSA-92cc-q2h6-m2vr に対応しています。

    GHSA-92cc-q2h6-m2vr

  • securityOnline DDL のテーブル名処理修正

    Online DDL を実行している場合に適用されます。

    Online DDL 文のテーブル名を経由した SQL インジェクションを修正しました。GHSA-8w3p-4xg5-rm9w に対応しています。

    GHSA-8w3p-4xg5-rm9w

  • securityクエリー注釈の caller ID 処理修正

    --queryserver-config-annotate-queries を設定している場合に適用されます。

    クエリー注釈の caller 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 割り当て semantics を実装し、すべての割り当てを検証するようになりました。

  • breakingIGNORE_SPACE と HIGH_NOT_PRECEDENCE の拒否

    sql_mode を設定している場合に適用されます。

    IGNORE_SPACE と HIGH_NOT_PRECEDENCE も拒否されるようになりました。

  • breakingsql_mode の不正値に対する MySQL 互換エラー

    sql_mode を設定している場合に適用されます。

    不明なモード名と無効な数値には、MySQL と同じエラーが返されます。通常の不正値には ER_WRONG_VALUE_FOR_VAR (1231)、MySQL 8.0 で削除されたモードのビットには ER_UNSUPPORTED_SQL_MODE (3899) が使われます。

  • breakingVTTablet の sql_mode 検証

    VTTablet を実行している場合に適用されます。

    VTTablet でも各エントリポイントで同じ検証を行い、同じエラーを返すようになりました。

  • breaking接続時の 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をスタックに追加

対応が必要なリリースが出たときに、週次メールでお知らせします。 今回のセキュリティパッチと破壊的変更も、その一例です。

スタックに追加 →