つみかさね
A

Angular v22.2.3

リリース日: 2026-10-16データソース: GitHub Releases, npm, endoflife.date
影響度スコア
30/ 100影響度: 中(セキュリティ強化を含む)
Breaking Changes0/40
新機能0/25
バグ修正15/20
セキュリティ10/15
依存関係5/15
Angularセキュリティコンパイラフロントエンド

30秒で判断

  • 対応すべき人: Angular 22系を本番で利用しており、通常のパッチ適用サイクルに乗せたいチーム
  • 対応不要な人: Angularを使用していない。Angular 22系以外(v21以前など)を使用している。既にv22.2.3以降を利用している
  • 確認コマンド: ng version

この変更が意味すること

Angular v22.2.3は2026年10月14日にリリースされたパッチ版です。目立つ機能追加はありませんが、common モジュールでパラメータエンコーディングを強化し、プロトタイプポリューション(prototype pollution)クラスの攻撃に対する耐性を向上させるハードニング(防御強化)のコミットが含まれています。個別のCVE/GHSA番号は公開されていませんが、セキュリティ上意味のある変更です。

あわせて、Angularコンパイラの複数のバグ修正も含まれています。制御フロー(control flow)のコンテンツプロジェクション診断、テンプレート式の比較処理、セレクタ内コメントのスコープ処理など、開発時の警告・診断系の精度を上げる修正が中心です。

主な変更点

common: パラメータエンコーディングのハードニング

パラメータエンコーディング処理を強化し、プロトタイプポリューションに対する耐性を向上させました(fafec77b5d)。

compiler: control flowのコンテンツプロジェクション診断

@boundary ブロックを制御フロー構文のコンテンツプロジェクション診断でチェックするようになりました(54f3de517c)。

compiler: その他のバグ修正

ReadTemporaryExpr.isEquivalent のオペランド比較の修正、セレクタ内に配置されたコメントをスコープ対象外とする修正などが含まれます。

EOL / サポート状況

export const eolData = [
  {"range": "22", "status": "active", "eolDate": "2028-06-30"},
  {"range": "21", "status": "active", "eolDate": "2027-06-30"},
  {"range": "20", "status": "approaching", "eolDate": "2026-11-28"},
  {"range": "19", "status": "eol", "eolDate": "2026-05-19"},
  {"range": "18", "status": "eol", "eolDate": "2025-11-21"}
];
バージョン系統ステータスEOL日
22サポート中2028-06-30
21サポート中2027-06-30
20まもなくEOL2026-11-28
19EOL済み2026-05-19
18EOL済み2025-11-21

Angular 20系は2026年11月28日にEOLを迎えます。未移行の場合は22系へのアップグレードを計画してください。

開発者への影響

  1. プロトタイプポリューション対策が入るため、通常のパッチ適用サイクルで取り込むことを推奨します
  2. コンパイラの診断修正により、該当パターン(@boundary ブロック併用やセレクタ内コメント等)を使っているプロジェクトではビルド時の警告・挙動が変わる可能性があります
  3. Angular 20系を使用している場合、EOL(2026-11-28)が近いため22系への移行も合わせて検討してください

アップデート方法

ng update @angular/core@22 @angular/cli@22

データソース: GitHub Releases API, endoflife.date AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。

export const impactScoreData = {
  "total": 30,
  "level": "medium",
  "label": "影響度: 中(セキュリティ強化を含む)",
  "factors": [
    {"name": "Breaking Changes", "score": 0, "maxScore": 40},
    {"name": "新機能", "score": 0, "maxScore": 25},
    {"name": "バグ修正", "score": 15, "maxScore": 20},
    {"name": "セキュリティ", "score": 10, "maxScore": 15},
    {"name": "依存関係", "score": 5, "maxScore": 15}
  ]
};

export const breakingChangesData = {
  "count": 0,
  "items": []
};

export const updateAdviceData = {
  "rating": 3,
  "maxRating": 5,
  "label": "通常のパッチ適用サイクルで問題ありません(プロトタイプポリューション対策を含む)",
  "shouldUpdate": ["セキュリティ強化を優先したい場合", "Angular 22系を本番で利用している場合"],
  "canWait": ["次回定期メンテナンスでのまとめ更新で問題ない場合"]
};

export const versionNavData = {
  "previousVersion": "22.2.2",
  "nextVersion": "22.3.0-next.2"
};

export const actionGuideData = {
  "evaluation": {
    "priority": "medium",
    "actionRequired": "recommended"
  },
  "action": {
    "steps": [
      "Angular 22系のプロジェクトでv22.2.3へ更新する",
      "プロトタイプポリューション対策の挙動を確認する",
      "コンパイラの診断修正に関連するパターンを使用している場合はビルドを再確認する"
    ],
    "skipIf": [
      "Angularを使用していない",
      "Angular 22系以外のバージョンを使用している(例: v21以前)",
      "既にv22.2.3以降を利用している"
    ],
    "notes": ["個別のCVE/GHSA番号は本リリースでは明示されていませんが、プロトタイプポリューション対策のコミットが含まれます"]
  },
  "impact": {
    "targets": ["Angular 22系利用者"],
    "scope": "partial"
  },
  "changeCategory": "セキュリティ修正"
};

アップデート判断

★★★★★
通常のパッチ適用サイクルで問題ありません(プロトタイプポリューション対策を含む)

アップデートすべき場合

  • ●セキュリティ強化を優先したい場合
  • ●Angular 22系を本番で利用している場合

様子見でよい場合

  • ●次回定期メンテナンスでのまとめ更新で問題ない場合
Xでシェアはてブ
データソース: GitHub Releases API, npm Registry, endoflife.date (MIT License), NVD (NIST)
AI解説は Claude API により自動生成されています。正確性については原文リリースノートをご確認ください。