CVEウォッチの脆弱性ページ自動生成(検証ガード・HowTo対応手順・関連CVE)
自作の「脆弱性対応ウォッチ」(cve.autoarticles.net)は、深刻度の高いCVEを日本語の実務目線でまとめる静的サイトだ。生成器は依存ゼロのNodeで、data/vulns.json から /cve/<id> ページを吐く。実務で使えるサイトにするための肝は、(1)載せるデータを厳しく検証する、(2)対応手順を HowTo として構造化する、(3)関連CVEを機械的に出す、の3点だ。
1. 検証ガードで「弱い/欠損データ」を弾く
このサイトが扱うのは High/Critical だけ。生成前に次を満たさないエントリはビルドから弾く。
severityが High/Critical 以外はNG。cvssScoreが 7.0 未満はNG。source(一次情報URL)が必須。cveId/title/summaryが必須で、cveIdの重複もNG。
「たくさん載せる」より「載せるものを正しく保つ」を優先している。捏造しないための一番の防波堤が、この入口のバリデーションだ。
2. remediation から HowTo を生成
各CVEの詳細ページには、確認できた対応手順だけを HowTo のステップとして出す。「アップデートする」を漠然と書くのではなく、確認済みのクラウド/OSごとの手順を順序立てて表示する。手順が確認できないものはステップにしない。
3. 関連CVEを機械的に出す
ベンダー・製品が一致する他のCVEを関連として並べる。IDでMapをつくればO(1)で引ける。読者が「同じ製品の他の穴」へ回遊でき、内部リンクも増える。詳細ページは Article+BreadcrumbList の構造化データを付ける。
実際に試す
依存ゼロで、検証ガード・HowTo生成・関連CVE算出の核をNodeで再現する。cve-build.js として保存し node cve-build.js(Node 18以上)。
1 | |
期待される出力:
- コンソールに
passed: [ 'CVE-2026-0001' ]と出る(CVSS 5.1・source空の2件目はガードで除外)。 public/cve/CVE-2026-0001.htmlが生成され、HowToの各ステップが<ol>と JSON-LD の両方に入る。- 関連CVEは同じ acme/web の他エントリがあれば列挙される(この例では通過が1件なので「なし」)。
実際の脆弱性ページと対応手順は 脆弱性対応ウォッチ で確認できる。
まとめ
- 入口で厳しく検証し、弱い/欠損データはビルドから弾く。
- 対応手順は確認できたものだけ
HowToにする。 - 関連CVEはベンダー/製品一致で機械的に出し、回遊と内部リンクを増やす。
CVEウォッチの脆弱性ページ自動生成(検証ガード・HowTo対応手順・関連CVE)
https://blog.hashito.biz/2026/07/12/cve-watch-vuln-page-generation-howto-related/