Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Use CPE dictionary to improve recall on NVD API detector

クローズ
#274 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 2 日以内に返信

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
30/100
issue の種類
機能追加
明瞭さ
説明が足りない
活発さ
停滞
技術スタック
go
領域
cli, security

調査の方向性

Start in pkg/vuln/nvdapi/detector.go around lines 331-440 and review how CPEs are generated for NVD lookups. Then examine the NVD CPE Dictionary and determine whether dictionary entries should be reviewed manually or resolved automatically. Done means a decided dictionary-based approach improves CVE recall without undermining the current precision.

索引モデルが issue の本文から書いたものです。

説明

enhancement needs-triage
Context

Today, we search NVD for CVEs by constructing a CPE per package, and using that CPE for CVE lookups. The approach to this CPE generation was taken from Alpine's secfixes-tracker project, and extended slightly in some areas. Today the CPE generation code is here: https://github.com/wolfi-dev/wolfictl/blob/main/pkg/vuln/nvdapi/detector.go#L331-L440

This code helps the wolfictl adv discover command find new CVEs for our packages. While the precision of today's implementation is high, the recall is unverified and probably on the low side.

Idea

We could probably greatly improve recall by examining NVD's CPE Dictionary and trying to find dictionary entries that correspond to Wolfi packages. We could treat any hits in the dictionary as authoritative CPEs and avoid generating our own CPEs in that case.

We could extend today's CPE approach by manually reviewing the CPE dictionary, and that alone would be a win.

Bonus: It would be even cooler if we can automate this dictionary lookup, either by embedding some form of the dictionary in wolfictl, or by having wolfictl fetch and parse the dictionary at runtime.

主要言語
Go
スター
76
フォーク
84
平均マージ
2日 14時間
マージ済み PR(30日)
19

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

wolfi-dev/wolfictl のほかの issue

wolfi-dev/wolfictl の issue をすべて見る

似ている issue

Go の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。