30秒で判断
- 対応すべき人: NestJSのv11系(
@nestjs/coreのdist-tagではlegacy)を使っているプロジェクト - 対応不要な人: すでにv12系(最新は
12.2.0)へ移行済みのプロジェクト/v11系を使っていないプロジェクト - 確認コマンド:
npm ls @nestjs/core
この変更が意味すること
NestJS v11.2.8は、モニタリング上はmajorに分類されていますが、実際の内容はv11系(npm dist-tagではlegacy)に対するバグ修正のバックポートです。現在のNestJSの最新メジャーはv12.2.0で、v11.2.8はそれより古い系列向けのメンテナンスリリースにあたります。破壊的変更は確認できません。
修正の中心は入力検証とプロトタイプ汚染対策です。ParseArrayPipeが数値以外の要素やネストした配列を誤って通してしまう問題、プロトタイプキーを取り除く処理が配列のholeを見落とす問題、リクエストデータに含まれるfalsyなconstructorキーを除去する処理などが修正されています。
v11系を本番で使っているチームは、入力検証の抜け漏れ対策として更新を検討する価値があります。
主な変更点
ParseArrayPipeの検証強化
items: Number指定時に数値以外の要素を拒否、またネストした配列も拒否するようになりました。
プロトタイプ汚染対策
配列のholeをスキップしてプロトタイプキーを除去する処理や、リクエストデータからfalsyなconstructorキーを除去する処理が追加されています。
DefaultValuePipeの参照共有バグ修正
配列・オブジェクトのデフォルト値をコピーするようになり、リクエスト間でデフォルト値の参照が共有されるバグを修正しました。
ログの肥大化対策
JSONログを100万文字で切り詰めるようになりました。
EOL / サポート状況
NestJSはendoflife.dateのトラッキング対象外のため、公式のサポートポリシーはGitHubリリースページでご確認ください。npmのdist-tagではlegacy: 11.2.8、latest: 12.2.0、old: 10.4.19となっており、v11系は現行の最新メジャーより1世代前の系列です。
開発者への影響
- v11系を使っている場合、入力検証の抜け漏れ(配列検証・プロトタイプ汚染関連)が修正されるため、更新する価値があります。
- v12系へ移行済みの場合は影響ありません。
- 破壊的変更は確認されていないため、通常のパッチ更新と同様の検証で適用できます。
アップデート方法
npm install @nestjs/core@11.2.8 @nestjs/common@11.2.8
v12系への移行を検討している場合は、公式マイグレーションガイドを参照してください。
データソース: GitHub Releases API, npm Registry AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
export const impactScoreData = {
"total": 23,
"level": "low",
"label": "影響度: 低",
"factors": [
{"name": "Breaking Changes", "score": 0, "maxScore": 40},
{"name": "新機能", "score": 0, "maxScore": 25},
{"name": "バグ修正", "score": 15, "maxScore": 20},
{"name": "セキュリティ", "score": 8, "maxScore": 15},
{"name": "依存関係", "score": 0, "maxScore": 15}
]
};
export const eolData = [];
export const breakingChangesData = {
"count": 0,
"items": []
};
export const updateAdviceData = {
"rating": 2,
"maxRating": 5,
"label": "急ぎではないが、入力検証強化のため更新を推奨",
"shouldUpdate": ["v11系でプロトタイプ汚染対策を強化したい場合", "ParseArrayPipeの検証漏れを修正したい場合"],
"canWait": ["v12系へ移行済みの場合", "破壊的変更がないため急ぎでない場合"]
};
export const versionNavData = {
"previousVersion": null,
"nextVersion": null
};
export const actionGuideData = {
"evaluation": {
"priority": "medium",
"actionRequired": "recommended"
},
"action": {
"steps": [
"テスト環境でv11.2.8への更新を検証する",
"本番環境に適用する",
"ParseArrayPipeやDefaultValuePipeを使っている箇所の動作確認を実施する"
],
"skipIf": [
"NestJSを使用していない",
"すでにv12系へ移行済み",
"ParseArrayPipe・DefaultValuePipeを使用していない"
],
"notes": ["モニタリング上はmajorに分類されていますが、破壊的変更は確認できません"]
},
"impact": {
"targets": ["NestJS v11系利用者"],
"scope": "partial"
},
"changeCategory": "バグ修正"
};
