修正されたセキュリティ脆弱性
CVE | CVSS base score |
CVE-2024-21096 | 4.9 |
注目すべき変更点
- Galeraが26.4.18に更新されました
ストレージエンジンの変更
- このリリースには、MariaDB ColumnStoreエンジンのバージョン 5.6.8が組み込まれています。
修正された問題
データ損失が発生する可能性があるもの
- --gtid-ignore-duplicateを設定すると、最初のソースからトランザクションを適用する際に並列実行で再試行が必要な場合、別のレプリケーションソースからトランザクションが二重に適用される可能性があります。
- innodb_encrypt_tables=1のサーバーのバックアップは、mariadb-backup --prepareで破損する可能性がある
- '1970-01-01 00:00:00'のTIMESTAMP値は、strictモードでINSERT ...FROM ... SELECTを介して挿入できますが、エラーが発生するはずです。
- バージョン管理が使用されると、Galeraでレプリケートされたイベントに間違った時間が含まれる場合がある
- insert ... on duplicateとreplaceの対象行が間違っており、データが破損する
ハングまたはクラッシュを引き起こす可能性があるもの
- 現在のMariaDB Enterprise Backupを古いサーバーに対して使用すると、システム変数 @@aria_log_dir_pathが存在しないため、クラッシュが発生する可能性がある
- innodb_change_bufferingにデフォルト以外の設定を使用すると、サーバーがクラッシュする可能性がある
- 4Gを超える行が挿入または更新された全文検索クエリを実行すると、サーバーがクラッシュする可能性がある
- 暗号化されたテーブルスペースの場合、暗号化スレッドが同じテーブルスペースで動作しているときにALTER操作がハングする可能性がある
- A)が@@expensive_subquery_limit行未満を調べ、B)が結合バッファを使用するクエリプランを持つサブクエリを使用するEXPLAINステートメントは、クラッシュを引き起こす可能性があります。
- SPIDERテーブルの場合、テーブルからパーティションを削除すると、サーバーがクラッシュする可能性がある
- mariadb-binlogでバイナリログを再生する場合、バイナリログにSELECT NEXTVAL(s)などのシーケンスに関連するステートメントが含まれていると、ツールがクラッシュすることがある
- バックアップの準備手順で、TRX SYSページにwsrep xidの位置を格納するデータディレクトリに遭遇すると、MariaDB Enterprise Backupは次のエラーメッセージで失敗します:
InnoDB: Crash recovery is broken due to insufficient innodb_log_file_size
- ユーザーが認証中に強制終了されたDDLの空のトランザクションをコミットした時のアサーション:
!wsrep_has_changes(thd) || (thd->lex->sql_command == SQLCOM_CREATE_TABLE && !thd->is_current_stmt_binlog_format_row()) || thd->wsrep_cs().transaction().state() == wsrep::transaction::s_aborted
- SSLが使用される時、正常なノードのシャットダウンによってgarbdがクラッシュし、MariaDB Enterprise Clusterが非プライマリになることがある
予期しない動作を引き起こす可能性があるもの
- 外部エンジンにプッシュされたマージ可能な派生テーブルを使用したSELECTからのプリペアドステートメントの2回目の実行によって、間違った結果セットが返される
- (SELECT @var:=... ) as derived_tblなどの副作用のある構造を使用する派生テーブルを使用するクエリは、間違った結果を生成する可能性がありました
- ORDER BY COLLATEが非文字列に不適切に適用され、順序付けされていない結果セットが生成される
- Spider/ODBCが、ANSIスタイルで名前に二重引用符を渡しました
- デフォルトの文字セットがPHP MySQLi拡張機能で機能しない
- 文字セット変換時にGROUP_CONCATのSEPARATOR値が間違っていると、間違った結果になることがある
- Spiderは、on式を()に変換することにより、有効な左結合選択の解析エラーを返す
- 非SUPER/READ ONLY ADMINユーザーとしてInnoDBテーブルからCREATE TEMPORARY TABLE ... AS SELECT ...を使用して一時InnoDBテーブルを作成すると、テーブルが作成される代わりに次のエラーが表示されます:
ERROR 1290 (HY000): The MariaDB server is running with the --read-only option so it cannot execute this statement
- CREATE TEMPORARY TABLE (SELECTなし)、INSERT ... SELECT、および、CREATE ... LIKEは、このバグの影響を受けません
- JSON_ARRAYAGGで作成されたビューは不正なJSONオブジェクトを返す
- Mariadb-dumpはサーバーを信頼し、データを検証しません。変更されたダンプファイルには、mariadb-clientによって使用されるシステムコマンドが含まれる場合があります。ダンプはデフォルトでサンドボックスモードでロードされるようになり、システムコールでエラーが発生します。
- 大文字と小文字を区別しない大きな一意のキーを、値の大文字小文字を区別しない変更で更新すると、重複キーエラーが発生する可能性があります。
- binlog_annotate_row_events=1を設定すると、binlogファイルのイベントが切り捨てられる可能性があります。
- WHERE句にINサブクエリ述語があり、分割マテリアライズド最適化を適用できるFROM句に派生テーブルがあるクエリからのsemi-joinおよびsplit-table派生テーブルで間違った結果が発生します。
- Galeraで、システムテーブルにアクセスして読み取りし、同じトランザクションでInnoDBテーブルに書き込みを行うと、次のエラーが発生し、正しいトランザクションをコミットできませんでした:
Transactional commit not supported by involved engine
- マージされた派生テーブルを使用してビューから選択すると、プリペアドステートメントの2回目の実行で間違った結果が発生する可能性があります。
- proxy_protocolが使用されている場合、ネットワーク関連のエラーメッセージに元のIPが表示されない
- UPDATEで評価されるDEFAULT式が間違っている
- group byの最適化により、関数内にサブジェクトが埋め込まれているサブクエリが誤って削除される
パフォーマンスに関連するもの
- テーブルはALTER TABLE ADD COLUMNで再構築されますが、再構築を必要としない即時操作であるはずです。
- 集計関数が一意性プロパティを活用できない
- 通常、DISTINCT引数を使用して集計関数を計算する場合:aggregate_func(DISTINCT col1, col2, ...)には、重複のない引数セットを作成する必要があり、これはCPUを大量に消費する可能性があります。
- 1つのテーブルから選択する場合、引数リストにはテーブルのPRIMARY(またはUNIQUE)キーが含まれます:
SELECT aggregate_func(DISTINCT t1.primary_key, ...) FROM t1;
引数に重複がないことが保証されます。このようなケースが検出されるようになったため、オプティマイザーは重複の排除をスキップできるようになりました。
プラットフォーム
エンタープライズライフサイクルに合わせて、MariaDB Enterprise Server 10.5.25-19は次のプラットフォームに提供されます:
- AlmaLinux 8 (x86_64, ARM64)
- AlmaLinux 9 (x86_64, ARM64)
- CentOS 7 (x86_64)
- Debian 10 (x86_64)
- Debian 11 (x86_64, ARM64)
- Debian 12 (x86_64, ARM64)
- Microsoft Windows (x86_64)(MariaDB Enterprise Clusterは除く)
- Red Hat Enterprise Linux 7 (x86_64)
- Red Hat Enterprise Linux 8 (x86_64, ARM64)
- Red Hat Enterprise Linux 9 (x86_64, ARM64)
- Rocky Linux 8 (x86_64, ARM64)
- Rocky Linux 9 (x86_64, ARM64)
- SUSE Linux Enterprise Server 12 (x86_64)
- SUSE Linux Enterprise Server 15 (x86_64, ARM64)
- Ubuntu 20.04 (x86_64, ARM64)
MariaDB Enterprise Serverの一部のコンポーネントは、全てのプラットフォームをサポートしているわけではありません。
MariaDB Enterprise Server 10.5.25-19のリリースノート(MariaDB社ウェブサイト):
https://mariadb.com/docs/server/release-notes/mariadb-enterprise-server-10-5/10-5-25-19/
MariaDBプロダクト・サポート・サービス
MariaDBプロダクト・サポート・サービスは、MariaDBおよびその関連製品をご利用されているお客様へ、必要なソフトウェアや専門的なサポートなどを提供するサービスです。