Skip to content

feat(scanner): split org.apache.activemq CPE by artifactId (Classic vs Artemis) - #749

Closed
haksungjang wants to merge 1 commit into
feat/maven-cpe-alternatesfrom
fix/activemq-artemis-cpe-split
Closed

feat(scanner): split org.apache.activemq CPE by artifactId (Classic vs Artemis)#749
haksungjang wants to merge 1 commit into
feat/maven-cpe-alternatesfrom
fix/activemq-artemis-cpe-split

Conversation

@haksungjang

Copy link
Copy Markdown
Member

Summary

  • org.apache.activemq is shared by two different NVD products: Artemis (artifactIds prefixed artemis-) and Classic ActiveMQ (everything else). Every Artemis artifact was getting the Classic product's apache:activemq CPE via the generic rule.
  • MAVEN_CPE_MAP entries can now be a dict keyed by artifactId prefix (longest wins, "" is the catch-all default) instead of a flat (vendor, product) tuple, so a shared groupId can route to more than one NVD product.
  • Also investigated org.glassfish for the same treatment: every org.glassfish/* artifact actually observed in the supplier corpus is a generic Jakarta/Java EE API jar (javax.annotation, jakarta.el, servlet-api, ...), not the GlassFish server itself, so there is no artifactId prefix to route on safely — left uncurated rather than risk attaching a GlassFish-server CVE to an unrelated API jar.

Stacked on #745/#748 (this depends on derive_cpe()'s alternates-tuple shape from #748).

Test plan

  • tests/test-postprocess.sh (533 assertions, 0 failed) — new F-1c8 section covers the artemis-* routing, the non-artemis fallback, idempotency, and confirms apache:artemis is a real distinct NVD product on the local grype DB
  • python3 -m py_compile docker/lib/enrich-maven-cpe.py
  • shellcheck --severity=warning tests/test-postprocess.sh (clean, matches CI's invocation)

…s Artemis)

org.apache.activemq is shared by two different NVD products: Artemis
(artifactIds prefixed "artemis-") and Classic ActiveMQ (everything
else). The generic rule already derives apache:activemq correctly
for Classic, but every Artemis artifact was getting the same wrong
CPE. MAVEN_CPE_MAP entries can now be a dict keyed by artifactId
prefix instead of a flat (vendor, product) tuple, with "" as the
catch-all default.

Investigated org.glassfish for the same treatment (also flagged as a
shared-groupId gap): every org.glassfish/* artifact actually observed
in the corpus is a generic Jakarta/Java EE API jar, not the GlassFish
server itself, so there is no artifactId prefix to route on safely.
Left uncurated.
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