HeroDevs、Never-Ending Support (NES) 」を発表
サポート終了を迎えるReact 16およびReact 17におけるセキュリティ、コンプライアンス、および事業継続性
.png)
Reactは、世界で最も広く採用されているフロントエンドライブラリです。2025年のStack Overflow開発者調査によると、開発者の約44%がReactを使用しており、最も利用されているフロントエンドフレームワークとなっています。また、旧バージョンは依然として本番環境に深く根付いています。npmのダウンロードデータによると、アクティブな開発が終了してから数年が経過した今でも、React 16の週間ダウンロード数は約350万回、React 17は約360万回を記録しています。 これらの数字は明確な事実を物語っています。多くのエンタープライズ向けフロントエンドが、アップストリームからのセキュリティ修正が限定的である可能性のあるレガシーなReactバージョン上で稼働しているのです。
本日、HeroDevsは、React 16.xおよび17.xに対応した「Never-Ending Support (NES) for React」の提供開始を発表しました。NES for Reactは、reactおよびreact-domのあらゆる深刻度レベルの脆弱性に対する継続的な修正を提供し、アプリケーションのコード変更を一切必要としない、ドロップイン式のnpm代替ソリューションとして機能します。
支援の格差を理解する
Node.js やAngular とは異なり、React には正式な長期サポート(LTS)プログラムはなく、サポート終了日も公表されていません。プロジェクトのバージョン管理ポリシーでは、セキュリティ修正は影響を受けるメジャーバージョンにバックポートされるとされていますが、その対応範囲は裁量に委ねられており、特定の深刻度範囲を網羅するものではなく、対応のタイムラインも定められていません。
React 19が現在のメジャーバージョンとなった今、React 16とReact 17はすでに積極的な開発対象から外れています。これらに基づいて構築されたアプリケーションは、本番環境において引き続きレンダリングされ、機能しています。まさにその点が、リスクを見落としやすくしているのです。「まだ動いている」ということは、「セキュリティが確保され、サポートされている」ということとは別物だからです。
EOLオープンソースソフトウェアとコンプライアンスの接点
ReactはJavaScriptベースのアプリケーションにバンドルされるため、レガシーなReactバージョンに存在する未修正の脆弱性は、それを依然として実行しているすべてのアプリケーションに組み込まれたままとなります。また、サポートが終了したオープンソースソフトウェアは、セキュリティ上の懸念となるだけでなく、コンプライアンス上の不備でもあり、監査人はこれを指摘事項として扱うケースが増えています。
SOC 2、PCI DSS v4.0、HIPAA、FedRAMP、DORA、およびEUのNIS2指令などの規格や規制では、直接的に、あるいはリスク管理に関する規定を通じて、ソフトウェアコンポーネントが継続的にサポートされ、既知の脆弱性が定められた期限内に修正されることが求められています。 パッチが適用されていないCVEを含むレガシー版のReactを明らかにするソフトウェア部品表(SBOM)は、自動監査において警告を引き起こします。また、是正措置の道筋が示されていない未解決の指摘事項については、監査人、顧客によるセキュリティレビュー、あるいは規制当局に対して説明することが困難となります。
HeroDevs NES for React:ギャップを埋める
HeroDevsの「Never-Ending Support」は、サポート終了となったオープンソースソフトウェアに対するセーフティネットを提供します。 当社のチームは、新たに公開されたCVEを監視し、サポート対象のコードベースにおける脆弱性を積極的に調査し、その結果を「HeroDevs 脆弱性ディレクトリ」で公開するとともに、安全なプライベートレジストリを通じて修正済みのパッケージを提供しています。認定CVE番号付与機関(CNA)として、HeroDevsはオープンソースソフトウェアの脆弱性を直接特定、解決、公開しています。
NES for React は、このモデルを React エコシステムへと拡張しています:
- React 16.x および 17.x 向けの CVE 修正:Reactおよびreact-domにおける、重大(Critical)な問題だけでなく、すべての深刻度レベルの脆弱性に対する修正。
- SLAの約束事項:深刻度に応じた契約上の是正措置のスケジュールを明確化し、コミュニティの善意に基づく「最善を尽くす」という姿勢に取って代わる。
- ドロップイン導入:コードの変更やアプリケーションのリファクタリングを必要とせず、npmレジストリを切り替えるだけの簡単な手順です。
- コンプライアンスへの適合:指定されたベンダー、確約されたSLA、およびサポート対象外の依存関係に関するスキャナーの検出結果や監査人の質問に対応できる、文書化されたパッチ適用履歴。
React 18 や 19 へのアップグレードは、なぜこれほど難しいのでしょうか?
Reactを最新バージョンにアップグレードすることは、依然として長期的なベストプラクティスであり、NESはその近代化への架け橋であり、それに代わるものではありません。しかし、エンタープライズグレードのアプリケーションの場合、アップグレードが直ちに実施されることはほとんどありません:
- 動作の変更:React 18 では、並行処理機能や自動バッチ処理など、新しいレンダリング動作が導入されました。これにより、既存のコンポーネントの動作が変わる可能性があります。大規模なコードベースの場合、安全に移行するには、数か月にわたるコーディングや品質保証(QA)作業が必要となることがよくあります。
- エコシステムへの依存関係:古いReactアプリケーションは、独自のアップグレード制約を持つコンポーネントライブラリやビルドツールに依存していることが多く、中には直接的なアップグレードパスがまったく存在しないものもあります。
- コストと機会費用:HeroDevsがエンタープライズチームと協業してきた経験によると、単一のコードベースを移行するには通常5万ドルから25万ドルの費用がかかり、アプリケーション1つにつき1~3か月の回帰テスト期間を要します。数十から数百ものReactアプリケーションを運用している組織は、それらを一夜にしてすべて移行することはできず、移行のためのスプリントを行うたびに、プロダクトロードマップからリソースが割かれることになります。
NES for Reactは、その時間を取り戻します。チームはまずセキュリティおよびコンプライアンス上のリスクを是正し、その後、ビジネスの優先順位に従って移行の順序を決定します。
レガシー版Reactのセキュリティリスク
バージョン19以前は、ReactのCVE登録件数は著しく少なかったため、それとは異なる印象を与えるのは誤解を招く恐れがある。その後、2025年12月、 React 19 Server Components に存在する、認証不要の遠隔コード実行(RCE)の重大な脆弱性(CVSS 10.0)である CVE-2025-55182 が、主要なクラウドおよびCDNプロバイダーから緊急アドバイザリを発出させ、48時間以内にCISAの「既知の悪用されている脆弱性」リストに掲載されました。これは、成熟し、厳重に監視されているフロントエンドのエコシステムでさえ、深刻な脆弱性にさらされる可能性があることを示しています。 このインシデントと、それがオープンソースのリスクについて何を明らかにしているかについては、『雷は二度落ちる:React/Next.js の重大なRCEがオープンソースのリスクについて明らかにしたこと』で取り上げました。一方、AIを活用した脆弱性発見により、業界全体での開示件数は加速しています。2025年には過去最多となる48,185件のCVEが公開され、2024年比で20.6%増加しており、2026年に入ってからもさらに多くの脆弱性が発見されています。
これまでのセキュリティ上の問題が少なかったからといって、将来の安全性が保証されるわけではありません。特に、AIによる脆弱性発見支援が普及している現在においてはなおさらです。React 16および17に関して言えば、現実的な疑問は単純明快です。これらのバージョンに影響を与える次の脆弱性が公開された際、パッチは提供されるのでしょうか? React用NESを利用すれば、その答えは「はい」です。HeroDevsは、SLAで定められた期間内にパッチを提供します。
JavaScriptスタックを1つのベンダーで一元管理
NES for Reactは、HeroDevsがすでに提供しているJavaScript製品群に加わるため、企業はフロントエンドおよびバックエンドのレガシーシステムを、単一のベンダー、契約、およびSLAの下で一元管理することができます。ReactアプリケーションがNext.js のサポート終了版で動作している場合は、Next.js のサポート終了日およびバージョンサポートのタイムラインに関する関連ガイドを参照し、2つのライフサイクルの関係についてご確認ください。
| 製品 | NES対応バージョン |
|---|---|
| React用NES | 16.x、17.x |
| Next.js向け NES | 12.3.5 |
| Node.js用NES | 12, 14, 16, 18, 20 |
| NES for Express | 3.x |
行動を起こす
もし貴組織が本番環境でReact 16またはReact 17を運用しており、すぐに移行できない場合でも、次回のReactのCVEは貴組織の移行ロードマップを待ってはくれません。予定外の移行と、パッチが適用されていない脆弱性のどちらかを選ばなければならないわけではありません。NES for Reactなら、貴組織が独自のスケジュールでモダン化を進める間も、必要な期間を通じてアプリケーションのセキュリティとコンプライアンスを確保し、稼働を維持し続けます。
Reactアプリケーションのセキュリティ対策については、HeroDevsチームまでお問い合わせください。また、ReactとNext.js 、Node.js、Express を1つの契約にまとめてご利用いただけるよう、個別のお見積もりも承っております。
よくある質問
1. NES for React はどのバージョンの React をサポートしていますか?
NES for React は、React 16.x および 17.x を対象としており、reactおよびreact-domパッケージを含みます。対象範囲には、すべての CVE 深刻度レベルにわたる脆弱性の修正が含まれており、契約に基づく SLA の下で提供されます。
2. Reactには公式のサポート終了日はありますか?
いいえ。Reactプロジェクトでは、正式なサポート終了日(EOL)を公表しておらず、LTS(長期サポート)プログラムも実施していません。積極的な開発や修正は、最新のメジャーバージョンに対して行われます。古いバージョンについては、コミュニティの判断により重大な修正が行われる場合がありますが、公式な約束や明確な範囲、対応の期限などは設けられていません。
3. NES for React を導入するには、コードの変更が必要ですか?
いいえ。NES for React は、既存の npm ワークフローを通じてインストールできる、そのまま置き換え可能なソリューションです。レジストリの設定を安全な NES レジストリに向け、依存関係のエントリを更新し、npm install を実行するだけです。アプリケーションのコード、ビルドパイプライン、テストは変更する必要がありません。
.png)
