サポート終了(EOL)
Node.jsのサポート終了(End-Of-Life)について
Node.jsのメジャーバージョンは予定されたスケジュールでリリースやパッチの適用を経て、サポート終了(End-Of-Life)を迎えます。すべてのリリースラインを永続的に維持することは現実的ではないため計画されたメンテナンス期間の終了後、Node.jsのメジャーリリースラインはプロジェクトによるメンテナンスを終了します。
EOLになったリリースラインについて
サポート終了(End-Of-Life)を迎えたバージョンはセキュリティーパッチを含む更新が提供されなくなります。これによりこれらのバージョンで動作するアプリケーションは修正されないセキュリティー上の問題やバグに対して脆弱な状態に置かれる可能性があります。
- 脆弱性修正の提供終了:新しいセキュリティーリリースで新たな脆弱性が発見され、主要な新バージョンラインにパッチが適用された場合、たとえ同じ脆弱性がサポート終了(EOL)のリリースラインに影響を与えていても、それらに対する新たなリリースは提供されません。サポート終了のリリースラインを使い続け、影響を受けるコードを使用しているユーザーはこれらの公開された脆弱性を悪用する攻撃に対して即座に脆弱な状態となります。
- ツールチェーンの破損:EOLバージョンは依存する共有ライブラリーの新バージョンへの動的リンクができなくなる可能性があり、システム更新を妨げたり壊す恐れがあります。
- エコシステムドリフト:多くの一般的なサードパーティーパッケージは時間の経過とともにEOLバージョンのサポートを終了します。アプリケーションが古いパッケージに固執すると修正されていない脆弱性やバグにさらされる可能性が高まり、エコシステムの標準からさらに離れていくことになります。
- コンプライアンス上の危険信号:多くの業界の監査ではメンテナンスされていないランタイムの使用を禁止されています。
EOLバージョン
| Version (Codename) | Last updated | Vulnerabilities | Details |
|---|---|---|---|
| v23 | 2High2Medium | ||
| v21 | 7High5Medium | ||
| v19 | 1High3Medium2Low | ||
| v18 (Hydrogen) | 15High19Medium4Low | ||
| v17 | 1High3Medium1Low | ||
| v16 (Gallium) | 11High18Medium4Low | ||
| v15 | 1Critical6High1Medium1Low | ||
| v14 (Fermium) | 2Critical16High16Medium5Low | ||
| v13 | 1Critical2High | ||
| v12 (Erbium) | 2Critical13High6Medium3Low | ||
| v11 | 3High1Medium | ||
| v10 (Dubnium) | 1Critical12High3Medium1Low | ||
| v9 | 1Critical4High1Medium1Low | ||
| v8 (Carbon) | 1Critical11High2Medium1Low | ||
| v7 | 3High2Medium | ||
| v6 (Boron) | 16High12Medium | ||
| v5 | 15High8Medium | ||
| v4 (Argon) | 2Critical17High9Medium | ||
| v0 | 2Critical |
商用サポート
EOLバージョンに明らかな欠点があるにもかかわらず、実際はレガシーコードベース、コンプライアンス要件、複雑な依存関係チェーンなど、企業は早急なアップグレードを妨げる制約に直面します。Node.jsはOpenJS Foundationエコシステム持続プログラムを通してHeroDevsとNodeSourceによってサポートされたセキュリティー修正のための商用サービスを提供しています。
HeroDevsは公式のメンテナンス期間が終了したNode.jsバージョンのNever-Ending Support(NES)を提供します。これにはセキュリティーパッチ、コンプライアンス支援、技術サポートが含まれ、アップグレード戦略を計画する間の一時的なギャップを埋めるお手伝いをします。
商用サポートによるEOLバージョンの利用は一時的な解決策と捉えるべきであり、常に積極的にサポートされているバージョンへのアップグレードを目標とすべきです。