つみかさね

express v5.3.0

リリース日: 2026-10-10データソース: GitHub Releases, npm, endoflife.date
影響度スコア
45/ 100影響度: 中(qsの脆弱性修正を含む)
Breaking Changes0/40
新機能0/25
バグ修正10/20
セキュリティ12/15
依存関係10/15
ExpressNode.jsセキュリティCVEbackend

30秒で判断

  • 対応すべき人: Express 5.x/4.xを利用しており、クエリ文字列のパース(qs経由)を行っている方。とくに外部入力由来のクエリ文字列を扱うアプリケーション。
  • 対応不要な人: Expressを使用していない方、クエリ文字列のパース機能を使っていない、または別のパーサーに置き換えている方。
  • 確認コマンド: npm list express(または npm view express version)で現在のバージョンを確認。

この変更が意味すること

Express 5.3.0 は、HTTPヘッダーの仕様準拠を改善するバグ修正と、依存パッケージqsの脆弱性修正を含むリリースです。リリースノートに破壊的変更の記載はありません。

とくにqsの更新はCVE修正を伴うため、クエリ文字列を処理するアプリケーションでは優先的に取り込みを検討する価値があります。

主な変更点

res.send()のHTTPヘッダー不整合を修正

res.send()でContent-LengthとTransfer-Encodingの両ヘッダーが同時に付与されてしまう不具合が修正されました。HTTP仕様に準拠し、Transfer-Encodingヘッダーが存在する場合はContent-Lengthヘッダーを付与しないよう変更されています。なお、ETagの生成はこの変更の影響を受けません。

qsを^6.16.0に更新しCVEを修正

クエリ文字列パーサqsが^6.16.0に更新され、CVE-2026-2391(GHSA-w7fw-mjwx-w883)およびCVE-2026-82417が修正されました。

EOL / サポート状況

バージョンステータスEOL
5active未定
4active未定
3eol2015-07-05
2eol2012-07-01
1eol2011-03-01

現行の5系・4系はいずれもEOL予定日未定でメンテナンスが継続しています。3系以前はすでにEOLです。

開発者への影響

  1. HTTPヘッダーの仕様準拠が改善されるため、Transfer-Encodingを使うレスポンスで予期しないContent-Lengthヘッダーが付与される問題が解消します。
  2. qsの脆弱性修正を含むため、とくに外部入力由来のクエリ文字列を処理するアプリケーションでは早めの更新を推奨します。
  3. 破壊的変更の記載はないため、通常のバージョンアップとして取り込み可能です。

アップデート方法

# バージョン確認
npm view express version

# 更新
npm install express@5.3.0

アップデート後は、クエリ文字列を利用するエンドポイントとレスポンスヘッダーの挙動をテスト環境で確認してから本番へ適用してください。


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

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

export const eolData = [
  {"range": "5", "status": "active", "eolDate": null},
  {"range": "4", "status": "active", "eolDate": null},
  {"range": "3", "status": "eol", "eolDate": "2015-07-05"},
  {"range": "2", "status": "eol", "eolDate": "2012-07-01"},
  {"range": "1", "status": "eol", "eolDate": "2011-03-01"}
];

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

export const updateAdviceData = {
  "rating": 4,
  "maxRating": 5,
  "label": "qsの脆弱性修正を含むため早めのアップデートを推奨",
  "shouldUpdate": [
    "外部入力由来のクエリ文字列を処理している",
    "qs経由でクエリ文字列をパースしている"
  ],
  "canWait": [
    "Expressを使用していない",
    "クエリ文字列のパース機能を使っていない"
  ]
};

export const versionNavData = {
  "previousVersion": "5.2.1",
  "nextVersion": null
};

export const actionGuideData = {
  "evaluation": {
    "priority": "high",
    "actionRequired": "recommended"
  },
  "action": {
    "steps": [
      "テスト環境で5.3.0へのアップデートを検証する",
      "クエリ文字列を利用するエンドポイントの動作を確認する",
      "本番環境に適用する"
    ],
    "skipIf": [
      "Expressを使用していない",
      "クエリ文字列のパース機能を使っていない、または別のパーサーに置き換えている",
      "すでに5.3.0以降を利用している"
    ],
    "notes": ["外部入力由来のクエリ文字列を処理しているアプリケーションは優先的に対応してください"]
  },
  "impact": {
    "targets": ["Express利用者"],
    "scope": "wide"
  },
  "changeCategory": "セキュリティ修正"
};

アップデート判断

★★★★★
qsの脆弱性修正を含むため早めのアップデートを推奨

アップデートすべき場合

  • ●外部入力由来のクエリ文字列を処理している
  • ●qs経由でクエリ文字列をパースしている

様子見でよい場合

  • ●Expressを使用していない
  • ●クエリ文字列のパース機能を使っていない

EOL / サポート状況

express 5Active
express 4Active
express 3End of LifeEOL: 2015-07-05
express 2End of LifeEOL: 2012-07-01
express 1End of LifeEOL: 2011-03-01
Xでシェアはてブ
データソース: GitHub Releases API, npm Registry, endoflife.date (MIT License), NVD (NIST)
AI解説は Claude API により自動生成されています。正確性については原文リリースノートをご確認ください。