Skip to content

feat(redhat-csaf): add Hummingbird support and improve CSAF VEX resilience#655

Open
prarit wants to merge 3 commits into
aquasecurity:mainfrom
prarit:HUM-763
Open

feat(redhat-csaf): add Hummingbird support and improve CSAF VEX resilience#655
prarit wants to merge 3 commits into
aquasecurity:mainfrom
prarit:HUM-763

Conversation

@prarit

@prarit prarit commented Mar 28, 2026

Copy link
Copy Markdown
 Make the redhat-csaf parser configurable and more resilient to handle
the updated VEX feed that includes Hummingbird and other new products.

Parser improvements:
- Use external CPE mapping files (from repository-to-cpe.json) instead
  of extracting mappings from PURL qualifiers, which are not yet
  reliably populated
- Fall back to source RPM names when no binary RPM PURLs are available,
  since the feed sometimes only provides source package references
- Also check repository_url PURL qualifier as a fallback for
  repository_id
- Deduplicate rather than reject duplicate CVE entries, which occur in
  some advisories

Registration:
- Register redhatcsaf.NewVulnSrc() in the global All slice so it
  participates in database builds

Co-authored-by: Cursor <noreply@cursor.ai>
Signed-off-by: Prarit Bhargava <prarit@redhat.com>

@prarit prarit requested a review from knqyf263 as a code owner March 28, 2026 18:27
prarit and others added 3 commits March 30, 2026 14:04
The cleanup deletes all buckets after a build completes.  When building
with --only-update for a set of sources, some of the buckets in the
overall set are never created because the sources that populate them are
skipped.  Then cleanup fails with "bucket not found" even though the data
update completed.

Ignore bolt.ErrBucketNotFound.  This is safe to do since a bucket that
doesn't exist doesn't have to be cleaned up.

Signed-off-by: Prarit Bhargava <prarit@redhat.com>
GetVulnerability panics with a nil pointer dereference when the
vulnerability bucket does not exist in the database. This occurs
when building with --only-update for a subset of sources, since
the vulnerability bucket is populated by sources like NVD that
may have been skipped.

Return an empty Vulnerability instead of panicking when the bucket
is missing, consistent with how other read operations should handle
partial databases.

Signed-off-by: Prarit Bhargava <prarit@redhat.com>
…ience

Make the redhat-csaf parser configurable and more resilient to handle
the updated VEX feed that includes Hummingbird and other new products.

Parser improvements:
- Use external CPE mapping files (from repository-to-cpe.json) instead
  of extracting mappings from PURL qualifiers, which are not yet
  reliably populated
- Fall back to source RPM names when no binary RPM PURLs are available,
  since the feed sometimes only provides source package references
- Also check repository_url PURL qualifier as a fallback for
  repository_id
- Deduplicate rather than reject duplicate CVE entries, which occur in
  some advisories

Registration:
- Register redhatcsaf.NewVulnSrc() in the global All slice so it
  participates in database builds

Co-authored-by: Cursor <noreply@cursor.ai>
Signed-off-by: Prarit Bhargava <prarit@redhat.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant