【2024年9月版】PostgreSQLのバージョン情報とサポート期限

皆さんこんにちは。taneCREATIVEの「ちほうタイガー」です。
この記事は2024年9月27日に本記事を執筆しています。

最近Webサイトの保守のご相談を受ける際に、PostgreSQLを利用されているケースが増えてきました。
そこで、今回は、企業のWeb担当者である皆様に向けて、PostgreSQLの各バージョンにおけるサポート内容とサポート期限についてまとめてみたいと思います。

PostgreSQL(ポストグレスキューエル)はPostgreSQL Global Development Group (以下「PGDG」とします)がサポートをしているオープンソースのリレーショナルデータベース管理システム(RDBMS)です。

PostgreSQLは、オープンソースでありながら、データベースの信頼性と整合性を保証するためのACID特性(Atomicity/原子性、Consistency/一貫性、Isolation/独立性、Durability/永続性)に準拠しており、特に多版型同時実行制御(以下「MVCC」とします)を活用することで、大規模なWebサイトやECサイトなどの高負荷な環境での使用に適しているRDBMSです。

そこで、この記事では、企業のWeb担当である皆様に向けて、PostgreSQLのバージョン情報やコミュニティが提供するサポート内容とサポート期限、脆弱性情報などをご案内したいと思います。

少しでも皆様のお役に立てる記事にできればと思います。
どうぞよろしくお願い致します。

PostgreSQLのバージョン情報に関するポイント

以下は、2024年9月30日現在の情報です。

PostgreSQLの最新バージョンは17.0です。

PostgreSQLの公式(PGDG)がセキュリティサポートをしているバージョンは、16系統、15系統、14系統、13系統、12系統のみです。

PostgreSQL 12系統は2024年11月14日にセキュリティサポートが終了します。

PostgreSQLのサポート内容とサポート期限

PostgreSQLに関するサポートの内容

メジャーバージョン(例:PostgreSQL 16、PostgreSQL 17)のリリースは、通常毎年1回行われます。

PGDGによる公式サポートは、各メジャーバージョンのリリース後5年間継続されます。
この期間、PGDGより不具合の修正やセキュリティアップデートが提供されます。

PostgreSQLには公式の延長サポートはありません。

PostgreSQLのバージョンとサポート期限

PostgreSQLのリリース日とサポート期限について下記にまとめてみました。

PostgreSQL 12については、サポート終了日が近づいていますので対応策の検討が必要かと思います。

PostgreSQLのバージョン リリース日 サポート終了日 最新パッチバージョン
17 2024年9月26日 2029年11月8日 17.0
16 2023年9月14日 2028年11月9日 16.4(2024年8月8日)
15 2022年10月13日 2027年11月11日 15.8(2024年8月8日)
14 2021年9月30日 2026年11月12日 14.13(2024年8月8日)
13 2020年9月24日 2025年11月13日 13.16(2024年8月8日)
12 2019年10月3日 2024年11月14日 12.20(2024年8月8日)
11 2018年10月18日 2023年11月9日 11.22(2023年11月9日)
10 2017年10月5日 2022年11月10日 10.23(2022年11月10日)
9.6 2016年9月29日 2021年11月11日 9.6.24 (2021年11月11日)
9.5 2016年1月7日 2021年2月11日 9.5.25 (2021年2月11日)
9.4 2014年12月18日 2020年2月13日 9.4.26(2020年2月13日)
9.3 2013年9月9日 2018年11月8日 9.3.25 (2018年11月8日)
9.2 2012年9月10日 2017年11月09日 9.2.24(2017年11月9日)
9.1 2011年9月12日 2016年10月27日 9.1.24(2016年10月27日)
9.0 2010年9月20日 2015年10月08日 9.0.23 (2015年10月8日)

※グレーのバージョンは公式のセキュリティサポートが終了しています。
※8.4以前のバージョンもありますが、流石にもう使用されていないと思うので割愛させていただいております。

PostgreSQLの有名な脆弱性情報

脆弱性情報 深刻度 影響を受けるバージョン 修正されたバージョン

CVE-2024-7348
JVNDB-2024-005389

CVSS v3
8.8 (重要)
PostgreSQL 16.0から16.3
PostgreSQL 15.0から15.7
PostgreSQL 14.0から14.12
PostgreSQL 13.0から13.15
PostgreSQL 12.0から12.19
PostgreSQL 16.4
PostgreSQL 15.8
PostgreSQL 14.13
PostgreSQL 13.16
PostgreSQL 12.20

CVE-2024-0985
JVNDB-2024-002740

CVSS v3
8.0(重要)
PostgreSQL 16.0から16.1
PostgreSQL 15.0から15.5
PostgreSQL 14.0から14.10
PostgreSQL 13.0から13.13
PostgreSQL 12.0から12.17
PostgreSQL 16.2
PostgreSQL 15.6
PostgreSQL 14.11
PostgreSQL 13.14
PostgreSQL 12.18

CVE-2023-39417
JVNDB-2023-021957

CVSS v3
8.8 (重要)
PostgreSQL 15.0から15.3
PostgreSQL 14.0から14.8
PostgreSQL 13.0から13.11
PostgreSQL 12.0から12.15
PostgreSQL 11.0から11.20
PostgreSQL 15.4
PostgreSQL 14.9
PostgreSQL 13.12
PostgreSQL 12.16
PostgreSQL 11.21

CVE-2023-5869
JVNDB-2023-019527

CVSS v3
8.8 (重要)
PostgreSQL 16.0
PostgreSQL 15.0から15.4
PostgreSQL 14.0から14.9
PostgreSQL 13.0から13.12
PostgreSQL 12.0から12.16
PostgreSQL 11.0から11.21
PostgreSQL 16.1
PostgreSQL 15.5
PostgreSQL 14.10
PostgreSQL 13.13
PostgreSQL 12.17
PostgreSQL 11.22

CVE-2023-2454
JVNDB-2023-003774

CVSS v3
7.2(重要)
PostgreSQL 15.0から15.2
PostgreSQL 14.0から14.7
PostgreSQL 13.0から13.10
PostgreSQL 12.0から12.14
PostgreSQL 11.0から11.19
PostgreSQL 15.3
PostgreSQL 14.8
PostgreSQL 13.11
PostgreSQL 12.15
PostgreSQL 11.20

CVE-2022-2625
JVNDB-2022-002655

CVSS v3
8.0(重要)
PostgreSQL 14.0から14.4
PostgreSQL 13.0から13.7
PostgreSQL 12.0から12.11
PostgreSQL 11.0から11.16
PostgreSQL 10.0から10.21
PostgreSQL 14.5
PostgreSQL 13.8
PostgreSQL 12.12
PostgreSQL 11.17
PostgreSQL 10.22

CVE-2022-1552
JVNDB-2022-016195

CVSS v3
8.8(重要)
PostgreSQL 14.0から14.2
PostgreSQL 13.0から13.6
PostgreSQL 12.0から12.10
PostgreSQL 11.0から11.15
PostgreSQL 10.0から10.20
PostgreSQL 14.3
PostgreSQL 13.7
PostgreSQL 12.11
PostgreSQL 11.16
PostgreSQL 10.21

CVE-2021-32027
JVNDB-2021-007581

CVSS v3
8.8 (重要)
PostgreSQL 13.0から13.2
PostgreSQL 12.0から12.6
PostgreSQL 11.0から11.11
PostgreSQL 10.0から10.16
PostgreSQL 9.6.0から9.6.21
PostgreSQL 13.3
PostgreSQL 12.7
PostgreSQL 11.12
PostgreSQL 10.17
PostgreSQL 9.6.22

CVE-2021-23214
JVNDB-2021-018823

CVSS v3
8.1 (重要)
PostgreSQL 14.0
PostgreSQL 13.0から13.4
PostgreSQL 12.0から12.8
PostgreSQL 11.0から11.13
PostgreSQL 10.0から10.18
PostgreSQL 9.6.0から9.6.23
PostgreSQL 14.1
PostgreSQL 13.5
PostgreSQL 12.9
PostgreSQL 11.14
PostgreSQL 10.19
PostgreSQL 9.6.24

CVE-2020-25696
JVNDB-2020-013985

CVSS v3
7.5 (重要)
PostgreSQL 13.0
PostgreSQL 12.0から12.4
PostgreSQL 11.0から11.9
PostgreSQL 10.0から10.14
PostgreSQL 9.6.0から9.6.19
PostgreSQL 9.5.0から9.5.23
PostgreSQL 13.1
PostgreSQL 12.5
PostgreSQL 11.10
PostgreSQL 10.15
PostgreSQL 9.6.20
PostgreSQL 9.5.24

CVE-2020-25695
JVNDB-2020-013397

CVSS v3
8.8 (重要)
PostgreSQL 13.0
PostgreSQL 12.0から12.4
PostgreSQL 11.0から11.9
PostgreSQL 10.0から10.14
PostgreSQL 9.6.0から9.6.19
PostgreSQL 9.5.0から9.5.23
PostgreSQL 13.1
PostgreSQL 12.5
PostgreSQL 11.10
PostgreSQL 10.15
PostgreSQL 9.6.20
PostgreSQL 9.5.24

CVE-2020-25694
JVNDB-2020-013396

CVSS v3
8.1 (重要)
PostgreSQL 13.0
PostgreSQL 12.0から12.4
PostgreSQL 11.0から11.9
PostgreSQL 10.0から10.14
PostgreSQL 9.6.0から9.6.19
PostgreSQL 9.5.0から9.5.23
PostgreSQL 13.1
PostgreSQL 12.5
PostgreSQL 11.10
PostgreSQL 10.15
PostgreSQL 9.6.20
PostgreSQL 9.5.24

CVE-2020-14350
JVNDB-2020-010260

CVSS v3
7.3 (重要)
PostgreSQL 12.0から12.3
PostgreSQL 11.0から11.8
PostgreSQL 10.0から10.13
PostgreSQL 9.6.0から9.6.18
PostgreSQL 9.5.0から9.5.22
PostgreSQL 12.4
PostgreSQL 11.9
PostgreSQL 10.14
PostgreSQL 9.6.19
PostgreSQL 9.5.23

CVE-2020-14349
JVNDB-2020-010195

CVSS v3
7.1 (重要)
PostgreSQL 12.0から12.3
PostgreSQL 11.0から11.8
PostgreSQL 10.0から10.13
PostgreSQL 12.4
PostgreSQL 11.9
PostgreSQL 10.14

CVE-2020-10733
JVNDB-2020-011248

CVSS v3
7.3 (重要)
PostgreSQL 12.0から12.2
PostgreSQL 11.0から11.7
PostgreSQL 10.0から10.12
PostgreSQL 9.6.0から9.6.17
PostgreSQL 9.5.0から9.5.21
PostgreSQL 12.3
PostgreSQL 11.8
PostgreSQL 10.13
PostgreSQL 9.6.18
PostgreSQL 9.5.22

CVE-2019-10211
JVNDB-2019-011541

CVSS v3
9.8 (緊急)
PostgreSQL 11.0から11.4
PostgreSQL 10.0から10.9
PostgreSQL 9.6.0から9.6.14
PostgreSQL 9.5.0から9.5.18
PostgreSQL 9.4.0から9.4.23
PostgreSQL 11.5
PostgreSQL 10.10
PostgreSQL 9.6.15
PostgreSQL 9.5.19
PostgreSQL 9.4.24

CVE-2018-16850
JVNDB-2018-012186

CVSS v3
9.8 (緊急)
PostgreSQL 11.0
PostgreSQL 10.0から10.5
PostgreSQL 11.1
PostgreSQL 10.6

CVE-2018-1115
JVNDB-2018-005031

CVSS v3
9.1 (緊急)
PostgreSQL 10.0から10.3
PostgreSQL 9.6.0から9.6.8
PostgreSQL 10.4
PostgreSQL 9.6.9

CVE-2017-7546
JVNDB-2017-007080

CVSS v3
9.8 (緊急)
PostgreSQL 9.6.0から9.6.3
PostgreSQL 9.5.0から9.5.7
PostgreSQL 9.4.0から9.4.12
PostgreSQL 9.3.0から9.3.17
PostgreSQL 9.2.0から9.2.21
PostgreSQL 9.6.4
PostgreSQL 9.5.8
PostgreSQL 9.4.13
PostgreSQL 9.3.18
PostgreSQL 9.2.22

CVE-2016-3065
JVNDB-2016-002053

CVSS v3
9.1 (緊急)
PostgreSQL 9.5.0から9.5.1 PostgreSQL 9.5.2

CVE-2015-3166
JVNDB-2015-008481

CVSS v3
9.8 (緊急)
PostgreSQL 9.4.0から9.4.1
PostgreSQL 9.3.0から9.3.6
PostgreSQL 9.2.0から9.2.10
PostgreSQL 9.1.0から9.1.15
PostgreSQL 9.0.0から9.0.19
PostgreSQL 9.4.2
PostgreSQL 9.3.7
PostgreSQL 9.2.11
PostgreSQL 9.1.16
PostgreSQL 9.0.20

CVE-2015-0244
JVNDB-2015-008557

CVSS v3
9.8 (緊急)
PostgreSQL 9.4.0
PostgreSQL 9.3.0から9.3.5
PostgreSQL 9.2.0から9.2.9
PostgreSQL 9.1.0から9.1.14
PostgreSQL 9.0.0から9.0.18
PostgreSQL 9.4.1
PostgreSQL 9.3.6
PostgreSQL 9.2.10
PostgreSQL 9.1.15
PostgreSQL 9.0.19

※脆弱性情報については、情報セキュリティにおける脆弱性情報に付けられている番号であるCommon Vulnerabilities and Exposures(本記事では「CVE」とします)の順序に従って掲載しています。
※深刻度については、共通脆弱性評価システムCVSS v3に基づいています。
※深刻度の数値はJapan Vulnerability Notes(本記事では「JVN」とします)及び、JVNが評価を合わせている米国国立標準技術研究所(NIST)が運営する脆弱性データベースであるNational Vulunerability Database(以下「NVD」)に準拠しています。
※公式サポートの対象であるPostgreSQL 12以上については、CVSS 3、NVDの基準で緊急(9.0~10.0、)ないし重要(7.0~8.9)の脆弱性情報を掲載しています。
※公式サポートが終了しているPostgreSQL 11以下ついては、CVSS 3、NVDの基準で緊急(9.0~10.0)の脆弱性情報を掲載しています。
※CVE-2013-1903等CVSS v3が採用される前の以前の脆弱性情報は、CVSS v2で緊急に区分されるものであっても掲載していません。
※原則としてJVNのページを正としていますが、JVNに掲載されていない情報などについてはNVDのサイトを参照しています。
※本記事における脆弱性情報は、当社が把握しているものだけであり、全ての脆弱性情報を網羅できているわけではありません。
※本記事における脆弱性情報をご利用になる場合には、必ずCVE、JVN、NVDなどの情報を確認されたうえで、自己責任でご利用ください。

PostgreSQLの公式サポート終了への対応策

PostgreSQLのサポート終了への対応策としては、概ね次の3パターンが考えられます。

サードパーティによる延長サポートを購入する

前述のように、PostgreSQLには公式の延長サポートはありませんが、サードパーティによる有料の延長サポートを受けることができます。
大規模なWebサイトであったり、複雑なWebシステムである場合には、こういった延長サポートをお勧めするケースがあります。

PostgreSQLのバージョンアップを実施する

一般的なWebサイトやWebシステムの場合、PostgreSQLのバージョンアップを実施するという方法が、最も一般的な対処方法になります。
しかしながら、データベースソフトウェアのバージョンアップ、特にメジャーバージョンアップの場合(例えば16から17へのバージョンアップ等)には、かなりの確率でアプリケーション側にエラーが発生します。
そのため、以下の手順で慎重にバージョンアップをする必要があります。
① 旧バージョンと新バージョンの変更点の事前把握
② 影響範囲の確定
③ ステージング環境ないしディベロップ環境でのバージョンアップ実施
④ ステージング環境ないしディベロップ環境でのエラーの発見と解消及び手順書の作成
⑤ エラーが解消されたことを確認した後、本番環境での手順書に従いながらバージョンアップとエラーの解消を実施
⑥ 本番環境でのテスト

Webサイトをリニューアルする

Web制作の現場で多いのが、5年程度経過したWebサイトはデザインごとリニューアルしてしまうという手法です。
この場合、そもそも最新のPostgreSQLバージョンで作り直しますので、問題も解決します。

PostgreSQLの保守を継続する体制について

PostgreSQLは無償のオープンソースであり、大規模なWebサイト等で選択されることが増えてきました。
しかしながら、自社内で保守を行うにも属人化が発生してリソースが足りなくなったり、徐々にシステムの規模が大きくなるにつれて社内では対応できなくなったりすることが増えています。
そうした場合、特にWebサイトに関してはWeb制作会社に相談されると思いますが、PostgreSQLを含むミドルウェアのアップデートには対応できないと回答されるケースもあるようです。
無料版であるPostgreSQLで保守を継続したい等のお悩みがございましたら、こちらのお問合せよりお気軽にご相談ください。

当社に関して

aneCREATIVE社は、「リモートによるWebアプリケーションのセキュリティ対策をパッケージ化、首都圏大手企業に提供」している点が評価され、2021年にJ-Startup NIIGATAに選定されています。

※「J-Startup NIIGATA」とは、経済産業省が2018年に開始したJ-Startupプログラムの地域版として、新潟発のロールモデルとなるスタートアップ企業群を明らかにし、官民連携により集中的に支援する仕組みを 構築することで、新潟県におけるスタートアップ・エコシステムを強化する取組です。

この記事を書いた存在
ちほうタイガー

taneCREATIVEに所属する謎のトラ。