本文へ移動

ニュース

pgBackRestプロジェクトの公式ニュース、リリース案内、保守に関する最新情報。

脆弱な暗号化サブキーとソルト

2026年10月4日

2.59.3より前のpgBackRestは、暗号化用のランダムデータを生成する際にエラーを確認していませんでした。OpenSSLがオペレーティングシステムからランダムデータを取得できない場合、メモリ内に既に存在するデータから暗号化サブキーとソルトが生成され、エラーは報告されませんでした。暗号化されていないリポジトリは影響を受けません。

このエラーが発生することはまれと考えられます。原因として、getrandom()システムコールをブロックするサンドボックスやseccompポリシー、無効なOpenSSL設定などが考えられます。

主に問題となるのは、archive.infoとbackup.info内のサブキーです。これらはstanza-createで一度だけ生成され、スタンザの存続期間を通して使用されるため、アップグレードしても脆弱なサブキーは置き換わりません。バックアップ用の脆弱なサブキーとソルトは、バックアップとWALの有効期限が切れるにつれて削除されます。

影響

WALのサブキーはarchive.infoに、マニフェストのサブキーはbackup.infoに保存されます。脆弱なサブキーはランダムなサブキーより推測しやすく、推測に成功すると、repo-cipher-passなしで、そのサブキーで暗号化されたファイルを復号できます。推測の容易さはメモリ内のデータに依存し、プラットフォームやビルドによって異なります。archive.infoのサブキーが脆弱だと、リポジトリ内のすべてのWALが漏えいの危険にさらされます。backup.infoのサブキーが脆弱だと、すべてのバックアップが漏えいの危険にさらされます。マニフェストはそのサブキーで暗号化され、各マニフェストには対応するバックアップのファイル用サブキーが保存されているためです。これにはアップグレード後に追加されたWALとバックアップも含まれます。

バックアップ内のファイル用サブキーは、完全バックアップごとに生成され、その完全バックアップに基づく差分バックアップと増分バックアップでも使用されます。バックアップ用サブキーが脆弱だと、これらのバックアップ内のファイルが漏えいの危険にさらされます。

脆弱なソルト自体がサブキーを露出させることはありません。同じサブキーとソルトで暗号化されたファイルは同じキーとIVを使用するため、それらのファイル内の同一データからは同一の暗号文が生成されます。ソルトは各ファイルの先頭に平文で保存され、脆弱なソルトには、それまでメモリに存在していたデータが最大8バイト含まれる可能性があります。

サブキーの確認

リポジトリにアクセスできるホストで、STANZAにスタンザ名を設定して以下を実行してください。最初のリポジトリ以外を確認するには、pgbackrestコマンドに--repoを追加してください。

STANZA=demo

for file in archive/$STANZA/archive.info backup/$STANZA/backup.info; do
    for key in $(pgbackrest --stanza=$STANZA repo-get $file | grep '^cipher-pass=' | grep -oE '[A-Za-z0-9+/]{64}'); do
        echo "$(printf '%s' $key | base64 -d | od -An -v -tx1 | tr -s ' ' '\n' | grep -c '^00$') $file"
    done
done

最初の列はサブキー内のゼロバイトの数です。ランダムなサブキーに6個以上のゼロバイトが含まれる確率は25,000,000分の1未満ですが、テストで見つかった脆弱なサブキーには13個以上含まれていました。ゼロバイトが6個以上含まれるサブキーは脆弱とみなすべきです。

OpenSSL 1.0

2.53より前のpgBackRestはOpenSSL 1.0でビルドできました。このバージョンでは、オペレーティングシステムからランダムデータを取得できないと、ランダムデータでシードを設定していない状態からランダムデータを生成します。この方法で生成された脆弱なサブキーは、上記の確認方法では検出できません。

対処方法

  • pgBackRest 2.59.3以降にアップグレードしてください。これらのバージョンは、ランダムデータを生成できない場合にエラーを報告します。
  • archive.infoまたはbackup.info内のサブキーが脆弱な場合は、新しいリポジトリにスタンザを作成し、古いリポジトリはそのバックアップが必要な間だけ保持してください。
  • 差分バックアップと増分バックアップは、その基となる完全バックアップのサブキーを使用するため、アップグレード後に新しい完全バックアップを作成することを検討してください。
  • バックアップ用の脆弱なサブキーとソルトは、アップグレード前のバックアップとWALの有効期限が切れるにつれて削除されます。保持期間が長いバックアップでは、有効期限が切れるまで残ります。

pgBackRest 2.59.3リリース

2026年10月4日

pgBackRestコミュニティは、pgBackRest 2.59.3のリリースをお知らせします。信頼性が高く使いやすいバックアップおよびリストアソリューションの最新版で、最大規模のデータベースやワークロードにもシームレスに対応できます。

pgBackRestは、バックアップとリカバリーの基盤を管理するための充実した機能を備えています。並列バックアップ/リストア、フル/差分/増分バックアップ、ブロック増分バックアップ、複数リポジトリ、差分リストア、並列非同期アーカイブ、マルウェア/ランサムウェア対策、ファイル単位のチェックサム、バックアップ時のページチェックサム検証(有効な場合)、複数の圧縮形式、暗号化、途中まで実行したバックアップや失敗したバックアップの再開、スタンバイからのバックアップ、テーブルスペースとリンク、S3/Azure/GCS/SFTP、バックアップの期限切れ処理、SSHまたはTLSによるローカル/リモート操作、柔軟な設定などに対応しています。

pgBackRestはPostgreSQL Yum Repository またはPostgreSQL APT Repository からインストールできます。他の多くのディストリビューション向けにもパッケージが提供されています。ソースコードはリリース からダウンロードできます。

バグ修正

  • 脆弱な暗号化サブキーやソルトが生成される可能性がある問題を修正 (j0uinim)
  • 暗号化された情報ファイルとマニフェストの読み込み時にチェックサムエラーが発生する可能性がある問題を修正 (j0uinim)

その他の修正と改善については、2.59.3リリースノート を参照してください。

重要な注意事項

  • 以前のバージョンでは、システムのランダムデータへのアクセス時にエラーが発生すると、脆弱な暗号化サブキーやソルトが生成される可能性がありました。詳細は脆弱な暗号化サブキーとソルト を参照してください。

スポンサー

このリリースは、AWS 、Supabase 、pgEdge 、Tiger Data 、Percona 、Eon 、Xata 、Dalibo 、Data Egret の寛大なスポンサー支援により実現しました。


pgBackRest 2.59.2リリース

2026年9月27日

pgBackRestコミュニティは、pgBackRest 2.59.2のリリースをお知らせします。信頼性が高く使いやすいバックアップおよびリストアソリューションの最新版で、最大規模のデータベースやワークロードにもシームレスに対応できます。

pgBackRestは、バックアップとリカバリーの基盤を管理するための充実した機能を備えています。並列バックアップ/リストア、フル/差分/増分バックアップ、ブロック増分バックアップ、複数リポジトリ、差分リストア、並列非同期アーカイブ、マルウェア/ランサムウェア対策、ファイル単位のチェックサム、バックアップ時のページチェックサム検証(有効な場合)、複数の圧縮形式、暗号化、途中まで実行したバックアップや失敗したバックアップの再開、スタンバイからのバックアップ、テーブルスペースとリンク、S3/Azure/GCS/SFTP、バックアップの期限切れ処理、SSHまたはTLSによるローカル/リモート操作、柔軟な設定などに対応しています。

pgBackRestはPostgreSQL Yum Repository またはPostgreSQL APT Repository からインストールできます。他の多くのディストリビューション向けにもパッケージが提供されています。ソースコードはリリース からダウンロードできます。

新機能と不具合修正

  • PostgreSQL 19beta4のサポート (David Steele)
  • バックアップ中にファイルがゼロサイズに切り詰められた場合の空のブロックマップの問題を修正 (David Steele)
  • ドライバーにフィルターが渡された場合の読み取り再試行を無効化 (David Steele)
  • S3バージョン一覧のページ分割を修正 (David Steele)
  • SAS認証用のAzureバージョンヘッダーを設定 (David Steele)
  • サイズがゼロのバックアップ履歴ファイルで非同期archive-pushが停止する問題を修正 (Andrew Kroh)
  • リモートの暗号化リポジトリに対するannotateコマンドを修正 (Douglas J Hunley)

その他の修正と改善については、2.59.2リリースノート を参照してください。

重要な注意事項

  • PostgreSQL 19beta4ではpg_controlとWALの形式が変更されたため、それ以前の19ベータ版のクラスターとWALはサポートされなくなりました。以前のベータ版を実行しているクラスターは、19beta4で再作成することを推奨します。

スポンサー

このリリースは、AWS 、Supabase 、pgEdge 、Tiger Data 、Percona 、Eon 、Xata 、Dalibo 、Data Egret の寛大なスポンサー支援により実現しました。


pgBackRest 2.59.1リリース

2026年8月17日

pgBackRestコミュニティは、pgBackRest 2.59.1のリリースをお知らせします。信頼性が高く使いやすいバックアップおよびリストアソリューションの最新版で、最大規模のデータベースやワークロードにもシームレスに対応できます。

pgBackRestは、バックアップとリカバリーの基盤を管理するための充実した機能を備えています。並列バックアップ/リストア、フル/差分/増分バックアップ、ブロック増分バックアップ、複数リポジトリ、差分リストア、並列非同期アーカイブ、マルウェア/ランサムウェア対策、ファイル単位のチェックサム、バックアップ時のページチェックサム検証(有効な場合)、複数の圧縮形式、暗号化、途中まで実行したバックアップや失敗したバックアップの再開、スタンバイからのバックアップ、テーブルスペースとリンク、S3/Azure/GCS/SFTP、バックアップの期限切れ処理、SSHまたはTLSによるローカル/リモート操作、柔軟な設定などに対応しています。

pgBackRestはPostgreSQL Yum Repository またはPostgreSQL APT Repository からインストールできます。他の多くのディストリビューション向けにもパッケージが提供されています。ソースコードはリリース からダウンロードできます。

新機能と不具合修正

  • PostgreSQL 19beta3のサポート (Lardière Sébastien)
  • チャンクバッファーが入力バッファーより小さい場合にハングする問題を修正 (David Steele)
  • 新しいバックアップラベルの比較対象を、そのラベルが属するフルバックアップセットのみに限定 (David Steele)
  • GitHubが生成するソースアーカイブにビルドに必要なファイルが含まれない問題を修正 (David Steele)

その他の修正と改善については、2.59.1リリースノート を参照してください。

重要な注意事項

  • PostgreSQL 19beta3ではWAL形式が変更されたため、それ以前のPostgreSQL 19ベータ版でアーカイブしたWALは読み取れなくなりました。以前のベータ版を実行しているクラスターは、19beta3で再作成することを推奨します。

スポンサー

このリリースは、AWS 、Supabase 、pgEdge 、Tiger Data 、Percona 、Eon 、Xata 、Dalibo 、Data Egret の寛大なスポンサー支援により実現しました。


新しい配布用tarアーカイブ

2026年7月20日

pgBackRest 2.59.0以降、各リリースにはソースからのビルドを簡単にする配布用tarアーカイブが含まれます。gitリポジトリのチェックアウトとは異なり、このtarアーカイブには生成済みのソースコードとレンダリング済みのドキュメントが同梱されています。このため、リポジトリのチェックアウトで必要になるコード生成やドキュメント用のツールなしで、pgBackRestをビルドしてインストールできます。

tarアーカイブには、生成済みコードを含むpgBackRestのソース、コマンドリファレンスのmanページ、HTMLドキュメント、ビルドを検証するスモークテストが含まれています。通常のpgBackRestライブラリだけを使用し、mesonとninjaでビルドできます。

tarアーカイブはpgbackrest-{version}.tar.gzという名前のアセットとして、対応する.sha256sumチェックサムとともに各リリースに添付されます。GitHubのリリース ページからダウンロードし、ビルドとテストの手順についてはtarアーカイブ内のREADME.mdを参照してください。

パッケージ作成者には、配布用tarアーカイブからビルドすることを推奨します。これにより、今後のリリースでコードとドキュメントの生成に必要になる追加のビルドツールを導入せずに済みます。


pgBackRest 2.59.0リリース

2026年7月20日

pgBackRestコミュニティは、pgBackRest 2.59.0のリリースをお知らせします。信頼性が高く使いやすいバックアップおよびリストアソリューションの最新版で、最大規模のデータベースやワークロードにもシームレスに対応できます。

pgBackRestは、バックアップとリカバリーの基盤を管理するための充実した機能を備えています。並列バックアップ/リストア、フル/差分/増分バックアップ、ブロック増分バックアップ、複数リポジトリ、差分リストア、並列非同期アーカイブ、マルウェア/ランサムウェア対策、ファイル単位のチェックサム、バックアップ時のページチェックサム検証(有効な場合)、複数の圧縮形式、暗号化、途中まで実行したバックアップや失敗したバックアップの再開、スタンバイからのバックアップ、テーブルスペースとリンク、S3/Azure/GCS/SFTP、バックアップの期限切れ処理、SSHまたはTLSによるローカル/リモート操作、柔軟な設定などに対応しています。

pgBackRestはPostgreSQL Yum Repository またはPostgreSQL APT Repository からインストールできます。他の多くのディストリビューション向けにもパッケージが提供されています。ソースコードはリリース からダウンロードできます。

主な新機能と改善

  • PostgreSQL 19のサポート (David Steele)
  • WALアーカイブを整理するarchive-expire-beforeオプションを追加 (Stefan Fercot)
  • S3 Outpostsのサポートを追加 (Shiva Kumar Ambigi)
  • S3のプロセス認証を追加 (David Steele)
  • マニフェストの作成を高速化するユーザー/グループキャッシュを追加 (Gunnar Lindholm)
  • サーバーがアイドル接続を切断した後にSFTPストレージへ再接続 (David Steele)
  • infoコマンドの出力にリポジトリごとのバックアップ進捗を追加 (Will Morland)
  • Azureストレージの一括削除を追加 (David Steele)
  • verifyコマンドにbackup.infoのチェックを追加 (Denis Garsh)
  • S3 STSエンドポイントを設定可能に変更 (Simon Gratton)
  • systemd notifyとの連携を追加 (Andrew Jackson)
  • allow-rootが有効でない限り、rootでの実行時にエラーを発生 (David Steele)
  • 最初のエラーで非同期archive-pushを終了 (David Steele)

その他の機能と改善については、2.59.0リリースノート を参照してください。

重要な注意事項

  • デフォルトでrootとして実行できるのはrestoreコマンドのみです。他のコマンドをrootとして実行するにはallow-rootを使用してください(ただし推奨されません)。
  • パッケージ作成を簡単にするため、生成済みのドキュメント、manページ、コードを含む新しい配布用tarアーカイブが各リリースに添付されます。詳細は新しい配布用tarアーカイブ を参照してください。
  • 新たにlibsystemdへの任意の依存関係が追加されました。

スポンサー

このリリースは、AWS 、Supabase 、pgEdge 、Tiger Data 、Percona 、Eon 、Xata 、Dalibo 、Data Egret の寛大なスポンサー支援により実現しました。


pgBackRestの開発を継続します!

2026年5月18日

pgBackRestの開発を継続できることをお知らせします!ここ数週間で複数のスポンサーが集まり、継続的な開発に資金を提供してくださることになりました。この支援により、プロジェクトは単一のスポンサーに依存しなくなり、pgBackRestが長期にわたって活動するための安定した基盤が得られます。

スポンサー各社に感謝します。

Amazon Web Services は、個人、企業、政府向けにクラウドコンピューティングリソースをオンデマンドで提供しています。コンピューティング能力、ストレージ、データベース、機械学習など200を超えるサービスを、利用した分だけ支払って使えます。利用者とともに成長することを目指し、共通のコミュニティに投資しています。

Supabase は、PostgreSQLを基盤とする包括的なバックエンドプラットフォームです。開発者はインフラを管理することなく、アプリケーションを迅速に構築、拡張できます。Postgresデータベース、ユーザー認証、リアルタイムサブスクリプション、ファイルストレージ、エッジ関数、サーバーレス関数を備え、活発なオープンソースコミュニティが支えています。

pgEdge は、AIや高可用性などに対応したエンタープライズ向けのオープンソースPostgresプラットフォームです。エージェント型AI向けのネイティブツールとDBAワークベンチ、監視とインシデント対応、柔軟なデプロイ、無停止の保守を提供します。クラウド、オンプレミス、エアギャップ環境で、単一ノードからアクティブ/アクティブのマルチマスター構成まで拡張できます。

TimescaleDBの開発元であるTiger Data は、PostgreSQLを基盤とするオープンソースの時系列データベースを開発し、時系列、分析、AIワークロード向けのマネージドプラットフォームTiger Cloudを運営しています。自己管理型とクラウドのいずれでも、組織はエッジから集中型クラウドまで、時系列データを大規模に収集、保存、分析できます。

Percona は、オープンソースのデータベースソフトウェア、サポート、サービスを提供する企業です。組織がデータ基盤を完全に管理し続けられるよう支援することに注力しています。無償で利用できるオープンソースソフトウェア、24/7の専門サポート、実践的なデータベースの専門知識を通じて、企業がMySQL、PostgreSQL、MongoDB、Valkey、Redisを安全かつ効率的に運用できるよう支援しています。

Eon.io は、バックアップ、リカバリー、データ管理のためのインテリジェントなクラウド基盤です。チームがバックアップをより効率的に保存、参照し、分析やAIのワークフローでデータを利用できるようにします。あらゆるクラウドのPostgresやデータ集約型ワークロードに対して、高速できめ細かなリカバリーとストレージコストの大幅な削減を実現します。誤操作によるデータ損失やAIエージェントによる不具合からの復旧にも対応しています。

これらの組織は、自社製品と顧客に信頼できる災害復旧機能を提供するためにpgBackRestを利用しています。各社の投資は、PostgreSQLエコシステムでpgBackRestが果たす重要な役割を示しており、各社が協力して支援することで、プロジェクトの長期的な継続が可能になります。

開発に戻るのが楽しみです。準備中の機能や最適化があり、今後のリリースでお届けできることを心待ちにしています。これを可能にしてくださったスポンサーの皆様、そしてこの移行期間に辛抱強く支えてくださったコミュニティの皆様に感謝します。


保守に関する続報

2026年5月4日

pgBackRestの保守を終了すると発表した後、受信箱には大量のメールが届きました。整理にはしばらくかかりましたが、その多くは、長年の取り組みに対する応援や感謝の言葉でした。

ただ、すぐに共通の声が見えてきました。多くのpgBackRestユーザー、とりわけ自分たちのpgBackRestユーザーをサポートする立場の方々は、私が主なメンテナーとしてプロジェクトを続けることを望んでいるようです。私もそれを何より望んでいますが、数か月にわたる資金調達活動の末、実現は難しいと判断したばかりでした。

状況は変わり、プロジェクトを継続するのに十分な資金を確保できることがほぼ確実になったようです。今回は複数のスポンサーが共同でpgBackRestに資金を提供するため、1社の買収がプロジェクトの作業継続を左右することはなくなります。また、もう1人のメンテナーを迎え、作業を分担するとともに、将来にわたる継続性を確保できる見込みです。

この発表が衝撃を与え、多くの不確実性を生んだことは承知しています。もうしばらくお待ちください。現在のpgBackRestは動作しており、未解決の重大な不具合やセキュリティ問題はないため、直ちにプロジェクトをフォークする必要はありません。

週末までには、より確定的な発表ができると考えています。それまで少しお待ちください。pgBackRestの再始動に向けて積極的に取り組んでいます。


pgBackRestの保守終了について

2026年4月27日

要点:pgBackRestの保守を終了します。pgBackRestをフォークする場合は、プロジェクトに新しい名前を付けてください。

熟考の末、pgBackRestの開発をやめることにしました。軽い気持ちで決めたわけではありません。pgBackRestは過去13年間、情熱を注いできたプロジェクトです。幸い、その多くの期間に企業からのスポンサー支援を受けられましたが、多くの貢献者に助けられながら現在のpgBackRestを築くために、深夜や週末を費やすことも少なくありませんでした。オープンソース開発者なら誰もが、私の言う意味や、特別なプロジェクトに人生のどれほど多くを捧げることになるかをよくご存じでしょう。

Crunchy Dataの売却以降、pgBackRestを保守しながら、この仕事を続けられる職を探してきましたが、これまでのところ見つかっていません。同様に、スポンサー獲得の取り組みも、プロジェクトを継続するために必要な水準には大きく届いていません。

他の人と同じように、私も生計を立てる必要がありますが、pgBackRest関連の仕事は非常に限られています。今後はより幅広い仕事を検討できますが、それらに就くとpgBackRestに取り組む時間はなくなります。保守、不具合修正、PRレビュー、issueへの回答などだけでも相当の時間が必要です。そこには、私が最も好きな新機能の開発時間すら含まれていません。不十分な、あるいは散発的な作業を続けるより、明確に区切りを付けるほうがよいと考えています。

いずれpgBackRestはフォークされると思います。ただ、それは新しいメンテナーによる新しいプロジェクトとなり、私たちと同じように信頼を築いていく必要があります。

最後に、長年にわたりpgBackRestに貢献してくださった皆様に、改めて感謝します。皆様と一緒に取り組めたことは喜びでした!