What did you do? (required. The issue will be closed when not provided.)
Investigated JVN fetcher implementation and found that it does not consider CPE deprecation status.
What did you expect to happen?
JVN fetcher should handle CPE deprecation status appropriately, similar to NVD CPE Dictionary.
What happened instead?
JVN fetcher extracts CPEs from JVNDB vulnerability RSS feeds (Affected Configurations) and registers all of them as non-deprecated.
// fetcher/jvn/jvn.go
for c, t := range cpeURIs {
fetched.CPEs = append(fetched.CPEs, models.FetchedCPE{...})
}
// fetched.Deprecated is always empty
https://github.com/vulsio/go-cpe-dictionary/blob/master/fetcher/jvn/jvn.go#L52-L57
Problem
| Data Source |
Source Type |
Deprecation Considered |
| NVD CPE Dictionary |
Official CPE Dictionary |
✅ Yes |
| NVD CPE Match |
CVE Affected Configurations |
❌ No |
| JVN |
JVNDB Affected Configurations |
❌ No |
| Vuls |
vuls.json |
❌ No (manually defined) |
JVN does not provide a CPE Dictionary, so there is no way to determine deprecation status for CPEs fetched from JVN.
Possible Solutions
- Cross-reference with NVD CPE Dictionary - Only register JVN CPEs that exist in NVD CPE Dictionary (and use NVD's deprecation status)
- Mark JVN CPEs as "unknown" deprecation status - Requires schema changes
- Accept current behavior - Document that JVN CPEs do not have deprecation information
Related
- #XX (CPEs from NVD CPE Match are incorrectly registered as non-deprecated)
Configuration (MUST fill this out):
Hash : ____
go-cpe-dictionary fetch jvn
What did you do? (required. The issue will be closed when not provided.)
Investigated JVN fetcher implementation and found that it does not consider CPE deprecation status.
What did you expect to happen?
JVN fetcher should handle CPE deprecation status appropriately, similar to NVD CPE Dictionary.
What happened instead?
JVN fetcher extracts CPEs from JVNDB vulnerability RSS feeds (Affected Configurations) and registers all of them as non-deprecated.
https://github.com/vulsio/go-cpe-dictionary/blob/master/fetcher/jvn/jvn.go#L52-L57
Problem
JVN does not provide a CPE Dictionary, so there is no way to determine deprecation status for CPEs fetched from JVN.
Possible Solutions
Related
Configuration (MUST fill this out):
Go version (
go version):Go environment (
go env):go-cpe-dictionary environment:
Hash : ____