RATATOSKRATATOSK
ログイン

Vitess

v24.0.5Storage & Data
2026年10月13日

ACTION 5CHECK 10OTHER 15

SQLの解析、認可、接続処理に関する制約が強化されたメンテナンスリリースです。利用している設定や機能によっては、受け付けられなくなった値への対応や権限設定の見直しが必要です。

要対応 (5)

  • 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インジェクションを修正しました。GHSA-xf67-9r78-xv82 に対応しています。

    GHSA-xf67-9r78-xv82

  • breaking空の名前を持つSQL指定を拒否

    空の文字セット名、照合順序名、エンジン名、パーティション用テーブルスペース名を拒否します。対象は CHARACTER SET、COLLATE、ENGINE、TABLESPACE です。

影響確認 (10)

  • securityMySQL接続文字セットの受け付け範囲を制限

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

    --db-charset など、MySQL接続の文字セットを設定する箇所で、sjis、cp932、gb18030、gbk、big5、ucs2、utf16、utf16le、utf32 を受け付けなくなりました。GHSA-c28j-qmfx-4gxp に対応しています。

  • securityVExplain に execute アクションを要求

    VExplain を使用し、execute を設定していない場合に適用されます。

    対象のモードでは、VExplain リソースに新しい execute アクションが必要になりました。GHSA-c2r8-grjp-w8c8 に対応しています。

  • 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

  • security末尾コメントによるテーブルACLチェック回避を修正

    table ACL チェックを使用している場合に適用されます。

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

    GHSA-pfg5-ppc7-ff45

  • securityVTAdmin の状態変更APIに対するクロスサイト GET を修正

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

    クラスタ状態を変更する VTAdmin APIルートが、クロスサイトの GET リクエストを受け付けていた問題を修正しました。GHSA-3fr2-mqr5-r5x5 に対応しています。

    GHSA-3fr2-mqr5-r5x5

  • securityReloadSchemaShard のRBACチェックを修正

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

    VTAdmin の ReloadSchemaShard でRBACチェックが行われていなかった問題を修正しました。GHSA-78h7-x6qm-xpr8 に対応しています。

    GHSA-78h7-x6qm-xpr8

  • breakingIGNORE_SPACE と HIGH_NOT_PRECEDENCE の拒否

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

    sql_mode で IGNORE_SPACE と HIGH_NOT_PRECEDENCE も拒否されます。

その他の記録済み変更 15 件すべてsecurity fixes 2 · value changes 7 · constraints 2 · defaults 2 · fixes 2

security fixes (2)

  • A caller that is a reader, a writer and an admin in a table group covering every table ("table_names_or_prefixes": ["%"]) holds every role on any table such a statement could touch, so DO, REPAIR, OPTIMIZE and a partially parsed CREATE TABLE now run for it.
  • For those modes VTAdmin also accepts only a SELECT without INTO, sequence next-values or advisory lock functions

value changes (7)

  • Unknown mode names and invalid numeric values fail with MySQL's own errors: ER_WRONG_VALUE_FOR_VAR (1231), and ER_UNSUPPORTED_SQL_MODE (3899) for the bits of modes removed in MySQL 8.0.
  • 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
  • Only known names stay bare.
  • COLLATE binary in an expression is quoted.
  • COLLATE 'utf8_bin' regenerates as COLLATE utf8_bin

constraints (2)

  • Numeric values decode against MySQL's sql_mode bitmask.
  • ENCRYPTION requires a quoted value.

defaults (2)

  • Every MySQL connection Vitess creates now strips the modes that change how SQL text is interpreted from the session sql_mode it inherits from the server's global value.
  • The VExplain page in the web UI now defaults to PLAN.

fixes (2)

  • VTGate now implements MySQL 8.x's sql_mode assignment semantics and validates every assignment against them:
  • VTTablet applies the same validation at its own entry points and returns the same errors
Vitessをスタックに追加

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

スタックに追加 →