|
|
|
|
@@ -17,6 +17,7 @@
|
|
|
|
|
*/
|
|
|
|
|
package org.owasp.dependencycheck.dependency;
|
|
|
|
|
|
|
|
|
|
import java.util.Set;
|
|
|
|
|
import org.junit.After;
|
|
|
|
|
import org.junit.AfterClass;
|
|
|
|
|
import static org.junit.Assert.assertEquals;
|
|
|
|
|
@@ -31,7 +32,7 @@ import org.owasp.dependencycheck.BaseTest;
|
|
|
|
|
*
|
|
|
|
|
* @author Jens Hausherr
|
|
|
|
|
*/
|
|
|
|
|
public class VulnerabilityTest extends BaseTest {
|
|
|
|
|
public class VulnerabilityTest extends BaseTest {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Test of equals method, of class VulnerableSoftware.
|
|
|
|
|
@@ -49,90 +50,112 @@ public class VulnerabilityTest extends BaseTest {
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void testDpulicateVersionsWithPreviousVersion() {
|
|
|
|
|
Vulnerability obj = new Vulnerability();
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:4.1.0",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:4.1.1",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:4.1.2",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:4.1.10",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:4.1.11",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:4.1.12",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:4.1.13",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:4.1.14",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:4.1.15",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:4.1.16",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:4.1.17",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:4.1.18",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:4.1.19",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:4.1.20",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:4.1.21",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:4.1.22",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:4.1.23",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.0",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.0:alpha",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.1",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.10",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.10a",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.11",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.12",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.13",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.15",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.19",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.1a",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.2",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.3",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.4",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.5.0.21",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.6",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.9",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.21",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.22",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.23",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.24",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.24a",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.25",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.30",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.32",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.33",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.36",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.37",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.38",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.3a",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.41",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.42",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.44",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.45",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.4a",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.50",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.51",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.52",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.54",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.0.56",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.1.23a","1");
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.1.3",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.1.4",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.1.5",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.1.5a",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.1.6",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.1.7",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.1.9",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.1.11",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.1.12",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.1.14",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.1.15",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.1.16",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.1.17",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.1.18",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.1.19",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.1.20",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.1.21",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.1.22",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.1.23",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:5.1.23a",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:6.0.0",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:6.0.1",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:6.0.2",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:6.0.3",null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:mysql:mysql:6.0.4",null);
|
|
|
|
|
assertEquals(82, obj.getVulnerableSoftware().size());
|
|
|
|
|
Vulnerability obj = new Vulnerability();
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.0-103%28a%29", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.0-118", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.3.132", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.12-200", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.2-127", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.9", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.10", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.11", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.12-118", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.4-143", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.0-109", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.6-156", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.4", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.3", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.10-186", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.6", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.5", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.5-146", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.8", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.7", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.2", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.0.2", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.1", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.8-177", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.0.1", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.0.0", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.7-168", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.0-103", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.11-197", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.9-178", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.12-200", "1");
|
|
|
|
|
assertEquals(31, obj.getVulnerableSoftware().size());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void testSoftwareSorting() {
|
|
|
|
|
Vulnerability obj = new Vulnerability();
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.0-103%28a%29", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.0-118", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.3.132", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.12-200", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.2-127", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.9", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.10", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.11", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.12-118", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.4-143", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.0-109", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.6-156", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.4", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.3", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.10-186", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.6", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.5", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.5-146", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.8", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.7", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.2", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.0.2", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.1", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.8-177", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.0.1", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.0.0", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.7-168", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.0-103", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.11-197", null);
|
|
|
|
|
obj.addVulnerableSoftware("cpe:/a:hp:system_management_homepage:2.1.9-178", null);
|
|
|
|
|
|
|
|
|
|
Set<VulnerableSoftware> software = obj.getVulnerableSoftware();
|
|
|
|
|
VulnerableSoftware vs[] = software.toArray(new VulnerableSoftware[software.size()]);
|
|
|
|
|
|
|
|
|
|
assertTrue("cpe:/a:hp:system_management_homepage:2.0.0".equals(vs[0].getName()));
|
|
|
|
|
assertTrue("cpe:/a:hp:system_management_homepage:2.0.1".equals(vs[1].getName()));
|
|
|
|
|
assertTrue("cpe:/a:hp:system_management_homepage:2.0.2".equals(vs[2].getName()));
|
|
|
|
|
assertTrue("cpe:/a:hp:system_management_homepage:2.1".equals(vs[3].getName()));
|
|
|
|
|
assertTrue("cpe:/a:hp:system_management_homepage:2.1.0-103".equals(vs[4].getName()));
|
|
|
|
|
assertTrue("cpe:/a:hp:system_management_homepage:2.1.0-103%28a%29".equals(vs[5].getName()));
|
|
|
|
|
assertTrue("cpe:/a:hp:system_management_homepage:2.1.0-109".equals(vs[6].getName()));
|
|
|
|
|
assertTrue("cpe:/a:hp:system_management_homepage:2.1.0-118".equals(vs[7].getName()));
|
|
|
|
|
assertTrue("cpe:/a:hp:system_management_homepage:2.1.1".equals(vs[8].getName()));
|
|
|
|
|
assertTrue("cpe:/a:hp:system_management_homepage:2.1.2".equals(vs[9].getName()));
|
|
|
|
|
assertTrue("cpe:/a:hp:system_management_homepage:2.1.2-127".equals(vs[10].getName()));
|
|
|
|
|
assertTrue("cpe:/a:hp:system_management_homepage:2.1.3".equals(vs[11].getName()));
|
|
|
|
|
assertTrue("cpe:/a:hp:system_management_homepage:2.1.3.132".equals(vs[12].getName()));
|
|
|
|
|
assertTrue("cpe:/a:hp:system_management_homepage:2.1.4".equals(vs[13].getName()));
|
|
|
|
|
assertTrue("cpe:/a:hp:system_management_homepage:2.1.4-143".equals(vs[14].getName()));
|
|
|
|
|
assertTrue("cpe:/a:hp:system_management_homepage:2.1.5".equals(vs[15].getName()));
|
|
|
|
|
assertTrue("cpe:/a:hp:system_management_homepage:2.1.5-146".equals(vs[16].getName()));
|
|
|
|
|
assertTrue("cpe:/a:hp:system_management_homepage:2.1.6".equals(vs[17].getName()));
|
|
|
|
|
assertTrue("cpe:/a:hp:system_management_homepage:2.1.6-156".equals(vs[18].getName()));
|
|
|
|
|
assertTrue("cpe:/a:hp:system_management_homepage:2.1.7".equals(vs[19].getName()));
|
|
|
|
|
assertTrue("cpe:/a:hp:system_management_homepage:2.1.7-168".equals(vs[20].getName()));
|
|
|
|
|
assertTrue("cpe:/a:hp:system_management_homepage:2.1.8".equals(vs[21].getName()));
|
|
|
|
|
assertTrue("cpe:/a:hp:system_management_homepage:2.1.8-177".equals(vs[22].getName()));
|
|
|
|
|
assertTrue("cpe:/a:hp:system_management_homepage:2.1.9".equals(vs[23].getName()));
|
|
|
|
|
assertTrue("cpe:/a:hp:system_management_homepage:2.1.9-178".equals(vs[24].getName()));
|
|
|
|
|
assertTrue("cpe:/a:hp:system_management_homepage:2.1.10".equals(vs[25].getName()));
|
|
|
|
|
assertTrue("cpe:/a:hp:system_management_homepage:2.1.10-186".equals(vs[26].getName()));
|
|
|
|
|
assertTrue("cpe:/a:hp:system_management_homepage:2.1.11".equals(vs[27].getName()));
|
|
|
|
|
assertTrue("cpe:/a:hp:system_management_homepage:2.1.11-197".equals(vs[28].getName()));
|
|
|
|
|
assertTrue("cpe:/a:hp:system_management_homepage:2.1.12-118".equals(vs[29].getName()));
|
|
|
|
|
assertTrue("cpe:/a:hp:system_management_homepage:2.1.12-200".equals(vs[30].getName()));
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|