diff --git a/dependency-check-core/src/main/java/org/owasp/dependencycheck/analyzer/FalsePositiveAnalyzer.java b/dependency-check-core/src/main/java/org/owasp/dependencycheck/analyzer/FalsePositiveAnalyzer.java index 54bc21a04..9541a02de 100644 --- a/dependency-check-core/src/main/java/org/owasp/dependencycheck/analyzer/FalsePositiveAnalyzer.java +++ b/dependency-check-core/src/main/java/org/owasp/dependencycheck/analyzer/FalsePositiveAnalyzer.java @@ -429,19 +429,38 @@ public class FalsePositiveAnalyzer extends AbstractAnalyzer { || identifier.getValue().startsWith("cpe:/a:oracle:opensso_enterprise:") || identifier.getValue().startsWith("cpe:/a:sun:opensso_enterprise:") || identifier.getValue().startsWith("cpe:/a:sun:opensso:"))) { - final String newCpe = String.format("cpe:/a:sun:opensso_enterprise:%s", identifier.getValue().substring(22)); - final String newCpe2 = String.format("cpe:/a:oracle:opensso_enterprise:%s", identifier.getValue().substring(22)); - final String newCpe3 = String.format("cpe:/a:sun:opensso:%s", identifier.getValue().substring(22)); - final String newCpe4 = String.format("cpe:/a:oracle:opensso:%s", identifier.getValue().substring(22)); + final String[] parts = identifier.getValue().split(":"); + final int pos = parts[0].length() + parts[1].length() + parts[2].length() + parts[3].length() + 4; + final String newCpe = String.format("cpe:/a:sun:opensso_enterprise:%s", identifier.getValue().substring(pos)); + final String newCpe2 = String.format("cpe:/a:oracle:opensso_enterprise:%s", identifier.getValue().substring(pos)); + final String newCpe3 = String.format("cpe:/a:sun:opensso:%s", identifier.getValue().substring(pos)); + final String newCpe4 = String.format("cpe:/a:oracle:opensso:%s", identifier.getValue().substring(pos)); try { dependency.addIdentifier("cpe", newCpe, - String.format(CPEAnalyzer.NVD_SEARCH_URL, URLEncoder.encode(newCpe, "UTF-8"))); + String.format(CPEAnalyzer.NVD_SEARCH_URL, URLEncoder.encode(newCpe, "UTF-8")), + identifier.getConfidence()); dependency.addIdentifier("cpe", newCpe2, - String.format(CPEAnalyzer.NVD_SEARCH_URL, URLEncoder.encode(newCpe2, "UTF-8"))); + String.format(CPEAnalyzer.NVD_SEARCH_URL, URLEncoder.encode(newCpe2, "UTF-8")), + identifier.getConfidence()); dependency.addIdentifier("cpe", newCpe3, - String.format(CPEAnalyzer.NVD_SEARCH_URL, URLEncoder.encode(newCpe3, "UTF-8"))); + String.format(CPEAnalyzer.NVD_SEARCH_URL, URLEncoder.encode(newCpe3, "UTF-8")), + identifier.getConfidence()); dependency.addIdentifier("cpe", newCpe4, - String.format(CPEAnalyzer.NVD_SEARCH_URL, URLEncoder.encode(newCpe4, "UTF-8"))); + String.format(CPEAnalyzer.NVD_SEARCH_URL, URLEncoder.encode(newCpe4, "UTF-8")), + identifier.getConfidence()); + } catch (UnsupportedEncodingException ex) { + LOGGER.debug("", ex); + } + } + if ("cpe".equals(identifier.getType()) && identifier.getValue() != null + && identifier.getValue().startsWith("cpe:/a:apache:santuario_xml_security_for_java:")) { + final String[] parts = identifier.getValue().split(":"); + final int pos = parts[0].length() + parts[1].length() + parts[2].length() + parts[3].length() + 4; + final String newCpe = String.format("cpe:/a:apache:xml_security_for_java:%s", identifier.getValue().substring(pos)); + try { + dependency.addIdentifier("cpe", newCpe, + String.format(CPEAnalyzer.NVD_SEARCH_URL, URLEncoder.encode(newCpe, "UTF-8")), + identifier.getConfidence()); } catch (UnsupportedEncodingException ex) { LOGGER.debug("", ex); } diff --git a/dependency-check-core/src/main/resources/dependencycheck-base-suppression.xml b/dependency-check-core/src/main/resources/dependencycheck-base-suppression.xml index 2d45461b4..4c6a9d8cd 100644 --- a/dependency-check-core/src/main/resources/dependencycheck-base-suppression.xml +++ b/dependency-check-core/src/main/resources/dependencycheck-base-suppression.xml @@ -65,6 +65,7 @@ 9. mail_project is ruby library 10. ldap_project is part of type3 written in php 11. user import project is used in drupal (i.e. php) + 12. xml_sec is a C library for XML security ]]> .*(\.(dll|jar|ear|war|pom|nupkg|nuspec)|pom\.xml|package.json)$ cpe:/a:sandbox:sandbox @@ -81,6 +82,7 @@ cpe:/a:mail_project:mail cpe:/a:ldap_project:ldap cpe:/a:user_import_project:user_import + cpe:/a:xmlsec_project:xmlsec