Pgpool-II 4.4.12 文書 | |||
---|---|---|---|
前のページ | 上に戻る | 付録 A. リリースノート | 次のページ |
リリース日: 2025-05-15
このリリースには、セキュリティ修正が含まれています。
Pgpool-IIのクライアント認証メカニズムには認証バイパスの脆弱性があります。 本来であれば認証が必要な場合でも、認証処理がスキップされてしまう可能性があります。 この脆弱性を悪用することで、攻撃者が任意のユーザとしてログインし、データベース内の情報を参照・改ざんしたり、データベースを停止させたりすることができる可能性があります。(CVE-2025-46801)
なお、本脆弱性の影響を受けるのは、下記のパターン1から3いずれかの条件を満たす場合に限られます。
パターン 1:次の条件をすべて満たす場合、本脆弱性の影響を受ける可能性があります。
pool_hba.confでpassword認証方式を使用している
allow_clear_text_frontend_auth = off
pool_passwdに対象ユーザのパスワードが設定されていない
pg_hba.confでscram-sha-256またはmd5認証方式を使用している
パターン 2:次の条件をすべて満たす場合、本脆弱性の影響を受ける可能性があります。
enable_pool_hba = off
pg_hba.confでpassword、pam、ldapのいずれかの認証方式を使用している
パターン 3:次の条件をすべて満たす場合、本脆弱性の影響を受ける可能性があります。
rawモードを使用している (backend_clustering_mode = 'raw')
pool_hba.confでmd5認証方式を使用している
allow_clear_text_frontend_auth = off
pool_passwdに対象ユーザのパスワードがテキストまたはAES形式で登録されている
pg_hba.confでpassword、pam、ldapのいずれかの認証方式を使用している
この脆弱性の影響を受けるのは、Pgpool-II 4.0系および4.1系のすべてのバージョン、4.2.0-4.2.21、4.3.0-4.3.14、4.4.0-4.4.11、4.5.0-4.5.6、4.6.0です。 Pgpool-II 4.6.1、4.5.7、4.4.12、4.3.15、4.2.22以降へのアップグレードを強くお勧めします。 それができない場合は、発生条件パターンに当てはまらない設定の組み合わせに変更してください。
設定ファイルにメジャーバージョンを追加しました。 (Bo Peng)
クエリキャッシュにおける、古くからあるバインド時のバグを修正しました。(Tatsuo Ishii)
名前付きステートメントを準備すると、バインド後にパースメッセージなしで実行することが可能です。 問題は、実行時またはCOMMIT時にクエリキャッシュを無効化するために必要なテーブルOIDが、パースメッセージ処理(Parse())でのみ収集されていたことです。 そのため、前回の実行後にパースなしでバインドを実行すると、テーブルOIDが収集されず、pgpoolはクエリキャッシュの無効化に失敗していました。 バインド時にもテーブルOIDを収集するよう修正しました。 006.memqcacheに回帰テストを追加しました。
この問題はEmond Achilleas Mantzios によって報告され、テストプログラムが提供されました。
ディスカッション: [pgpool-general: 9427] Clarification on query results cache visibility
クエリキャッシュの無効化に失敗する問題を修正しました。 (Tatsuo Ishii)
実行メッセージを受信すると、pgpoolは最大行数パラメータをチェックします。この値が0でない場合、pgpoolはpool_handle_query_cache()にクエリキャッシュを作成しないよう指示するために、"partial_fetch"フラグを設定します。 問題は、コミット2a99aa5d1が、INSERT/UPDATE/DELETEであっても実行メッセージパラメータが0以外(ほとんどの場合1)に設定され、pgpoolがSELECT以外の場合でもこのフラグを設定することを見落としていることです。 この結果、このフラグが true の場合、pool_handle_query_cache() 内の後続のコードでキャッシュの無効化がスキップされるため、クエリキャッシュの無効化に失敗していました。 フラグを設定する前にクエリが読み取り専用の SELECT であるかどうかを確認するように Execute() を修正しました。
この問題はEmond Achilleas Mantziosによって報告され、テストプログラムが提供されました。
ディスカッション: [pgpool-general: 9427] Clarification on query results cache visibility
OpenBSDへ移植する際の問題を修正しました。 (Tatsuo Ishii)
ディスカッション: [pgpool-hackers: 4582] Make pgpool build on OpenBSD
このパッチはMartijn van Durenによって作成されました。
json_writerが特殊文字を正確にエンコードできない問題を修正しました。(Bo Peng)
wd_authkeyが特殊文字を含んでいる状態でwatchdogを起動するとPgpool-IIがクラッシュしていました。
このパッチはMartijn van Durenによって作成され、Bo Pengによって微修正されました。
リロード時にpool_passwdを開くようにストリーミングレプリケーションチェックとヘルスチェックプロセスを修正しました。(Tatsuo Ishii)
ストリーミングレプリケーションチェックとヘルスチェックはリロード前にpool_passwdを開いていませんでした。 もしsr_check_passwordかhealth_check_passwordが空文字列の時は、pool_passwdからパスワードを得ます。 そのためこれらのプロセスはリロード時にpool_passwdの古いコンテンツを読み取ります。
connection_life_timeの説明を改善しました。(Tatsuo Ishii)
connection_life_timeが計算されるタイミングは、接続キャッシュを保持しているプロセスからクライアントが切断されたときであることを追記しました。
ディスカッション: [pgpool-hackers: 4577] Doc: enhance the description on connection_life_time
sr_check_userについての説明を改善しました。 (Tatsuo Ishii)
スーパーユーザーかpg_monitorグループであるべきです。