TL;DR (超概要)
Angular v21のAIツール(MCPサーバー、Web Codegen Scorer、厳選プロンプト)はAI生成コードをより安全にしてくれますが、それは最新バージョンを使っているチームに限った話です。
EOL(サポート終了)バージョンのAngularを使っている場合、AIコパイロットにはガードレールが存在せず、パッチが当たっていないCVEも放置されたままです。
v20以上へのアップグレードか、NES for Angularの導入を検討してください。
2025年後半から、Angularは過去6年間の合計を上回るほどの高深刻度CVEをわずか6ヶ月で公開するようになりました。XSRFトークンの漏洩、テンプレートコンパイラのXSS、サニタイズのバイパス、i18nの欠陥、SSRのリクエストフォージェリ…開示は2026年に入っても続き、Angularの初期バージョンまで影響するものまで出てきました。
長年、Angularは「成熟したソフトウェアは安全だ」という主張の根拠として挙げられてきたフレームワークでした。CVE件数が少なく、強力なサニタイズ機能が組み込まれており、Googleのバックアップがある。そのような前提はもはや通用しません。
同時期にリリースされたAngular v21は、状況をさらに複雑にするものをもたらしました。AIファーストの開発モデルです。組み込みのMCPサーバー、AIチューター、コード品質スコアラー、そしてAIエージェントをフレームワークの最新セキュリティプラクティスに沿って動作させるための厳選プロンプト群。2026年5月リリース予定のAngular v22では、AIランタイムデバッグツールやAIエージェント向けに設計された依存性注入グラフを加え、さらにこの方向性を強化しています。
これらのツールは開発を速くするだけではありません。AI生成コードをより安全にしてくれるのです。 ただし、それは最先端のバージョンを使っている場合に限ります。チームがEOL(サポート終了)バージョンのAngularを使っている場合、開発者はClaudeのようなAIコーディングアシスタントを使い続けながらも、Angular最新バージョンが提供するガードレールを一切持っていません。このギャップは、現実のセキュリティリスクにつながります。
Angular v21に組み込まれたAIツールチェーン
Angular CLIを最近触っていない方には驚きかもしれませんが、CLIは大きく変わっています。ng mcp を実行すると、Model Context Protocolサーバーが起動し、接続されたAIエージェント(Claude Code、Cursor、Gemini CLI、GitHub Copilotなど)がプロジェクト構造、Angularの公式ドキュメント、厳選されたベストプラクティスのコードサンプルに直接アクセスできるようになります。これは汎用的なオートコンプリートではありません。コンポーネントやサービス、最新のv21 APIを把握した上でコンテキストを意識して生成してくれる仕組みです。
v21のMCPサーバーには安定版と実験的なものを含む多数のツールが付属しています。コード品質とセキュリティに直接関わるものをいくつか紹介します。
-
get_best_practices— スタンドアロンコンポーネント、状態管理にSignals、コンストラクタインジェクションの代わりにinject()を使うといったAngularチームの最新コーディング標準を取得し、コード生成の前にAIへ渡します。 -
search_documentation—angular.devのライブドキュメントを検索するため、AIエージェントが18ヶ月前のトレーニングデータではなく最新のAPIリファレンスを参照して動作します。 -
modernize(実験的) — 既存のコードを分析し、デコレーターベースのパターンからシグナルベースのAPI、NgModulesからスタンドアロンコンポーネントへ移行するためのng generate migrationコマンドを出力します。
その他のツールとして、厳選コード例の検索(find_examples)、インタラクティブなガイド付き学習(ai_tutor)、ワークスペース認識、マイグレーション計画などもあります。詳細はAngular MCPドキュメントを参照してください。
実際の効果として、Angular v21のコードを書くAIエージェントは、1年前には不可能だった自己修正ができるようになっています。廃止済みのAPIをハルシネーションしたり、v17からスタンドアロンコンポーネントがデフォルトになったフレームワークに対してNgModuleのボイラープレートを生成したりする代わりに、まず公式の信頼できるソースを確認するようになっています。
「AIのコードは信頼できるのか?」に対するAngularの答え
Angularチームは、AI生成コードを作りやすくするだけでは満足しませんでした。その品質を測定するツールまで構築しました。
Web Codegen Scorerは2025年9月にオープンソース化されました。このツールは、AI生成コードに対してビルド成功、ランタイムエラー、アクセシビリティ準拠、セキュリティ脆弱性、Angularベストプラクティスへの準拠という観点で自動チェックを実行し、数値スコアとAIが成功・失敗した箇所の詳細な内訳を出力します。
このツールが重要な理由は、Google内のAngularチーム自身がAI生成コードの品質が十分に安定していないと判断し、専用の測定ツールを作らざるを得なかったという事実にあります。AngularのシニアエンジニアリングマネージャーであるSimona Cotinは、Angular + AI Developerイベントでこう説明しています。「AIのスピードはとても魅力的ですが、生成されるコードは必ずしも信頼できるものではありません。本番環境に使えないコードが出てくることもあります。」
Scorerが生まれたのは、Angularチーム自身がどのLLMが最も優れたAngularコードを生成するかについて合意できなかったからです。意見ではなくデータが必要でした。そのデータを手にしたチームは、LLMが陥りやすい具体的な失敗パターンを分析し、改善のイテレーションを回しました。
その結果、フィードバックループができ上がりました。Scorerのデータを使ってangular.dev/aiのベストプラクティスプロンプトを改善し、モデルがフレームワーク標準を満たすコードを安定して生成するまで再テストを繰り返すのです。Angularチームは、プロンプトを反復することでLLMのコンプライアンススコアを97以上に引き上げたと報告しています。ただし、それはAIがそれらのプロンプトにアクセスできている場合に限られます。
それがまさに落とし穴なのです。
バージョンのギャップ=セキュリティのギャップ
MCPサーバー、ベストプラクティスプロンプト、Scorerの品質ベンチマーク、modernizeマイグレーションツール、これらAI安全機能のすべてはAngular v20.2以上向けに構築されています。MCPサーバーはv20.2で導入されました。Signal Forms、デフォルトとなったゾーンレス変更検知、ARIAコンポーネントライブラリはすべてv21の機能です。
v20より古いバージョンを使っているチームは、これらのいずれにもアクセスできません。AIコパイロットは古いトレーニングデータに基づいてコードを生成し、Angularが1年かけて構築してきたガードレールを持っていない状態です。さらに、古いAngularバージョンはLLMが安全に扱うのが不得意なパターン(NgModules、Zone.jsベースの変更検知、takeUntilパターンを多用したRxJSヘビーなリアクティブフォーム)を多く使っており、AIが生成するコードと本番環境で安全なコードのギャップは、古いバージョンほど大きくなります。
これは理論上の話ではありません。2026年1月、AngularのテンプレートコンパイラにCVE-2026-22610(CVSS 8.5 High)が開示されました。この脆弱性により、攻撃者がSVGスクリプト属性のサニタイズをバイパスして任意のJavaScriptを実行できます。v19.2.18、v20.3.16、v21.0.7より前のすべてのAngularバージョンに影響します。3月にはCVE-2026-32635(CVSS 8.6 High)が発覚し、国際化が有効な場合にAngularのi18n属性バインディングがDomSanitizerを完全にバイパスします。これはAngular v17からv22プレリリースまでに影響しますが、注目すべき点としてAngular v17とv18はコミュニティパッチを受け取ることはありません。 アクティブサポート対象のバージョンを使っているチームには修正が届きましたが、EOLバージョンのチームには沈黙しか届きませんでした。
その上にAI生成コードを重ねてみてください。LLMはどのAngularバージョンにパッチが当たっていない脆弱性があるかを知りません。今生成したSVG要素へのhrefバインディングが、特定のバージョンのサニタイズをバイパスするとも知りません。MCPサーバーとWeb Codegen Scorerはこれらのパターンを検出できますが、それはそれらをサポートするバージョンを使っている場合だけです。
Angularバージョン別:AIツールで実際に何が使えるか
「バージョンのギャップ=セキュリティのギャップ」という主張は表にするとわかりやすくなります。各Angularバージョン帯でAIエージェントが利用できるものをまとめました。
| 機能 | v4–v16 | v17–v18 | v19 | v20 | v21+ |
|---|---|---|---|---|---|
MCPサーバー(ng mcp) |
✗ | ✗ | ✗ | v20.2以上 ✓ | ✓ |
| Web Codegen Scorerサポート | ✗ | ✗ | ✗ | ✗ | ✓ |
modernizeマイグレーションツール |
✗ | ✗ | ✗ | ✗ | ✓ |
| Signal Forms | ✗ | ✗ | ✗ | ✗ | ✓(実験的) |
| ゾーンレス変更検知(デフォルト) | ✗ | ✗ | ✗ | ✗ | ✓ |
| スタンドアロンコンポーネント(デフォルト) | ✗ | ✓ | ✓ | ✓ | ✓ |
| コミュニティセキュリティパッチ | ✗(EOL) | ✗(EOL) | 2026年5月まで | ✓ | ✓ |
この表で左に位置するほど、AIコーディングツールのガードレールが少なくなり、生成されるコードがフレームワークで保護できないパターンを持ち込む可能性が高くなります。
エンタープライズAngularチームへの示唆
不都合な現実として、AI支援開発の普及はバージョンを問わずすべてのAngularチームのリスクプロファイルを変えました。フレームワークの準備ができているかどうかに関わらず、開発者はAIコーディングアシスタントを使い始めています。Angular v21のAIファースト戦略は印象的であり、最新バージョンのチームに対してはAI生成コードを現在のセキュリティプラクティスに沿って保つツールでそのギャップを真に埋めてくれます。しかし古いバージョンを使っているチームにはそれが届きません。新旧Angularバージョン間のギャップはかつてないほど広がっています。
まず自分たちの状況を把握することから始めましょう。各プロジェクトルートでng versionを実行するか、package.jsonで@angular/coreを検索して現在のバージョンを確認してください。
# 単一プロジェクトのAngularバージョン確認
ng version
# ディレクトリ内の全リポジトリのAngularバージョン確認
grep -r '"@angular/core"' */package.json
アップグレードできる場合、Angularのアップデートガイドとマイグレーションスキーマティクスは大幅に改善されており、実験的なmodernize MCPツールが重労働の一部を自動化してくれます。Angular v19を使っている場合は、EOLが2026年5月19日に到来するため、今すぐv20またはv21へのアップグレードを始めてください。v20を使っている場合は以下を実行してください。
ng update @angular/core @angular/cli
アップグレードできない場合でも、現在使っているバージョンのセキュリティパッチは必要です。それがHeroDevsの提供するものです。AngularバージョンがEOLに達した後、HeroDevsはAngularチームの代わりにEOLバージョンへのセキュリティ修正のバックポートを行います(脆弱性によってはv4まで遡ることもあります)。NES for Angularは現在v4からv18をカバーしており、NES for Angular v19はEOL前の5月に向けてすでに提供開始されています。
これはEUサイバーレジリエンス法(CRA)の対象チームにとっても重要です。2026年9月11日以降、製造事業者は製品内で積極的に悪用されている脆弱性をENISAに24時間以内に報告する義務が生じます。既知のパッチ未適用CVEを持つEOL AngularをEU市場向け製品に使い続けることは、報告義務が発生するリスクを抱え続けることを意味します。
まとめ
Angular v21のAIツールは真に先進的です。MCPサーバー、Web Codegen Scorer、厳選プロンプト。これらは主要フレームワークがAI生成コードを本番水準に保つために行ってきた中で最も包括的な取り組みです。Angularの公式ロードマップによれば、この投資はさらに加速する予定です。チームは新しいエージェントスキル、追加のMCP機能、AI SDK、Web Codegen Scorerの継続的な改善にコミットしています。リリースサイクルを重ねるごとに最先端は前進し、同時に古いバージョンを使っているチームはさらに取り残されていきます。
もはや「開発者がAI支援開発を採用するかどうか」という問いは意味を持ちません。すでに採用されています。問いは「ガードレールがある状態でやっているか、ない状態でやっているか」です。古いバージョンのAngularを使っているチームの答えは、「ない状態」です。
セキュリティパッチを最新に保つこと(アップグレードによるか、延長サポートによるかを問わず)は、もはや単なるメンテナンス作業ではありません。AI支援開発の時代において、それはすべての基盤になっています。
v19以前を使っていてアップグレードが間に合わない場合、NES for Angularがセキュリティパッチの提供を継続します(v19はコミュニティサポート終了と同時に対象となります)。アップグレードパスやカバレッジプランについては、HeroDevsのチームにご相談ください。
よくある質問
Angular MCPサーバーとは何ですか?
Angular MCPサーバーはv20.2からAngular CLIに組み込まれたModel Context Protocolサーバーです。ng mcpを実行すると、AIコーディングエージェント(Cursor、Claude Code、Gemini CLI、GitHub Copilotなど)がAngularの公式ドキュメント、ベストプラクティスのコーディング標準、プロジェクトのワークスペース構造に直接アクセスできるローカルサーバーが起動します。AI生成コードが古いトレーニングデータではなく、現在のAngularパターンに従うことを保証する仕組みです。
MCPサーバーはどのAngularバージョンに対応していますか?
MCPサーバーはAngular v20.2で導入され、v21で完全に安定しました。Angular v19以前では利用できません。古いバージョンを使っているチームは、get_best_practices、search_documentation、modernizeを含むMCPサーバーのツール群を使用することができません。
AI生成のAngularコードは安全ですか?
バージョンによります。Angular v21にはMCPサーバー、Web Codegen Scorer、angular.dev/aiの厳選プロンプトが含まれており、AIエージェントが現在のセキュリティプラクティスに沿ったコードを生成できるよう支援します。GoogleのAngularチームは、これらのツールを使用した際のLLMコンプライアンススコアが97以上になったと報告しています。これらがない場合、AI生成コードは廃止済みパターンを使用したり脆弱性を持ち込んだりする可能性が高く、特に古いAngularバージョンでは顕著です。
EOLになっているAngularバージョンはどれですか?
2026年5月時点で、Angular v4からv18はEOL(サポート終了)となっており、コミュニティのセキュリティパッチを受け取れなくなっています。Angular v19は2026年5月19日にEOLを迎えます。全バージョンのリリース日とサポート期間の一覧は、Angular Version Historyを参照してください。
NES for Angularとは何ですか?
NES(Never-Ending Support)for AngularはHeroDevsが提供するサービスで、EOLのAngularバージョンに対してバックポートされたセキュリティ修正を提供します。現在v4からv18をカバーしており、NES for Angular v19は5月のEOL期限に先立ってすでに提供されています。HeroDevsは影響する範囲まで遡って脆弱性にパッチを当てるため、アップグレードができないチームも本番環境で使っているバージョンのセキュリティ修正を受け取ることができます。
最近Angularに影響したCVEはどれですか?
2025年後半から、Angularはテンプレートコンパイラ、i18nパイプライン、SSRエンジン、HTTPクライアントにわたって複数の高深刻度脆弱性を開示しています。2026年に入ってからも開示は続いており、CVE-2026-27970(CVSS 7.6 High、i18n ICUメッセージのXSS、改ざんされた翻訳ファイルによる任意のJavaScript実行を可能にする)やCVE-2026-41423(CVSS 8.7 High、@angular/platform-serverのSSRF脆弱性、AngularのSSRがバックスラッシュとプロトコル相対URLを正規化する方法を悪用し、未認証の攻撃者がサーバーサイドのHTTPリクエストの送信先を操作できる)が挙げられます。これらの脆弱性の影響を受けるEOL Angularバージョンはコミュニティパッチを受け取ることはありません。全リストについてはHeroDevs Angular脆弱性ディレクトリを参照してください。
関連記事
- CRA Reporting Obligations Start September 2026
- CVE-2026-22610 Exposes the Myth of 'Quiet' Framework Security in Angular
- CVE-2026-32635: Cross-Site Scripting (XSS) in Angular i18n Attribute Bindings
- CVE-2026-27970: Cross-Site Scripting (XSS) in Angular i18n ICU Messages
- CVE-2026-41423: SSRF in Angular Platform-Server via Backslash URL Normalization
原文: Angular EOL Security in 2026: AI Tooling Is Widening the Gap — HeroDevs