セキュリティの脆弱性の修正
CVE / CVSSベーススコア
CVE-2021-2154 / 4.9
CVE-2021-2166 / 4.9
主な変更点
・新しい関数 ST_DISTANCE_SPHERE()は、球上の2つのジオメトリ(ポイントまたはマルチポイント)間の
球形距離を計算します。
・Galeraが25.3.3に更新されました
修正された問題
<データ損失が発生する可能性があるもの>
・ALTER TABLEは、InnoDBテーブルの列の名前変更に失敗し、サーバーをクラッシュさせます。
再起動後、InnoDBテーブルにアクセスできなくなります。
・外部キーを使用したInnoDBテーブルでのALTER後のテーブル破損 ER_NO_SUCH_TABLE_IN_ENGINE
またはER_CRASHED_ON_USAGE。
・MariaDB Enterprise Backupは、デバイスにスペースが残っていないというエラーの後、終了する前に、
現在のソースファイルを削除します。不完全なターゲットファイルのみが引き続き使用可能です。
<クラッシュまたはハングを引き起こす可能性があるもの>
・KILL CONNECTIONまたはKILL QUERYがMariaDB Enterprise Clusterとマルチマスターセットアップで
使用されるとハングする可能性があります。
・4096バイトを超える値を可変長フィールド(BLOB、TEXT、VARCHAR、および関連するタイプ)に
挿入すると、MariaDB Enterprise Clusterでメモリが破損する可能性があります。
・innodb_flush_method=O_DIRECTは圧縮テーブルで失敗します。
・userstatを有効にして関数を呼び出すと、check_grantでサーバーがクラッシュします。
・--default-character-setが設定されていて、かつ、--character-sets-dirが未定義の場合、
MariaDBクライアントがクラッシュします。
・テーブルを削除するとサーバーがクラッシュする可能性があります。テーブルごとにテーブルスペースを
使用している場合、および、削除時にテーブルスペースのサイズが増加した場合にのみ、見られます。
・仮想列に対するUPDATE、INSERT、REPLACEのエラーが発生した後、InnoDBおよび
インデックス付き仮想列でサーバーがハングする可能性があります。
・MariaDB Enterprise Clusterの競合解決の問題。
・FULLTEXT INDEXの中止によるインデックスカウントの不一致
・MariaDB Enterprise Clusterノードは、仮想列を含み、プライマリキーを持たないテーブルに行を
挿入するとクラッシュします。
・InnoDBが新しい仮想列に新しいインデックスを追加できず、同時接続が解放された仮想列にアクセスする
クエリを実行すると、サーバーがクラッシュします。
・ON式の相関関係を持つEXISTSサブクエリがクラッシュします。
・読み取り専用トランザクションのロールバック時に、row_undo_mod_clust_lowでサーバーが
クラッシュします。
・ストアドプロシージャが無効なマルチテーブルUPDATEステートメントを使用してビューを更新すると、
ストアドプロシージャの2回目の実行時にサーバーがクラッシュします。
・mysql.innodb_index_statsシステムテーブルまたはmysql.innodb_table_statsシステムテーブルに
回復されたトランザクションが存在し、DDLトランザクションがロールバックされる必要がある場合、
InnoDBの起動がハングします。
・InnoDBがFULLTEXT INDEXを含むテーブルからデータをフェッチしようとした時にサーバーが
クラッシュし、テーブルのテーブルスペースが破棄されました。
・WHERE条件が派生テーブルを参照すると、SHOW TABLESでサーバーがクラッシュします。
・仮想インデックス付き列が存在する場合、InnoDBパージでハングする可能性があります。
・DROP INDEXまたはCREATE INDEXの後、セカンダリインデックスの変更バッファエントリは
InnoDBの再起動時に失われます。
<予期しない動作を引き起こす可能性があるもの>
・CAST('0e1111111111' AS DECIMAL(38,0))は誤った結果を返します。
・プリペアドステートメントとして実行された時のSET STATEMENTの誤った動作。
・サブクエリに外部列を参照するON句を含むJOINが含まれている場合、クエリは
ER_BAD_FIELD_ERRORエラーを返します。
・共通テーブル式(CTE)にUNIONが含まれている場合、クエリはER_BAD_FIELD_ERRORエラーを
返します。
・MIN()またはMAX()の集約関数が使用され、集約された列にインデックスが付けられている場合、クエリは
誤った結果を返します。
・インクリメンタルブロックのネストされたループハッシュでの間違った結果(余分な行と間違った値)。
・複合インデックスを使用したブロックネストループハッシュ(BLNH)の最適化を使用してJOINが
評価されると、クエリが誤った結果を返します。
・サーバーは、mysqld_safeオプションを指定したmysqld_multiの使用を開始できません。
・MariaDB Enterprise Clusterの設定変更中に、重複キーが生成される場合があります。
・--log-binオプションがサーバーの起動時に値無しでコマンドラインで設定されると、
MariaDB Enterprise Backupを使用したMariaDB Enterprise Clusterの
状態スナップショット転送(SST)が失敗します。
・永続統計とRENAME TABLEまたはTRUNCATEの間の競合状態
・ANALYZE TABLEとSTATS_AUTO_RECALCの間の競合状態
・CHECK TABLEがInnoDBテーブルで実行されると、フィールド長に関する誤ったメッセージがエラーログに
書き込まれます。
・派生テーブルのSUM列が無効な値を返します。
・オプティマイザが不明なテーブルエイリアスを含むサブクエリの冗長部分を削除しても、エラーは
返されません。例えば、オプティマイザがIN()サブクエリから冗長なGROUP BY句を削除した場合、
冗長部分の不明なテーブルエイリアスは無視されます。
・フィールド"filter"のEXPLAINで示される選択性は、BIT列では正しくありません。
・ヒストグラム統計は、optimizer_use_condition_selectivity=3でも使用されます。
・EXPLAINは、type=indexでkey_lenの無意味な値を示します。
・サーバーの証明書とクライアントの証明書が同じCAによって署名されている場合、SSL接続は失敗します。
・ST_GeomFromGeoJSONの呼び出し時のエラーメッセージの関数名が間違っています。
・MariaDB Enterprise Backupは、大規模バックアップで-prepareに失敗します。
・バックアップユーザーのパスワードがMYSQL_PWD環境変数を介して設定されている場合、
MariaDB Enterprise Backupを使用したMariaDB Enterprise Clusterの
状態スナップショット転送(SST)は失敗します。
・--innodbオプションがサーバーの起動時にコマンドラインで設定されると、MariaDB Enterprise Backupを
使用したMariaDB Enterprise Clusterの状態スナップショット転送(SST)が失敗します。
・EXPLAIN EXTENDEDステートメントがプリペアドステートメントで実行されると、必要以上の警告が
返されます。
・ストアドプロシージャの複雑なクエリは、間違った結果を返します。
・AFTERが使用されている場合、ALTER TABLEはフィールドのデフォルト値を誤って確認します。
・ON式のサブクエリの名前解決が正しくありません。
・FLUSH LOGSが実行されると、InnoDBグループコミットとバイナリログローテーションの間の競合状態に
より、古いバイナリログファイルはInnoDBグループコミットが書き込まれる前に使われなくなります。
・MariaDB Enterprise Backupは、--backup中に無効なログブロックチェックサムを読み取ると、
警告ではなくエラーをログに記録します。
・マルチバージョン同時実行制御(MVCC)を使用してInnoDBインデックスが読み取られると、行が誤って
省略されます。
・仮想列のあるテーブルへのREPLACEが失敗した後、SELECTが中止されます。
・インデックスの不一致が発生すると、InnoDBはインデックスタイプのフェッチに失敗します。
・MariaDB Enterprise Clusterは、InnoDBモニター出力をサイレントに有効にし、wsrepスレーブスレッドが
ブルートフォース(BF)キルを実行しようとした時にそれを無効にすることはありませんが、
ロック待機時間が長いため失敗します。
・MariaDB EnterpriseBackupの場合、RENAME TABLEにより、"Ignoring data file ... with space ID xxxx,
since the redo log references ... with space ID xxxx."が発生します。
・レプリケーションハートビートバイナリログイベント(Heartbeat_log_event)は、現在の
バイナリログファイル内のログの位置を格納するために4バイトを使用します。そのため、
バイナリログファイルのサイズが4GBを超えるとログの位置がオーバーフローします。
・InnoDB空間インデックスは、大きなジオメトリフィールドを見逃します。
・前のステートメントのテーブルエイリアスは、後のコマンドに干渉します。
・strict_password_validationが有効になっている場合、MariaDB Enterprise Clusterは
SET PASSWORDステートメントの複製に失敗します。
<インストールまたはアップグレードに関連するもの>
・SLES 12およびSLES 15へのlibsepolの依存関係がありません。
・cache_sha2_password.soはDebianパッケージに含まれていません。
・マイナーバージョンアップグレードはサーバーの再起動を実行しません。
インターフェースの変更
・mariabackup --innodb-force-recoveryコマンドラインオプションが追加されました。
・mariadb_repo_setup --skip-check-installedコマンドラインオプションが追加されました。
・ST_DISTANCE_SPHERE関数が追加されました。
プラットフォーム
エンタープライズライフサイクルに合わせて、MariaDB Enterprise Server 10.2.38-12は
以下に対して提供されています。
・CentOS 7
・CentOS 8
・Debian 9
・Red Hat Enterprise Linux 7
・Red Hat Enterprise Linux 8
・SUSE Linux Enterprise Server 12
・SUSE Linux Enterprise Server 15
・Ubuntu 18.04
・Microsoft Windows
MariaDB Enterprise Server 10.2.38-12のリリースノート(MariaDB社ウェブサイト):
https://mariadb.com/docs/release-notes/mariadb-enterprise-server-10-2-38-12/
MariaDBプロダクト・サポート・サービス
MariaDBプロダクト・サポート・サービスは、MariaDBおよびその関連製品をご利用されているお客様へ、必要なソフトウェアや専門的なサポートなどを提供するサービスです。