PostgreSQLとは?サポートが切れる日は、もう決まっています
世界で広く使われているオープンソースのデータベース。5年というサポート期間、公式が公開している脆弱性70件の中身、そして最低限やっておく設定まで。公式のバージョン方針とセキュリティ情報を実際に数えてまとめました。
30秒でわかる「PostgreSQL」
- 広く使われているオープンソースのデータベース管理システム。無料で、商用でも使えます
- サポートは5年。終わる日は最初から公表されていて、14は2026年11月12日に終わります
- 修正は最低3か月に1回のマイナーリリースで出ます。当てなければ、公表済みの穴が残ります
- 公式が公開している脆弱性は70件(サポート中の版)。50件はログインできる状態が前提です
- 今日やること:自社のPostgreSQLのバージョンを1つ確認する
この記事の地図(全8章)
この辞典では、これまで「データベース」という語そのものを扱ってきました。今回は、その中でも実際によく使われている製品を1つ取り上げます。製品名を項目にするのは、この辞典では初めてです。取り上げる理由は、PostgreSQLがサポート期限も脆弱性の一覧も、すべて公表しているからです。つまり、自分で確かめられます。
先に結論を書きます。PostgreSQLで問題になるのは、たいてい製品の欠陥ではなく、置き方と権限と、更新していないことです。この記事は、公式が公開している数字だけを使って、その3つを確かめます。
この記事は2026年8月22日時点の内容です。バージョンとサポート期限はPostgreSQL公式の『Versioning Policy』、脆弱性の件数と内訳は公式の『Security Information』のページを実際に取得して数えたもの、認証方式の説明は公式ドキュメント第20章から引用しています。
数字は動きます。脆弱性は追加され、サポート期限は日付が過ぎていきます。この記事の数値は上記の日付時点のもので、最新の状態は公式ページでご確認ください。
PostgreSQLとは(やさしい定義)
数字の読み方と、終わる日の決まり方
オープンソースのデータベース管理システム。データそのものではなく、データを預かって出し入れするソフトのほうを指します。無料で使え、商用利用も可能です。
まず、バージョン番号の読み方とサポートの決まりです。ここを知っておくと、見積書や運用の会話が通じるようになります。
| 決まり | 内容 | 運用でどうなるか |
|---|---|---|
| メジャーバージョン | 新機能を含む新しい版が、およそ年に1回リリースされる | 上げるときはデータの移行作業が要る |
| マイナーリリース | 不具合修正と、必要な場合はセキュリティ修正を最低でも3か月に1回出す | 当てないと、公表済みの穴が残ったままになる |
| 緊急のリリース | 重大な不具合やセキュリティ修正が定期の予定を待てないと判断された場合、予定外に出すことがある | 予定に無いリリースが来ることがある |
| サポート期間 | メジャーバージョンは最初のリリースから5年間。その後、最後のマイナー版を出してサポート終了になる | 終わる日は最初から分かっている |
出典:PostgreSQL『Versioning Policy』(2026年8月22日に確認)。「最低でも3か月に1回」という頻度は、脆弱性が定期的に見つかることを前提にした設計です。止めたまま何年も動かす使い方は、そもそも想定されていません。
そして、いま動いているバージョンがいつまで使えるのかは、表になって公開されています。
| メジャー版 | サポート | 最初のリリース | サポート終了日 |
|---|---|---|---|
| 18 | あり | 2025年9月25日 | 2030年11月14日 |
| 17 | あり | 2024年9月26日 | 2029年11月8日 |
| 16 | あり | 2023年9月14日 | 2028年11月9日 |
| 15 | あり | 2022年10月13日 | 2027年11月11日 |
| 14 | あり | 2021年9月30日 | 2026年11月12日 |
| 13 | 終了済み | 2020年9月24日 | 2025年11月13日 |
| 12 | 終了済み | 2019年10月3日 | 2024年11月21日 |
| 11 | 終了済み | 2018年10月18日 | 2023年11月9日 |
出典:同上。最新のマイナー版は2026年8月13日にリリースされた 18.6/17.11/16.15/15.19/14.24 です。この記事の作成時点で、14のサポート終了まで3か月を切っています。13はすでに2025年11月に終わっています。
第1章 おわり — 次は第2章
なぜ今これが問題なのか
脆弱性は隠されていません。数えられます
PostgreSQLプロジェクトは、脆弱性の情報を1ページにまとめて公開しています。そこには、どのメジャー版に存在するか、どのマイナー版で直ったか、悪用に有効なログインが必要か、CVSSのスコアはいくつか、まで載っています。実際に数えると、こうなりました。
| 数えた項目 | 結果 |
|---|---|
| サポート中の版に関する脆弱性の件数 | 70件 |
| 本体(core server)にあるもの | 50件 |
| クライアント側にあるもの | 10件 |
| 追加モジュール(contrib)にあるもの | 10件 |
| CVSS v3 の最大値 | 8.8 |
| CVSS v3 の平均 | 6.6 |
| CVSS 7.0以上のもの | 40件 |
出典:PostgreSQL『Security Information』の一覧を2026年8月22日に取得し、筆者が集計した実数です。この一覧は「サポート中のバージョン」で絞られた表示なので、過去に修正済みでサポート終了版にしか残っていないものは含まれていません。CVSSの読み方はCVSSの記事で扱っています。
件数より大事なのが、次の内訳です。攻撃するのに、どれだけの権限が要るかで分けました。
| 必要な権限 | 件数 | これが意味すること |
|---|---|---|
| 権限は不要 | 20件 | ネットワークから届けば成立しうる。外に出していないことが効きます |
| 低い権限が必要 | 43件 | 何らかのアカウントでログインできることが前提 |
| 高い権限が必要 | 7件 | すでに強い権限を持っている状態が前提 |
同じ一覧のCVSSベクタ(PR=Privileges Required)を集計しました。70件のうち50件は、攻撃者が何らかのアカウントでログインできることが前提です。裏を返せば、残る20件はネットワークから到達できるだけで条件が揃います。だから「外に出さない」と「権限を絞る」は、どちらか片方では足りません。
もうひとつ、この一覧の性格を知っておくと役に立ちます。PostgreSQLプロジェクトはCVE番号を自分で採番できる機関(CNA)で、Red Hatをルートとして運用されています。脆弱性を見つけて報告すると、プロジェクト側でCVEを登録し、リリースノートに報告者を記載する仕組みです。
関連する話
CVE番号を誰が付けているのかという仕組みはCVEとは?脆弱性情報の99%を支える仕組みにまとめています。日本ではJPCERT/CCが国内初のCNAとして認定されていますが、PostgreSQLのように、製品を作っている側が自ら採番機関になっている例もあります。
脆弱性が無くなるからではありません。修正が出なくなり、公開の対象からも外れるからです。サポート終了後に見つかった問題は、そのバージョンでは直りません。
14を使っているなら、期限は2026年11月12日です。13を使っているなら、すでに2025年11月13日に終わっています。移行には計画と検証の時間が要るので、期限の当日に慌てても間に合いません。
第2章 おわり — 次は第3章
実際にどこから狙われるか
製品の欠陥より、置き方と権限のほうが多いです
個人情報保護委員会は令和7年度の年次報告で、不正アクセスによる漏えいの原因として、脆弱性の放置、推測されやすいID・パスワード、そして設定ミスによりデータベースへのアクセス制御が不適切な状態になっていたことを挙げています。PostgreSQLに引き直すと、入口は4つに分かれます。
| 入口 | 何が起きているか | 効く対策 |
|---|---|---|
| そもそも外から届く | インターネット側から接続できる状態で置かれている | 待ち受けるアドレスを絞る。接続元を限定する |
| 認証が緩い | 誰でも名乗った通りのユーザーとして入れる設定になっている、または弱いパスワード | 認証方式を見直す。初期設定のまま公開しない |
| 権限が広すぎる | アプリが強い権限のアカウントで接続している | 読み取りだけでよい接続は、読み取りだけの権限にする |
| 更新していない | 3か月ごとのマイナー更新を当てていない、またはサポート切れの版で動いている | 更新の予定を決める。サポート期限から逆算する |
上の3つは設定の話で、いちばん下だけが製品の更新の話です。この辞典のデータベースの記事で扱った5段階のうち、1段目と2段目に相当します。ここで止められれば、その先には進まれません。
2つ目の「認証が緩い」について、公式ドキュメントがはっきり書いています。trustという認証方式の説明です。
trust認証が指定されると、PostgreSQLは、サーバに接続できる者は誰でも、指定したどのデータベースユーザー名でも(スーパーユーザー名であっても)そのデータベースにアクセスする権限があるとみなします。
出典:PostgreSQL 18 公式ドキュメント 20.4 Trust Authentication(訳は筆者)同じ節には、使ってよい場面の限界も書かれています。
trust認証がTCP/IP接続に適しているのは、その設定で接続を許可されるすべてのマシンのすべての利用者を信頼している場合だけです。localhost(127.0.0.1)以外のTCP/IP接続にtrustを使うことが妥当である場面は、めったにありません。
出典:同上(訳は筆者)つまりtrustは、1人で使う作業用パソコンでは便利で適切、それ以外ではほぼ不適切という位置づけです。検証環境で設定して、そのまま本番に持っていく形が事故になります。
3つ目の「権限が広すぎる」については、もっと踏み込んだ前提があります。PostgreSQLのセキュリティチームは、脆弱性として扱う範囲をこう定めています。
| 報告の内容 | 脆弱性として扱うか |
|---|---|
| 権限のないデータや権限へのアクセスを可能にする問題 | 扱う |
| PostgreSQLのプロセスを通じて任意のコードを実行できる問題 | 扱う |
| 権限のない利用者がスーパーユーザーに昇格できる問題 | 扱う |
| スーパーユーザーが行う操作 | 扱わない |
| 認証済みの利用者が、正当なSQL文でサーバを停止させられること | 通常は扱わない(不具合ではありうる) |
出典:PostgreSQL『Security Information』「What is a Security Vulnerability in PostgreSQL?」。なお同プロジェクトは報奨金制度(バグバウンティ)を設けていないと明記しています。
これは手抜きではなく、設計上の前提です。スーパーユーザーは何でもできる存在として作られているので、そこから何ができたとしても不具合ではない、ということです。
問題は、この前提と現場のつなぎ方です。アプリがスーパーユーザーで接続していると、SQLインジェクションが1つ通っただけで、設計上「何でもできる」状態が攻撃者の手に渡ります。IPAが『安全なウェブサイトの作り方』でデータベースアカウントに適切な権限を与えるよう求めているのは、この距離を縮めないためです。
もっと詳しく
入力欄から命令文を差し込まれる攻撃そのものはSQLインジェクションとは?仕組み・例・対策を初心者向けに完全解説に、弱点を網羅的に調べる作業は脆弱性診断とは?種類・診断項目と結果の見方にまとめています。
第3章 おわり — 次は第4章
よくある誤解と、間違えやすい似た用語
製品を選び直しても、置き方は変わりません
まず、まわりの名前を整理します。どれも「データベースを預かるソフト」ですが、想定している使い方が違います。
| 名前 | 何か | 置かれ方 |
|---|---|---|
| データベース | 検索できるように体系的に整理された情報のまとまり。法律にも定義があります | 中身のほう |
| PostgreSQL | データベースを預かって出し入れするオープンソースのソフト | サーバとして動かす |
| MySQL | 同じくデータベースを預かるソフト。開発元と使われ方が違います | サーバとして動かす |
| SQLite | サーバを立てず、1つのファイルとして扱えるソフト | アプリの中に組み込む |
| SQL | データベースへの命令文を書くための言語 | 製品ではありません |
SQLiteは端末の中に置かれることが多く、デジタルフォレンジックではアプリの利用痕跡を残すファイルとしてよく登場します。同じ「データベース」でも、守り方も調べ方も変わります。
誤解も並べておきます。
| よくある誤解 | 実際はどうか |
|---|---|
| オープンソースだからセキュリティが弱い | 逆に、脆弱性の一覧もサポート期限も全部公開されています。確認できることは弱点ではありません |
| 脆弱性が70件もあるなら危ない製品だ | 件数は公開の姿勢を表すもので、危険度ではありません。50件はログインできることが前提で、権限管理が効きます |
| 社内ネットワークにあるから外から届かない | 届く経路は増えます。クラウド、VPN、委託先、踏み台。届かない前提は毎年確かめ直すものです |
| 製品を別のものに替えれば安全になる | 第3章の入口4つのうち3つは置き方と権限の話で、製品を替えても同じ形で残ります |
1つ目について補足します。この記事が数字を書けているのは、PostgreSQLが件数もCVSSも必要な権限も公開しているからです。公開していない製品について同じ表は作れません。比べられないことと、安全であることは違います。
これは実際にあります。メジャーバージョンの更新はデータの入れ替え作業を伴うため、検証が要ります。だから先送りされ、気づくとサポートが切れています。
ただしマイナーリリースの適用は事情が違います。公式は「常に最新のマイナー版を使うことを推奨」としており、セキュリティ修正はここで配られます。メジャーの計画とは切り離して、マイナーだけ先に運用に乗せるのが現実的です。
第4章 おわり — 次は第5章
個人:手元のPostgreSQLを外に出さない
学習用に入れたものが、いちばん危ないことがあります
個人でPostgreSQLを触るのは、たいてい学習か個人開発です。事故が起きるのは、練習のつもりで作った環境をそのまま外に置いたときです。やることは3つだけです。
| やること | なぜ効くのか | 確かめ方 |
|---|---|---|
| 外から接続できないことを確かめる | 第2章の「権限不要の20件」は、届かなければ関係なくなります | 自宅の回線の外から、実際に接続を試してみる |
| 初期設定のパスワードと認証方式を変える | trustのまま公開すると、名乗った通りの利用者として入れます | 手順書をなぞって作った環境ほど、初期設定が残っています |
| 本物の個人情報をテストに使わない | 練習環境は守りが薄いので、置いたものはそのまま出ます | 作ったデータの出どころを思い出す |
3つ目は個人だけの話ではありません。企業でも、テスト環境に本番のデータを置いていた、という形の漏えいは繰り返し起きています。脆弱性診断の点検項目にも同じ項目があります。
関連する話
そもそも自分のデータがどこに入っているのかという話はデータベースとは?漏えい1万7139件と4つの侵入口に、外から見えている資産を洗い出す作業はASM/EASMとは?見つけたあとは、ツールの仕事ではありませんにまとめています。
第5章 おわり — 次は第6章
会社・組織でやる設定7項目
上から順に、効き目が大きい順です
細かい設定項目は数えきれないほどありますが、被害の大きさを決めるものは限られています。上の3つができていれば、第3章の入口のうち3つが閉まります。
| 項目 | やること | 放置すると |
|---|---|---|
| 1 待ち受ける範囲を絞る | インターネット側から接続できる状態になっていないか、外から実際に確かめる | 権限不要の脆弱性が、そのまま条件を満たす |
| 2 接続元と認証方式を見直す | どこから、どの利用者が、どの方式で入れるかを一覧にする。localhost以外のtrustを残さない | 名乗った通りの利用者として入られる |
| 3 アプリの接続を最小権限にする | 読み取りだけでよい処理は、読み取りだけの権限に分ける。スーパーユーザーで接続しない | SQLインジェクション1つで、できることが最大化する |
| 4 マイナー更新の予定を持つ | 3か月ごとのリリースに合わせて、適用の窓を先に確保する | 公表済みの穴が、公表されたまま残る |
| 5 サポート期限から逆算する | いま使っている版の終了日を控え、移行の検証期間を差し引いて着手日を決める | 期限当日に、動かせないシステムだけが残る |
| 6 通信を暗号化する | アプリとサーバの間の通信を暗号化する | 経路上で中身が読まれうる |
| 7 誰が何をしたかの記録を残す | 接続と操作の記録を取り、保存期間を決める | 事故のあと、何件出たかを答えられない |
3番目は、この記事でいちばん強調したい項目です。PostgreSQLはスーパーユーザーの操作を脆弱性として扱いません。それは裏返せば、スーパーユーザーの権限を渡した時点で、製品側の防御はもう期待できないということです。7番目はログ管理の話につながります。
4番目の運用は、あらかじめ性質を知っておくと計画が立てやすくなります。
| 観点 | マイナー更新 | メジャー更新 |
|---|---|---|
| 頻度 | 最低3か月に1回 | およそ年1回 |
| 含まれるもの | 不具合修正と、必要な場合のセキュリティ修正 | 新機能。それ以前のセキュリティ修正はすべて含まれます |
| データの扱い | 入れ替えは不要 | データの移し替えが必要 |
| 止まる時間 | 短い | 計画と検証が要る |
| 先送りしたときの重さ | 穴が残るが、当てれば戻せる | 期限が来ると選択肢が減る |
出典:PostgreSQL『Versioning Policy』および『Security Information』。「常に入手可能な最新のマイナー版を使うことを推奨する」と公式が明記しています。メジャー更新の議論が止まっていても、マイナーだけは進められます。
1番:外から自社のデータベースに接続できないか、社外の回線から実際に試す。設定ファイルを読むより確実です。届いてしまったら、その場で最優先の課題が1つ決まります。
5番:使っている版の終了日を調べて、カレンダーに入れる。PostgreSQLの終了日は5年前から公表されています。知らなかった、という理由で期限を過ぎることだけは避けられます。
第6章 おわり — 次は第7章
サポート切れ・脆弱性公表:最初の10分
影響するかどうかを、先に切り分けます
新しい脆弱性が公表された、あるいは使っている版のサポート終了が近い。どちらの場合も、まず自社に当てはまるかどうかを確かめます。全部を調べる前に、条件で絞ります。
| 時間 | やること | やってはいけないこと |
|---|---|---|
| 0〜3分 | 動いているPostgreSQLのメジャー版とマイナー版を、実物から確認する | 構成管理表の記載を信じる。ずれていることがあります |
| 3〜5分 | 公式の一覧で、その版が影響を受けるか、どのマイナー版で直るかを見る | ニュース記事の見出しだけで判断する |
| 5〜8分 | 必要な権限(権限不要か、ログインが要るか)を確認し、外部から到達できるかと突き合わせる | CVSSの数値だけで優先順位を決める |
| 8〜10分 | すぐ当てられないなら、到達経路を一時的に絞る手当てを決める | 次の定期メンテナンスまで何もしないと決める |
3行目が実務では効きます。同じCVSSでも、権限不要のものが外向きのサーバにあれば最優先、ログインが要るものが社内限定のサーバにあれば順位は下がります。公式の一覧には、この判断に必要な情報が最初から載っています。
サポート終了が近い場合は、判断がもう少し単純です。期限は動きません。動かせるのは着手日だけなので、検証にかかる期間を見積もって逆算します。移行の作業自体は、公式が用意している手順に沿って行います。
確かめる先
- PostgreSQL『Versioning Policy』(サポート中の版と終了日の一覧)
- PostgreSQL『Security Information』(脆弱性の一覧。影響する版、直る版、必要な権限、CVSSが載っています)
- JVN/JVN iPedia(日本語で脆弱性を確認する。IPAとJPCERT/CCが共同運営)
- 使っているディストリビューションやクラウド事業者の告知(配布側で修正版の提供時期が異なります)
- IPA サイバーセキュリティ相談窓口(企業組織向け)
第7章 おわり — 次は第8章
関連用語と、次に読む記事
中身・番号・調べ方・記録
この用語とセットで覚えると理解が早くなる語です。
| こんな人に | 次に読む記事 |
|---|---|
| そもそも何を守っているのか整理したい | データベースとは?漏えい1万7139件と4つの侵入口 |
| 脆弱性の番号の仕組みを知りたい | CVEとは?脆弱性情報の99%を支える仕組み |
| 深刻度の読み方を知りたい | CVSSとは?「深刻度9.8」の読み方と、2026年に変わった前提 |
| 自社の弱点を調べてもらいたい | 脆弱性診断とは?種類・診断項目と結果の見方 |
| 入力欄からの攻撃を詳しく知りたい | SQLインジェクションとは?仕組み・例・対策を初心者向けに完全解説 |
第8章 おわり — 最後にFAQ
PostgreSQLについてよく聞かれること
実際に検索されている疑問から
PostgreSQLのサポートはいつまでですか?
メジャーバージョンごとに、最初のリリースから5年間と決まっており、終了日は公表されています。2026年8月22日時点でサポート中なのは18・17・16・15・14で、14は2026年11月12日、15は2027年11月11日に終わります。13はすでに2025年11月13日に終了しています。終了後は修正が出なくなるため、期限から逆算して移行の計画を立てる必要があります。
脆弱性が70件もあると聞きましたが、危ない製品なのですか?
件数は危険度ではなく、公開の姿勢を表しています。PostgreSQLは影響する版、直るマイナー版、必要な権限、CVSSまで1ページで公開しているため、外部の人間が数えられます。内訳を見ると、70件のうち50件は攻撃者が何らかのアカウントでログインできることが前提で、残る20件が権限不要です。つまり「外に出さない」ことと「権限を絞る」ことの両方が効きます。公開していない製品について、同じ表は作れません。
アプリからスーパーユーザーで接続してはいけないのですか?
避けてください。PostgreSQLのセキュリティチームはスーパーユーザーが行う操作を脆弱性として扱わないと明記しています。これは手抜きではなく、スーパーユーザーが何でもできる存在として設計されているためです。裏を返せば、アプリがスーパーユーザーで接続していると、SQLインジェクションが1つ通っただけで、設計上「何でもできる」状態が攻撃者に渡ります。IPAも『安全なウェブサイトの作り方』で、データベースアカウントに適切な権限を与えるよう求めています。
MySQLに替えれば安全になりますか?
入口の性質は変わりません。この記事で挙げた4つの入口のうち、外から届く状態で置かれている、認証が緩い、権限が広すぎる、という3つは製品を替えても同じ形で残ります。変わるのは4つ目の更新の運用(リリース周期とサポート期間)だけです。製品の乗り換えを検討するなら、機能や運用体制で選び、セキュリティは置き方と権限で決まると考えたほうが実態に合います。
出典・参考
- PostgreSQL『Versioning Policy』(サポート期間とバージョン一覧)https://www.postgresql.org/support/versioning/
- PostgreSQL『Security Information』(脆弱性の一覧、報告方針、CNAとしての運用)https://www.postgresql.org/support/security/
- PostgreSQL 18 公式ドキュメント 20.4「Trust Authentication」https://www.postgresql.org/docs/current/auth-trust.html
- 個人情報保護委員会『令和7年度 個人情報保護委員会 年次報告』(令和8年7月)https://www.ppc.go.jp/aboutus/report/
- IPA『安全なウェブサイトの作り方』改訂第7版https://www.ipa.go.jp/security/vuln/websecurity/about.html
最終更新:2026年8月22日/次回見直し予定:2026年11月(14のサポート終了と、次のマイナーリリースに合わせて件数と一覧を数え直します)


コメント