Spring Bootはおおむね半年ごとに新しいマイナーバージョンが出て、それぞれに無償パッチの期限が決まっています。2026年10月時点で無償パッチが届くのは4.1と4.0の2系列だけで、その4.0も2026年12月31日で無償サポートが終わります。3系は6月30日の3.5を最後にすべてEOLです。この記事では、主なバージョンのサポート期限と2027年末までの日程、Java・Spring Frameworkとの対応、使用中バージョンの確認方法(Maven・Gradleで実行して確かめたコマンド)、EOL後に実際に起きたことを順に整理します。Spring Boot自体の仕組みと4系で変わった依存名はSpring Bootとは|4.1系の依存名の変更と最小Web APIの作り方で解説しています。
まとめ:2026年10月時点で選ぶべきSpring Bootのバージョン
- 最新はSpring Boot 4.1(4.1.0が2026年6月10日にGA、最新パッチは8月20日の4.1.1)。新規開発は4.1で始めます。
- 4.0の無償サポートは2026年12月31日まで。4.0で動いているシステムは年内に4.1へ上げます。4.0.8と4.1.1はどちらもSpring Framework 7.0.9を使っており、土台は同じ系列です。
- 3.5は2026年6月30日にEOL(最終は3.5.16)。8月20日に公表された脆弱性では、3.5が使うFramework 6.2系・Security 6.5系の修正版が商用サポート契約者限定になりました。
- Spring BootにLTSは無い。どのマイナーも無償サポートは最低13か月で、長く使うなら有償の延長サポート(Tanzu Spring、HeroDevs NES)を買う形になります。
- 次の4.2は2026年11月にGAの予定。10月22日に4.2.0-RC1と4.1.2・4.0.9が予定されています。4.2はJava 27まで対応する見込みです。
Spring Bootのバージョン一覧とサポート期限(EOL)【2026年10月時点】
主なバージョンの状況です。期限はSpring公式のサポート情報(spring.io/projects/spring-bootのSupportタブ)、初回GAと最新パッチはGitHubのリリース日で、2026年10月13日に確認しました。
| バージョン | 初回GA | 状態 | 最新パッチ | 無償(OSS)サポート | 商用サポート |
|---|---|---|---|---|---|
| 4.2 | 2026年11月予定 | 開発中(4.2.0-M2) | ― | 2027年12月31日まで | 2028年12月31日まで |
| 4.1 | 2026年6月10日 | 最新・サポート中 | 4.1.1(2026年8月20日) | 2027年7月31日まで | 2028年7月31日まで |
| 4.0 | 2025年11月20日 | サポート中(残り2か月半) | 4.0.8(2026年8月21日) | 2026年12月31日まで | 2027年12月31日まで |
| 3.5 | 2025年5月 | EOL(無償終了) | 3.5.16(2026年6月25日) | 2026年6月30日に終了 | 2032年6月30日まで |
| 3.4 | 2024年11月 | EOL | 3.4.13(2025年12月18日) | 2025年12月31日に終了 | 2026年12月31日まで |
| 3.3 | 2024年5月 | EOL | 3.3.13(2025年6月19日) | 2025年6月30日に終了 | 2026年6月30日に終了 |
| 2.7(2系最終) | 2022年5月 | EOL | 2.7.18(2023年11月23日) | 2023年11月に終了(当時の公式告知) | 2029年6月30日まで |
公式の世代表(api.spring.io)は初回リリースを「2026-06-30」のように月末の日付で持っているため、endoflife.dateなどの一覧サイトでは4.1のリリース日が6月30日と表示されます。実際のGAは6月10日です。初回GA日と世代表の管理日付は区別し、サポート期限には公式に公表された終了日を用います。
2027年末までのリリースとサポート終了の日程
一覧表は「いまの状態」しか示しません。運用計画に要るのは次に何が起きるかです。GitHubのマイルストーンの期日と公式の世代表から、2027年末までの予定を並べました。
| 時期 | 出来事 | 影響を受けるシステム |
|---|---|---|
| 2026年10月22日(予定) | 4.1.2・4.0.9・4.2.0-RC1 | 4.1・4.0の利用者はパッチ適用 |
| 2026年11月(予定) | 4.2.0 GA(Spring Framework 7.1と同時期) | 新規開発の選択肢が4.2に移る |
| 2026年12月31日 | 4.0の無償サポート終了/3.4の商用サポート終了 | 4.0のまま・3.4の商用契約のまま |
| 2027年7月31日 | 4.1の無償サポート終了 | 4.1で止めたシステム |
| 2027年12月31日 | 4.2の無償サポート終了/4.0の商用サポート終了 | 4.2利用者・4.0の商用契約者 |
パッチの間隔にも変化があります。4.0系は2026年1月から3月まで毎月パッチが出ていましたが、4.0.6(4月23日)、4.0.7(6月10日)、4.0.8(8月21日)と、4月以降はおよそ2か月おきです。次の4.0.9はGitHubのマイルストーンで10月22日が期日になっています。パッチの公開間隔は固定ではなく、脆弱性の修正公開までの期間に「最大2か月」という保証はない前提で計画してください。
3.5のEOLから3か月:3系に無償パッチが出ない状態
3.5は3系の最終マイナーで、最終パッチは3.5.16(2026年6月25日)です。これ以降、3系向けの修正はMaven Centralに公開されていません。3.5.16が管理する依存はSpring Framework 6.2.19、Spring Security 6.5.11、Tomcat 10.1.55で固定されたままになります。Tomcat側の系列ごとのサポート期限はTomcatのバージョン一覧とサポート期限で確認できます。SBOMなどで利用バージョンを棚卸しし、公式のサポート期限と照合します。監査や取引先の審査に備え、移行計画と修正パッチの入手方法を説明できる状態にします。
stable versionの意味:公式サイトの表示と本番で選ぶ版の違い
「Spring Bootの安定版(stable version)はどれか」という問いには注意が要ります。公式ドキュメント(docs.spring.io)の版切り替えメニューは「Stable」の見出しの下に4.1.1、4.0.8、3.5.16、3.4.13、3.3.13を並べています。この「Stable」は正式リリース(GA)済みという意味で、無償サポート中という意味ではありません。3.5.16も3.3.13もStableに並んでいます。
最新の推奨リリースやGA・プレビューの区分を確認するなら、Springのリリース情報API(https://api.spring.io/projects/spring-boot/releases)が使えます。2026年10月13日の応答では、current: true が付いているのは4.1.1だけで、4.2.0-M2はPRERELEASE、4.1.2-SNAPSHOTなどはSNAPSHOTと区別されています。本番で選ぶべき安定版は「GAで、かつ無償サポート期限内」の最新=4.1です。マイルストーン(M)とリリース候補(RC)は本番に使いません。
サポート期間の仕組み:OSSは最低13か月、商用は最低25か月
サポート期間の決まりを知っておくと、次に動くべき時期を先読みできます。根拠はSpring公式のSupport Policyです。
無償(OSS)サポートは初回リリースから最低13か月
Support PolicyはSpring Bootについて「Minor Releases will be supported for a minimum of 13 months」と定めています。Spring Boot以外のSpringプロジェクトは「minimum of 12 months」と書き分けられており、Spring Bootだけ1か月長い設定です。4.1のGA日を2026年6月10日、終了日を2027年7月31日とすると、期間は13か月と21日です。マイナーは半年ごとに出るので、無償サポート対象は通常2系列(最新と1つ前)です。無償だけで運用するなら、年に1回以上の版上げは避けられません。
商用サポートと延長サポートの提供元
同じSupport Policyでは、有償サブスクリプションの期間を「minimum of 25 months」とし、各メジャーの最終マイナー(2.7、3.5など)にはさらに5年の延長期間を足すとしています。3.5の商用サポートが2032年6月30日、2.7が2029年6月30日まで残っているのはこのためです。提供元はBroadcomのTanzu Springです。サードパーティでは、HeroDevsのNever-Ending Support(NES)for SpringがSpring Boot 1.5から3.5までの各版を対象にしています。移行に半年以上かかる大規模システムでは、移行完了までのつなぎとして現実的な手段になります。
Spring BootにLTSが無い理由と長く使うための代替
Spring BootにはJavaやNode.jsのような「LTS」という区分がありません。どのマイナーも無償サポートは同じルール(最低13か月)なので、「LTS版を選んで数年放置する」運用は成立しません。長くパッチを受けたい場合は、各メジャーの最終マイナー(3系なら3.5)に乗ったうえで延長サポートを契約するのが答えになります。Java 25がLTSでも、その上で動くSpring Boot 3.5のEOLは動きません。言語のLTSとフレームワークの期限が別に進む構図はPHPでも同じで、Laravel 11の変更点とサポート期限|EOL後も残る未修正の脆弱性と12・13への移行判断が同じ問題を扱っています。
使用中のSpring Bootバージョンを確認する方法
サポート対象かどうかを判断する前に、いま動いているバージョンを正確に知る必要があります。以下のコマンドは、Spring Boot 4.1.1のプロジェクトをMaven 3.9.11・Gradle 9.8.1・Java 25で実行して出力を確かめたものです。
Mavenの管理バージョンと解決済み依存の確認
spring-boot-starter-parentを親にしているプロジェクトなら、親のバージョンがそのままSpring Bootのバージョンです。土台のSpring FrameworkとSpring Securityは、親POMが定義するプロパティで読めます。
# Spring Bootのバージョン(starter-parentを使っている場合)→ 4.1.1
mvn -q help:evaluate -Dexpression=project.parent.version -DforceStdout
# 管理されているSpring Framework → 7.0.9 / Spring Security → 7.1.1
mvn -q help:evaluate -Dexpression=spring-framework.version -DforceStdout
mvn -q help:evaluate -Dexpression=spring-security.version -DforceStdout
# 実際に解決された依存をツリーで確認(BOMをimportしている場合はこちら)
mvn dependency:tree -Dincludes=org.springframework.boot:spring-boot,org.springframework:spring-core
-Dexpression=spring-boot.versionと書く例をよく見かけますが、starter-parent 4.1.1で実行すると「null object or invalid expression」が返り、値は取れませんでした。starter-parentを使わずBOMをdependencyManagementでimportしている構成では親バージョンも使えないため、dependency:treeの結果(spring-boot:jar:4.1.1、spring-core:jar:7.0.9)で確認します。
Gradleのプラグインと実行時依存バージョンの確認
# 適用中のSpring Bootプラグイン → spring-boot-gradle-plugin:4.1.1
./gradlew buildEnvironment
# 実行時クラスパスで選ばれた版 → spring-boot:4.1.1 / spring-core:7.0.9
./gradlew dependencyInsight --dependency org.springframework.boot:spring-boot --configuration runtimeClasspath
./gradlew dependencyInsight --dependency spring-core --configuration runtimeClasspath
Spring Boot本体だけでなくSpring FrameworkとSpring Securityの版まで押さえておくと、後述するCVEの影響判定がそのまま行えます。脆弱性の影響範囲は問題のあるコンポーネントごとに示されるため、Spring Bootに加えてFrameworkやSecurityの実際の依存バージョンも確認します。Javaのバージョンをビルドで固定したい場合は、ツールチェーン(toolchain)とは?構成要素と言語別の実例・GradleのJava Toolchain設定のJava Toolchain設定が使えます。
配布済みjarと稼働中アプリのバージョン確認
ソースが手元に無くても、Spring Bootのプラグインで作った実行可能jarにはバージョンが書き込まれています。起動せずに読めるので、サーバーに置かれたjarの棚卸しに向いています。
# jarのMANIFESTを読む → Spring-Boot-Version: 4.1.1
unzip -p app.jar META-INF/MANIFEST.MF | grep Spring-Boot-Version
起動ログでは、バナーの最終行に:: Spring Boot :: (v4.1.1)、続くStarting ... using Java 25.0.4.1の行にJavaの版が出ます。コードから取るならSpringBootVersion.getVersion()とSpringVersion.getVersion()がそれぞれ4.1.1と7.0.9を返しました。稼働中のSpring Bootの版をActuatorのinfoで確認するには、その版を追加プロパティなどで明示的に載せます。標準のビルド情報にあるversionはアプリケーション自身の版です。公開範囲と認証の設定はSpring Boot Actuatorの設定|exposure.includeとaccessの使い分け【4.1対応】にまとめました。
Spring Boot・Spring Framework・Javaの対応関係
Spring Bootのバージョンを決めると、土台のSpring FrameworkとJavaの要件が連動して決まります。Javaの範囲は各版のSystem Requirements、FrameworkとSecurityの版は各版のBOM(spring-boot-dependencies)の値です。
| Spring Boot | Framework(管理版) | Security(管理版) | 対応Java | Servlet | FrameworkのOSS期限 |
|---|---|---|---|---|---|
| 4.2(予定) | 7.1 | 7.2 | 17〜27 | 6.1 | 2027年12月31日 |
| 4.1.1 | 7.0.9 | 7.1.1 | 17〜26 | 6.1 | 2027年7月31日 |
| 4.0.8 | 7.0.9 | 7.0.7 | 17〜26 | 6.1 | 2027年7月31日 |
| 3.5.16(EOL) | 6.2.19 | 6.5.11 | 17〜25 | 6.0 | 2026年6月30日に終了 |
| 2.7.18(EOL) | 5.3.31 | 5.7.11 | 8〜21 | javax(Java EE) | 2024年8月31日に終了 |
注意したいのはJava 27です。Java 27は2026年9月15日にGAになりましたが、4.1.1のSystem Requirementsは「up to and including Java 26」で、27は対応範囲に入っていません。開発中の4.2.0のドキュメントが「up to and including Java 27」としているので、Java 27を使うなら4.2を待つのが筋です。本番の長期運用ならLTSのJava 25を合わせるのが標準的な構成でしょう。
Spring Framework 6.2の無償サポートは3.5と同じ2026年6月30日に終わり、無償の最終パッチは6.2.19(6月8日)です。3系のアプリはBootとFrameworkが同時にEOLになった状態で、片方だけを上げて延命することはできません。Framework側の世代交代はSpring Frameworkとは?特徴・DI/AOPとSpring Bootとの違い・最新版7を解説【2026年最新】、JDKの選び方とライセンスはOpenJDKは商用利用できる?:無料の範囲とOracle JDKとの違い・ライセンス・サポート期限【2026年最新】、4.1が対応するJava 26の中身はJava 26(JDK 26)の新機能10個のJEPと現在地|サポート終了後の移行先と実機で確かめた挙動で扱っています。
EOL後の修正提供:2026年8月20日公表のCVE事例
「EOLでも動くから当面は平気」という判断がどう崩れるかは、2026年8月20日に公表された一連の脆弱性が示しています。公式のSecurity Advisoriesの一覧は、2026年10月13日時点でも先頭の25件がすべて8月20日付です(Spring Framework、Security、Data JPA、Reactor Netty、Batch、AIなど)。このうち3.5の利用者に直接響く2件を見ます。
SpELの脆弱性CVE-2026-47886:6.2系の修正版は商用限定
CVE-2026-47886は、Spring Expression Language(SpEL)の累乗演算子^をBigDecimalやBigIntegerに巨大な指数で適用させると、CPUとヒープを食い潰すサービス拒否の問題です。影響はFramework 7.0.0〜7.0.8、6.2.0〜6.2.19、6.1系、6.0系、5.3系など。無償の修正版は7.0.9だけで、6.2.20・6.1.29・5.3.50などは「Enterprise Support Only」と明記されています。3.5.16が管理するのは6.2.19なので、3.5のままでは無償で直せません。
WebAuthnの検証迂回CVE-2026-47841:6.5系の修正版も商用限定
CVE-2026-47841はSpring SecurityのWebAuthn(パスキー)実装の問題です。UserVerificationRequirementを同一性比較(==)で判定しているため、セッションを分散ストアへ直列化して復元すると定数REQUIREDと参照が一致せず、ユーザー検証(PINや生体認証)の要求が黙って外れます。影響は7.1.0、7.0.0〜7.0.6、6.5.0〜6.5.11、6.4.0〜6.4.18で、無償の修正版は7.1.1と7.0.7だけです。3.5.16が管理するSecurityは6.5.11で、修正版の6.5.12は商用限定でした。認証まわりの構成はSpring Bootの認証をSpring Securityで実装する方法【Spring Security 6/7対応・2026年版】で確認できます。
CVEの影響条件に基づく移行・暫定対応の優先順位
両方のアドバイザリは、影響を受ける条件を具体的に書いています。CVE-2026-47886は「信頼できないSpEL式を評価している」ことと「評価コンテキストからBigDecimalかBigIntegerに届く」ことの両方が必要です。CVE-2026-47841は「パスキー認証を使う」「userVerificationを明示的にREQUIREDにしている(既定はPREFERREDで対象外)」「Spring SessionのRedisやJDBCなど分散セッションを使う」の3つがそろったときだけ成立します。3.5のシステムを抱えているなら、まずこの条件で自分が該当するかを判定し、該当するシステムから移行か延長サポートを決めるのが現実的な順番です。ただし条件に当てはまらなかったのは今回の2件だけで、次の公表分で該当しない保証はありません。
サポート内の系列でも、パッチを当てなければ同じことです。2026年4月23日公表のCVE-2026-40976はSpring Boot 4.0.0〜4.0.5が対象で、サーブレット系のアプリが独自のSecurity設定を持たず、spring-boot-actuator-autoconfigureに依存し、spring-boot-healthに依存していない場合に、既定の認可が効かず全エンドポイントに認証なしで届きます。修正は4.0.6(無償)でした。依存の更新を自動で拾う仕組みはGitHub ActionsとDependabotの連携設定|依存関係の自動更新から自動マージまでが参考になります。
状況別のバージョン選定:新規開発・4.0利用・3.5据え置き・2系利用
新規開発の4.1採用と4.2公開後の移行判断
4.1を選びます。4.2は11月にGAの予定ですが、移る前に依存ライブラリの対応確認と回帰テストの期間が要ります。4.1の無償サポートは2027年7月31日まで残っているので、4.1で始めて、4.2へは検証が済んでから移れば間に合います。前提はJava 17以上で、実務ではLTSのJava 25を合わせるのが標準です。
4.0稼働システムの年内4.1移行
4.0の無償サポートは2026年12月31日に終わります。4.0.8と4.1.1はどちらもSpring Framework 7.0.9を管理していますが、BOMを比べるとSpring Security(7.0.7から7.1.1)、Spring Data(2025.1.7から2026.0.1)、Hibernate(7.2.24から7.4.5)は更新されています。4.0で非推奨になったクラスやメソッドは4.1で削除されたため、移行工数は利用している機能ごとに確認します。4.2のGAを待って4.0から直接4.2へ上げる手もありますが、4.2の初回パッチの公開時期を前提にせず、4.0の期限までに検証を終えられる4.1への移行を先に計画します。
3.5利用システムの移行・延長サポートの選択
無償サポートは切れています。取れる手は2つで、(1)4.1への移行を計画する、(2)移行が間に合わないなら延長サポート(Tanzu SpringまたはHeroDevs NES)に加入し、その期間内に移行を終える、のどちらかです。何もしない場合に何が起きるかは、前章のCVE-2026-47886とCVE-2026-47841が示しました。判断の期限は「次に自分のシステムが該当する脆弱性が公表されるまで」で、その日付を自分で選ぶことはできません。
3.4以前・2系の移行工数と改修範囲の見積り
3.4の商用サポートも2026年12月31日で終わります。2.7は商用サポートが2029年6月30日まで残っていますが、Java 8のまま止まっているアプリは、移行時にJavaの版上げとjavaxからjakartaへの書き換えが同時に発生します。工程の分け方はJavaマイグレーションの進め方|JDK 8→21/25の手順とSpring Boot・Jakarta移行で、JDK 8から21・25への手順とあわせて整理しています。
4系への移行手順:飛び級しない段階的な移行
アップグレードは飛び級しないのが鉄則です。2系から4系へ一足飛びに上げると、Javaの変更、jakartaへの移行、Framework 7への追随が同時に来て、失敗の原因を切り分けられなくなります。
移行の順序と各段階で通すテスト
2系からはまず2.7の最終パッチへ更新し、3.0以降の各マイナーの移行ガイドを順に確認して3.5へ進みます。その後、4.0、4.1の順に変更を確認し、各段階でテストします。2.7から3.5ではjavaxとjakartaの入れ替えが中心なので、コンパイルが通ったあとに結合テストで挙動の差を見ます。3.5から4.0・4.1では、自動構成(auto-configuration)が想定どおりに効いているかを、アプリの起動を伴うテストで確認します。各段階で一時的にspring-boot-properties-migrator(4.1.1も配布中)を依存に加えると、名前が変わった設定プロパティを起動時に警告してくれます。移行が終わったら外します。
Spring Boot 4移行前の互換性・依存関係チェック
- Javaが移行先の要件(4系はJava 17以上)を満たしているか
- サードパーティのライブラリがSpring Framework 7・Jakarta EE 11(Servlet 6.1)に対応しているか
- 旧Java EE由来の
javax.servletやjavax.persistenceなどが残っていないか(Java SEのjavax.sqlなどは変更対象外) - 4.0で非推奨になった依存名を使っていないか(例:
spring-boot-starter-webは4.1.1のPOMで「deprecated in favor of spring-boot-starter-webmvc」と記載) - 削除・非推奨のAPIを使っていないか(RestTemplateからの移行はSpringのRestClientとは?使い方とRestTemplate非推奨後の移行【Spring Boot 4対応】、バッチはSpring Batch 6への移行ガイド|5からの変更点とJobLauncher非推奨・スキーマ更新【2026年8月時点】)
- 延長サポートの費用と、移行を前倒しする工数のどちらが安いか試算したか
2番目と3番目では、未対応ライブラリの代替可否と自社共通基盤の改修範囲を確認します。未対応のライブラリに代替が無い、あるいはjavax依存が自社製の共通基盤に埋まっていて手が入らない場合は、版上げではなく設計の見直しに判断が切り替わります。4系の新機能と3系からの変更点の全体像はSpring Boot 4とは?最新バージョン4.1の変更点・新機能とSpring Boot 3との違いを解説【2026年最新】にまとめました。社内の工数で収まらない場合は、現行資産の調査から移行計画の立案までをシステムマイグレーション・リプレイスで支援しています。
よくある質問
Spring Bootの最新バージョンは何ですか?
2026年10月時点の最新はSpring Boot 4.1で、最新パッチは2026年8月20日の4.1.1です。10月22日に4.1.2が予定されています。開発中の4.2は2026年9月24日に4.2.0-M2が出ており、GAは11月の予定です。
Spring Bootの安定版(stable version)はどれですか?
本番で選ぶべき安定版は4.1です。公式ドキュメントの「Stable」表示は正式リリース済みという意味で、EOLの3.5.16や3.3.13も並んでいます。無償パッチが出るのは4.1と4.0だけで、4.0は2026年12月31日に終わります。
Spring Boot 3.5のサポートはいつまでですか?
無償(OSS)サポートは2026年6月30日に終了しました。最終パッチは2026年6月25日の3.5.16です。商用サポート(Tanzu Spring)は2032年6月30日まで続き、HeroDevsのNES for Springも3.5を対象にしています。
Spring BootにLTS版はありますか?
ありません。どのマイナーも無償サポートは初回リリースから最低13か月です。長期間パッチを受けたい場合は、各メジャーの最終マイナー(3系なら3.5)で延長サポートを契約します。
Spring Boot 4.0のサポートはいつまでですか?
無償サポートは2026年12月31日まで、商用サポートは2027年12月31日までです。Spring Frameworkの版は4.0.8と4.1.1で同じ7.0.9ですが、Spring Security・Spring Data・Hibernateは更新され、4.0で非推奨のAPIは4.1で削除されているため、利用している機能ごとの確認は必要です。
関連記事
- Spring Boot 4とは?最新バージョン4.1の変更点・新機能とSpring Boot 3との違いを解説【2026年最新】
- Spring Frameworkとは?特徴・DI/AOPとSpring Bootとの違い・最新版7を解説【2026年最新】
- Javaマイグレーションの進め方|JDK 8→21/25の手順とSpring Boot・Jakarta移行
- Spring Boot Actuatorの設定|exposure.includeとaccessの使い分け【4.1対応】
- OpenJDKは商用利用できる?:無料の範囲とOracle JDKとの違い・ライセンス・サポート期限【2026年最新】