- SERVICE
Webサイト・CMSの保守管理・運用
- WORKS
- ABOUT US
- NEWS & COLUMN
- RECRUIT
皆さんこんにちは。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のバージョン情報やコミュニティが提供するサポート内容とサポート期限、脆弱性情報などをご案内したいと思います。
少しでも皆様のお役に立てる記事にできればと思います。
どうぞよろしくお願い致します。
以下は、2024年9月30日現在の情報です。
PostgreSQLの最新バージョンは17.0です。
PostgreSQLの公式(PGDG)がセキュリティサポートをしているバージョンは、16系統、15系統、14系統、13系統、12系統のみです。
PostgreSQL 12系統は2024年11月14日にセキュリティサポートが終了します。
メジャーバージョン(例:PostgreSQL 16、PostgreSQL 17)のリリースは、通常毎年1回行われます。
PGDGによる公式サポートは、各メジャーバージョンのリリース後5年間継続されます。
この期間、PGDGより不具合の修正やセキュリティアップデートが提供されます。
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以前のバージョンもありますが、流石にもう使用されていないと思うので割愛させていただいております。
脆弱性情報 | 深刻度 | 影響を受けるバージョン | 修正されたバージョン |
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
CVSS v3 9.8 (緊急) |
PostgreSQL 11.0 PostgreSQL 10.0から10.5 |
PostgreSQL 11.1 PostgreSQL 10.6 |
|
CVSS v3 9.1 (緊急) |
PostgreSQL 10.0から10.3 PostgreSQL 9.6.0から9.6.8 |
PostgreSQL 10.4 PostgreSQL 9.6.9 |
|
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 |
|
CVSS v3 9.1 (緊急) |
PostgreSQL 9.5.0から9.5.1 | PostgreSQL 9.5.2 | |
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 |
|
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のサポート終了への対応策としては、概ね次の3パターンが考えられます。
前述のように、PostgreSQLには公式の延長サポートはありませんが、サードパーティによる有料の延長サポートを受けることができます。
大規模なWebサイトであったり、複雑なWebシステムである場合には、こういった延長サポートをお勧めするケースがあります。
一般的なWebサイトやWebシステムの場合、PostgreSQLのバージョンアップを実施するという方法が、最も一般的な対処方法になります。
しかしながら、データベースソフトウェアのバージョンアップ、特にメジャーバージョンアップの場合(例えば16から17へのバージョンアップ等)には、かなりの確率でアプリケーション側にエラーが発生します。
そのため、以下の手順で慎重にバージョンアップをする必要があります。
① 旧バージョンと新バージョンの変更点の事前把握
② 影響範囲の確定
③ ステージング環境ないしディベロップ環境でのバージョンアップ実施
④ ステージング環境ないしディベロップ環境でのエラーの発見と解消及び手順書の作成
⑤ エラーが解消されたことを確認した後、本番環境での手順書に従いながらバージョンアップとエラーの解消を実施
⑥ 本番環境でのテスト
Web制作の現場で多いのが、5年程度経過したWebサイトはデザインごとリニューアルしてしまうという手法です。
この場合、そもそも最新のPostgreSQLバージョンで作り直しますので、問題も解決します。
PostgreSQLは無償のオープンソースであり、大規模なWebサイト等で選択されることが増えてきました。
しかしながら、自社内で保守を行うにも属人化が発生してリソースが足りなくなったり、徐々にシステムの規模が大きくなるにつれて社内では対応できなくなったりすることが増えています。
そうした場合、特にWebサイトに関してはWeb制作会社に相談されると思いますが、PostgreSQLを含むミドルウェアのアップデートには対応できないと回答されるケースもあるようです。
無料版であるPostgreSQLで保守を継続したい等のお悩みがございましたら、こちらのお問合せよりお気軽にご相談ください。
aneCREATIVE社は、「リモートによるWebアプリケーションのセキュリティ対策をパッケージ化、首都圏大手企業に提供」している点が評価され、2021年にJ-Startup NIIGATAに選定されています。
※「J-Startup NIIGATA」とは、経済産業省が2018年に開始したJ-Startupプログラムの地域版として、新潟発のロールモデルとなるスタートアップ企業群を明らかにし、官民連携により集中的に支援する仕組みを 構築することで、新潟県におけるスタートアップ・エコシステムを強化する取組です。
taneCREATIVEに所属する謎のトラ。