@@ -87,12 +87,22 @@ func (c Config) Update() error {
8787 return nil
8888}
8989
90- func (c Config ) saveCVEPerPkg (dirName , pkgName , cveID string , data interface {} ) error {
90+ func (c Config ) saveCVEPerPkg (dirName , pkgName , cveID string , cve PhotonCVE ) error {
9191 if cveID == "" {
9292 log .Printf ("CVE-ID is empty" )
9393 return nil
9494 }
9595
96+ // Only skip unknown CVE entries (IDs starting with "UNK-" or "Re") that lack version information.
97+ // Valid CVEs (e.g., "CVE-...") with both ResVer and AffVer as "NA" are still saved,
98+ // as their status (e.g., "Not Affected") may be meaningful for reporting.
99+ if (strings .HasPrefix (cveID , "UNK-" ) || cveID == "Re" ) &&
100+ (cve .ResVer == "" || cve .ResVer == "NA" ) &&
101+ (cve .AffVer == "" || cve .AffVer == "NA" ) {
102+ log .Printf ("Skip unknown CVE entry: %s" , cveID )
103+ return nil
104+ }
105+
96106 s := strings .Split (cveID , "-" )
97107 if len (s ) != 3 {
98108 log .Printf ("invalid CVE-ID: %s" , cveID )
@@ -101,7 +111,7 @@ func (c Config) saveCVEPerPkg(dirName, pkgName, cveID string, data interface{})
101111
102112 pkgDir := filepath .Join (c .VulnListDir , dirName , pkgName )
103113 fileName := fmt .Sprintf ("%s.json" , cveID )
104- if err := utils .WriteJSON (c .AppFs , pkgDir , fileName , data ); err != nil {
114+ if err := utils .WriteJSON (c .AppFs , pkgDir , fileName , cve ); err != nil {
105115 return xerrors .Errorf ("failed to write file: %w" , err )
106116 }
107117 return nil
0 commit comments