Hi, I got a lot of false positives too but wonder why CPE coordinates are not able to use the gavtc coordinates, it sounds easy to do instead of using a bucket for all artifacts. I don't think artifacts should be able to give their own id since it would enable to bypass identified CVE or "steal CVE" for other purposes, but pushing to get a more precise system for CVE identifier sounds like the way to go IMHO.
Romain Manni-Bucau @rmannibucau <https://twitter.com/rmannibucau> | Blog <https://rmannibucau.metawerx.net/> | Old Blog <http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> | LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book <https://www.packtpub.com/application-development/java-ee-8-high-performance> Le mar. 15 mars 2022 à 13:26, Sebastian Stenzel <sebastian.sten...@gmail.com> a écrit : > thanks for your fast reply, Brian! > > If I'm not mistaken from a CPE's perspective each published artifact is > its own "product", no matter of whether it's being build as part of a > bigger project. Furthermore the CPEs don't get derived from Maven GAV (and > I would not force-derive anything if the value is omitted). While reverse > domain names are a de facto standard for Maven groupIds, just the 2nd level > domain name is usually used for CPE organizations. Take for example > com.google.guava:guava vs. cpe:2.3:a:google:guava. > > In cases where organization and product name are distinct, there is indeed > not much need to change anything. Difficulties arise when they overlap, > which is more common than one might think at first, e.g. org.apache:apache. > > Now if there is a CVE for a product that carries the same name as the > organization, let's say cpe:2.3:a:postgresql:postgresql, said tools will > report false positives for basically everything that has "postgresql" in > its name, such as the jdbc adapters. This could be avoided, if the jdbc jar > could introduce itself to the analyzer as cpe:2.3:a:postgresql:pgjdbc, so > it doesn't need to guess the library's name. > > > > On 15. Mar 2022, at 12:23, Brian Fox <bri...@infinity.nu> wrote: > > > > Hi Sebastian, > > > > The challenge is that CPE as a coordinate system doesn’t have enough > > specificity to match artifacts. It has organization/product/version and > > therefore doesn’t have the ability to capture sub module. This is what > > leads to most of the mismatch issues seen in CVE based tools (but not all > > tools have this problem). > > > > Since the coordinates for CPE don’t have enough parts, it’s not clear to > me > > how recording it in the Pom changes anything. Alas if the CPE was coded > > into the Pom, it almost certainly would be derived from the coordinates > > anyway and therefore really shouldn’t even have to be repeated. > > > > On Tue, Mar 15, 2022 at 7:12 AM Sebastian Stenzel < > > sebastian.sten...@gmail.com> wrote: > > > >> Hi, > >> > >> I'm new on this mailing list and this might not be the appropriate place > >> to discuss ideas to extend the pom format, so please redirect me to the > >> right place ;-) > >> > >> We've recently had a lot of struggles with both false positives and > false > >> negatives with a vulnerability scanner, as there is no reliable way to > >> derive a CPE string from Maven dependencies. This is mostly caused by > the > >> fact that groupIds and artifactIds can not be literally translated into > CPE > >> organization and product strings. In many cases, the product name is > also > >> the groupId (e.g. Jetty) with lots of artifacts being published under > this > >> groupId. Now a vulnerability in jetty:jetty might not affect > >> jetty:jetty-util, however probabilistic CPE matching algorithms will > still > >> report a false positive. > >> > >> Now one could argue that this is a problem of the vulnerability checker > (I > >> agree), however the only means they have is changing the confidence > >> threshold (which would cause false negatives, defying the purpose) or > >> maintaining an ever-growing list of false positives. Both are mere > >> workarounds. > >> > >> What could really solve this: Replacing those fuzzy matching algorithms, > >> if there was a reliable way to determine the CPE string from a library. > >> Ideally the library would carry this in its metadata itself. We could > add > >> custom properties to the pom.xml or the MANIFEST.MF, but I believe that > >> adoption would benefit if there was an official standard. > >> > >> Given that both published Maven artifacts as well as reported CVEs will > >> only grow over time and the importance of correctly identifying > >> vulnerabilities is no longer denied by anyone (at least not since > >> log4shell), I hope CPE strings will find their place in official package > >> metadata (not only in Maven). Can this be considered in the next pom > xsd? > >> > >> Cheers! > >> Sebastian > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org > >> For additional commands, e-mail: dev-h...@maven.apache.org > >> > >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org > For additional commands, e-mail: dev-h...@maven.apache.org > >