-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FP]: use a negative rule for cpe:2.3:a:sms:sms:*:*:*:*:*:*:*:* suppression matching for Maven artifacts #7251
Comments
Error parsing package url: pkg:maven/. Error: Error: Invalid purl: "name" is a required component Please correct the package URL - consider copying the package url from the HTML report. |
Failed to automatically evaluate the false positive. See: https://github.com/jeremylong/DependencyCheck/actions/runs/12322937891 |
Error parsing package url: pkg:maven/. Error: Error: Invalid purl: "name" is a required component Please correct the package URL - consider copying the package url from the HTML report. |
Failed to automatically evaluate the false positive. See: https://github.com/jeremylong/DependencyCheck/actions/runs/12322969493 |
I'm more than willing to do the PR here etc. if that's of any use. |
@FyiurAmron The sms:sms appears to be an issue only for proprietary libraries. Those are up to the end-users and prorietary vendors to fix with their own proprietary suppression files. Hosted-suppressions file deals with suppression of improper CPEs for publicly available/consumable libraries. |
@aikebah not really, bear with me.
Consider the default CPE matching rule: ~anything Is this enough or do I need to find more examples? If so, how many do you need to feel convinced here? For the reference, I'm not trying to prove you wrong for the sake of proving anything, I just want this to be sorted out finally. Need more proof, I can get you more proof. Need code, I can write the code. Need PR, I'll do the PR. I'm doing this as a part of my paid day job, and I'm paid by the hour :) |
@FyiurAmron those samples are enough... The reason for me responding 'appears to be an issue only for proprietary libs' is because we've not received any FP reports apart from the earlier FP report #2995 that was talking about company-internal libraries hitting it. Those cases fall under the "that's due to how dependencycheck works; for internal libraries you'll have to mitigate the FPs resulting from it with your own suppression filter" clause. Your response has given enough examples to warrant also adding your suggested sms fix to the list as there are multiple public libraries. Your initial report gave no such examples, leaving only the earlier reported private libraries as suspects. |
Miss-tagged the ticket reference, but a manual suppression has been pushed as f204335 |
@aikebah sure, my point here being mainly that any CPE with a common English word or tech name (be it the actual "sms" or "grpc" in this case, but it can obviously be just "test", "mail", "web", you name it) suffers from the very same problem. That's the point 3 in the reply/rant above. I am aware of the architectural limitations for depcheck due to how CPEs are created (i.e. the mapping to packages is done via string comparison and not precise co-ords), but I'd say that if a CPE with such "common" co-ords is reported as existing, it warrants at least a cursory investigation before a report is being rejected, on the above grounds (i.e. extremely high change of common real-life FPs existing, even if not reported explicitly). Obviously, even for relatively precise CPEs one can have the completely opposite case (e.g. some obscure private package that triggers a FP due to using a name of vulnerable tech as artifact name), but I'd say that it's the CPE form that should be the hint here - if it would be That aside, many thanks for your help here, both me and the vuln metrics of my projects will really appreciate the effort :) |
There will no doubt be more of such occasions, which is the unfortunate side-effect of having to use CPE and the many single common english words used for both vendor and product in the CPEs that the NIST NVD has used over time. For stronger bindings yielding fewer FPs one would have to resort to paid vulnerability scanners that can spend time and money building and maintaining their own proprietary mapping database from known library identifiers to vulnerabilities (or CPE coordinates). Given the known limitations ODC has served me surprisingly well, though your mileage may vary, as its accuracy is highly depending on the libraries that you actually encounter and the level of overlap of their evidences with vendor- and product strings in the entire set of application CPEs found in the NVD. In my day-job the rate of FPs due to improper CPEs is relatively low. Most of my encountered FP issues are on the 'large framework with multiple libs from which we use a non-vulnerable subset' and 'vendor-supported security patched library of an older open-source major/minor' (e.g. the At least these suppressions are now published in the hostedSuppressions, so your vuln metrics rate should improve on the next scan. |
Package URl
pkg:maven/
CPE
cpe:2.3:a:sms:sms::::::::
CVE
CVE-2005-2311
ODC Integration
{"label"=>"Gradle Plugin"}
ODC Version
11.1.1
Description
The CVE is due to https://bugs.gentoo.org/97187 ; it's 20 years old 2.1 base score advisory, and no maven package exists that physically can have it, thus an umbrella suppression for pkg:maven can be added.
Example rule:
The text was updated successfully, but these errors were encountered: