ニュース

LTSのはずの「Node.js 16」のサポート期間が7カ月短縮 ~2023年9月11日までに

「OpenSSL 1.1.1」のサポート終了に合わせた措置

 「Node.js」の開発チームは6月8日(現地時間)、「Node.js 16」のサポート期間を7カ月短縮すると発表した。2023年9月11日でサポートが打ち切られる。

 2021年4月にリリースされた「Node.js 16」は、6カ月の通常サポートに加え、30カ月の追加サポート(計3年間)を受けられる長期サポートリリース(LTS)で、本来であれば2024年4月までサポートされるはずだった。

「Node.js」のサポート期間(変更前のもの)

 しかし、「Node.js 16」に含まれる「OpenSSL 1.1.1」はそれより早く、2023年9月11日でサポート期間を満了(EoL)してしまう。そこで、4つのオプションが検討された。

  • 何もしない:「OpenSSL 1.1.1」のサポート終了後に発見された脆弱性のリスクを甘受する
  • サポート終了を「OpenSSL 1.1.1」に合わせて前倒し:ユーザーに早期の移行を強いることになるが、「OpenSSL 1.0.2」のEoLに合わせて「Node.js 8」のサポートを4カ月前倒しにした前例がある
  • 「OpenSSL 3」への移行を試みる:もともと「Node.js 16」は「OpenSSL 3」の採用を目指していたが、リリーススケジュールの都合でかなわなかったという事情があり、理想を言えばもっとも望ましい。しかし、「OpenSSL 3」へ移行した「Node.js 17」「Node.js 18」で報告された問題やテストスイートの調整を考えると、互換性リスクを引き起こすリスクが高い
  • 「OpenSSL 1.1.1」を「CentOS Stream 8」(2024年5月31日までサポート)バージョンに置き換える:「CentOS Stream 8」で加えられた変更により、一部のアプリケーションで互換性問題を引き起こす差異(複数のアルゴリズムの削除など)がある

 その結果、もっともリスクの少ない選択肢は「OpenSSL 1.1.1」に合わせてサポート終了を前倒しすることだと判断された。3年間の長期サポートをあてにして「Node.js 16」を採用した開発者には負担を強いることになるが、やむを得ない措置といえるだろう。