Vulnerability demo research
Hello!
I’ve done a bit more work on some commands that could be useful for researching vulnerabilities that might be good demo targets.
Local Requirements
The first thing you might want to look at is the known exploited vulnerabilities catalog from cisa.
curl -o kev.json https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json
You also want jq installed and available on path so you can explore the kev json document.
Because we’re testing syft/grype also be sure to have those tools installed:
Install syft
Install grype
Reducing the surface area
Now that we have our data and tools let’s take a look at which entries might be of interest to syft and grype.
What vendors are we looking at?
jq '.vulnerabilities[].vendorProject' < kev.json | sort | uniq -c | sort -nr | awk '$1 > 9'
The above command takes all entries in the kev.json
and sorts for vendors with > 9 entries. This is a little arbitrary, but we can do analysis on this side first and then focus on the more horizontal set of single vendor entries as a separate exercise.
286 "Microsoft"
75 "Apple"
71 "Cisco"
67 "Adobe"
58 "Google"
33 "Oracle"
32 "Apache"
19 "VMware"
19 "D-Link"
17 "Ivanti"
16 "Citrix"
13 "Linux"
13 "Fortinet"
12 "Atlassian"
11 "Samsung"
11 "QNAP"
11 "Mozilla"
10 "Trend Micro"
10 "SAP"
10 "Android"
Let’s take a look at the Linux, Atlassian, and Apache entries. We know syft and grype do well when scanning containers so this gives us a good spread of potential vendor/os software packages to investigate,
What known exploited vulnerabilities exist for my chosen subset?
jq -r '.vulnerabilities[] | [.cveID, .dateAdded, .vendorProject, .vulnerabilityName] | @tsv' < kev.json | rg -i -e apache -e linux -e atlassian | sort
The above command will give a pretty long list. Let’s try and build some windows to explore the data. We can grow or shrink the dataAdded filter as needed.
Note that dateAdded
field in this next command is not when the CVE was issued. It’s when the CVE was added to the known exploited vulnerabilities list.
jq -r '.vulnerabilities[] | select(.dateAdded >= "2022-05-30" and .dateAdded <= "2024-05-30") | [.cveID, .dateAdded, .vendorProject, .vulnerabilityName] | @tsv' < kev.json | rg -i -e apache -e linux -e atlassian
CVE-2022-26134 2022-06-02 Atlassian Atlassian Confluence Server and Data Center Remote Code Execution Vulnerability
CVE-2022-26138 2022-07-29 Atlassian Atlassian Questions For Confluence App Hard-coded Credentials Vulnerability
CVE-2022-24706 2022-08-25 Apache Apache CouchDB Insecure Default Initialization of Resource Vulnerability
CVE-2022-24112 2022-08-25 Apache Apache APISIX Authentication Bypass Vulnerability
CVE-2013-6282 2022-09-15 Linux Linux Kernel Improper Input Validation Vulnerability
CVE-2013-2596 2022-09-15 Linux Linux Kernel Integer Overflow Vulnerability
CVE-2013-2094 2022-09-15 Linux Linux Kernel Privilege Escalation Vulnerability
CVE-2022-36804 2022-09-30 Atlassian Atlassian Bitbucket Server and Data Center Command Injection Vulnerability
CVE-2021-3493 2022-10-20 Linux Linux Kernel Privilege Escalation Vulnerability
CVE-2022-33891 2023-03-07 Apache Apache Spark Command Injection Vulnerability
CVE-2023-0266 2023-03-30 Linux Linux Kernel Use-After-Free Vulnerability
CVE-2021-45046 2023-05-01 Apache Apache Log4j2 Deserialization of Untrusted Data Vulnerability
CVE-2014-0196 2023-05-12 Linux Linux Kernel Race Condition Vulnerability
CVE-2010-3904 2023-05-12 Linux Linux Kernel Improper Input Validation Vulnerability
CVE-2016-8735 2023-05-12 Apache Apache Tomcat Remote Code Execution Vulnerability
CVE-2023-33246 2023-09-06 Apache Apache RocketMQ Command Execution Vulnerability
CVE-2023-22515 2023-10-05 Atlassian Atlassian Confluence Data Center and Server Broken Access Control Vulnerability
CVE-2023-46604 2023-11-02 Apache Apache ActiveMQ Deserialization of Untrusted Data Vulnerability
CVE-2023-22518 2023-11-07 Atlassian Atlassian Confluence Data Center and Server Improper Authorization Vulnerability
CVE-2023-27524 2024-01-08 Apache Apache Superset Insecure Default Initialization of Resource Vulnerability
CVE-2023-22527 2024-01-24 Atlassian Atlassian Confluence Data Center and Server Template Injection Vulnerability
CVE-2020-17519 2024-05-23 Apache Apache Flink Improper Access Control Vulnerability
CVE-2024-1086 2024-05-30 Linux Linux Kernel Use-After-Free Vulnerability
Another useful command here is filtering for negative matches. We know there are some limitations currently on how syft works when scanning windows targets so what does our list look like if we filter that out?
Here is a command that shows everything added to the known exploited vulnerabilities list since March 2024 that is not labeled as a Microsoft vendored product
jq -r '.vulnerabilities[] | select(.dateAdded >= "2024-03-01") | [.cveID, .dateAdded, .vendorProject, .vulnerabilityName] | @tsv' < kev.json | rg -i -v microsoft
You can even sort by CVE ID rather than date added to kev by piping sort at the end of this
jq -r '.vulnerabilities[] | select(.dateAdded >= "2024-03-01") | [.cveID, .dateAdded, .vendorProject, .vulnerabilityName] | @tsv' < kev.json | rg -i -v microsoft | sort
To explore a single vulnerability and it’s details we can use this jq command:
jq -r '.vulnerabilities[] | select(.cveID == "CVE-2023-27524") | to_entries | .[] | "\(.key): \(.value)"' kev.json
cveID: CVE-2023-27524
vendorProject: Apache
product: Superset
vulnerabilityName: Apache Superset Insecure Default Initialization of Resource Vulnerability
dateAdded: 2024-01-08
shortDescription: Apache Superset contains an insecure default initialization of a resource vulnerability that allows an attacker to authenticate and access unauthorized resources on installations that have not altered the default configured SECRET_KEY according to installation instructions.
requiredAction: Apply mitigations per vendor instructions or discontinue use of the product if mitigations are unavailable.
dueDate: 2024-01-29
knownRansomwareCampaignUse: Unknown
notes: https://lists.apache.org/thread/n0ftx60sllf527j7g11kmt24wvof8xyk
Leveraging the docker API for fast demo results
This python script will allow you to generate an SBOM for the top n images by pull count on dockerhub (n is 20 here). It saves them under a folder called (popular_sbom). There might be some errors produced if the image manifest doesn’t have an image pushed for your local computer cpu architecture:
#!/usr/bin/env python3
# usage: ./popular-docker.py -n 100
# generates an sbom for the top 100 images in docker hub and places them at popular_sbom/
import os
import requests
import subprocess
import json
import argparse
def get_latest_tag(repository):
try:
response = requests.get(f"https://hub.docker.com/v2/repositories/library/{repository}/tags/?page_size=1")
if response.status_code == 200:
data = response.json()
tags = data.get("results", [])
if tags:
return tags[0]["name"]
print(f"Failed to retrieve tags for repository '{repository}'. Using 'latest' tag.")
return "latest"
except Exception as e:
print(f"Error retrieving tags for repository '{repository}': {e}")
return "latest"
def generate_sbom(repository, tag):
try:
image_with_tag = f"{repository}:{tag}"
# Run syft command to generate SBOM
output = subprocess.check_output(["syft", "-o", "json", image_with_tag], stderr=subprocess.STDOUT, text=True)
sbom_data = json.loads(output)
return sbom_data
except subprocess.CalledProcessError as e:
print(f"Error generating SBOM for image {repository}:{tag}: {e.output}")
return None
def save_sbom(repository, tag, sbom_data):
if sbom_data:
folder_name = "popular_sbom"
if not os.path.exists(folder_name):
os.makedirs(folder_name)
file_name = os.path.join(folder_name, f"{repository}_{tag}_sbom.json")
with open(file_name, "w") as f:
json.dump(sbom_data, f, indent=2)
print(f"SBOM saved to {file_name}.")
else:
print(f"SBOM data is invalid. Cannot save to file.")
def list_top_images(n=10):
url = "https://hub.docker.com/v2/repositories/library/?page_size=100"
response = requests.get(url)
if response.status_code != 200:
print("Failed to fetch data from Docker Hub.")
return
data = response.json()
results = data.get("results", [])
# Extract image names and pull counts
image_pull_counts = {}
for result in results:
image_name = result.get("name")
pull_count = result.get("pull_count", 0)
if image_name:
image_pull_counts[image_name] = pull_count
# Sort images by pull counts and list top n images
top_images = sorted(image_pull_counts.items(), key=lambda x: x[1], reverse=True)[:n]
for i, (repository, _) in enumerate(top_images, 1):
print(f"Finding latest tag for repository {repository}...")
latest_tag = get_latest_tag(repository)
print(f"Generating SBOM for image {repository}:{latest_tag}...")
sbom_data = generate_sbom(repository, latest_tag)
save_sbom(repository, latest_tag, sbom_data)
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Generate SBOMs for top Docker images")
parser.add_argument("-n", "--number", type=int, default=10, help="Number of top Docker images to process")
args = parser.parse_args()
list_top_images(args.number)
After using the above python script you can use the following bash script to check each sbom from the top 20 images
#!/bin/bash
# parse_popular_sbom.sh
folder_path=popular_sbom
# Check if the folder exists
if [ -d "$folder_path" ]; then
# Loop through each file in the folder
for file in $folder_path/*.json; do
echo "Processing SBOM file: $file"
cat "$file" | grype --by-cve | ./kev-bootstrap.py kev.json
done
else
echo "Folder '$folder_path' not found."
fi
Note: To use the above script you need the kev-bootstrap.py
locally which filters the results. It needs a local path to the kev.json downloaded earlier in this post.
#!/usr/bin/env python
# kev-bootstrap.py
import sys
import json
import re
import argparse
def load_kev_data(file_path):
with open(file_path) as kev_file:
return json.load(kev_file)
def main(kev_file):
# Load kev.json
kev_data = load_kev_data(kev_file)
# Read each line from standard input
for line in sys.stdin:
# Extract CVE ID from the line
cve_match = re.search(r'\bCVE-\d{4}-\d{4,}\b', line)
if cve_match:
cve_id = cve_match.group(0)
# Check if CVE ID exists in kev_data
if any(cve_id == vulnerability["cveID"] for vulnerability in kev_data["vulnerabilities"]):
print(line.strip())
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Filter lines containing CVE IDs based on KEV data")
parser.add_argument("kev_file", help="Path to the KEV file")
args = parser.parse_args()
main(args.kev_file)
The final result should look like this:
./results.sh
Processing SBOM file: popular_sbom/alpine_latest_sbom.json
Processing SBOM file: popular_sbom/busybox_uclibc_sbom.json
Processing SBOM file: popular_sbom/debian_unstable-slim_sbom.json
Processing SBOM file: popular_sbom/golang_alpine3.20_sbom.json
Processing SBOM file: popular_sbom/httpd_alpine3.20_sbom.json
Processing SBOM file: popular_sbom/mariadb_noble_sbom.json
stdlib go1.18.2 go-module CVE-2023-44487 High
Processing SBOM file: popular_sbom/memcached_alpine3.20_sbom.json
Processing SBOM file: popular_sbom/mongo_8.0.0-rc6-jammy_sbom.json
stdlib go1.18.2 go-module CVE-2023-44487 High
Processing SBOM file: popular_sbom/mysql_oraclelinux9_sbom.json
stdlib go1.18.2 go-module CVE-2023-44487 High
Processing SBOM file: popular_sbom/nginx_stable-alpine3.19-perl_sbom.json
Processing SBOM file: popular_sbom/node_lts-alpine3.20_sbom.json
Processing SBOM file: popular_sbom/postgres_alpine3.20_sbom.json
Processing SBOM file: popular_sbom/python_3.9.19-alpine3.20_sbom.json
Processing SBOM file: popular_sbom/rabbitmq_3.12.14-management-alpine_sbom.json
Processing SBOM file: popular_sbom/redis_7.0.15-alpine3.20_sbom.json
stdlib go1.18.2 go-module CVE-2023-44487 High
Processing SBOM file: popular_sbom/ubuntu_rolling_sbom.json
Processing SBOM file: popular_sbom/wordpress_beta-php8.3-fpm-alpine_sbom.json
To view more information about why the SBOM for that image reported a vulnerability found in the kev data you can do this command:
cat popular_sbom/redis_7.0.15-alpine3.20_sbom.json | grype -o json --by-cve | grype explain --id CVE-2023-44487
CVE-2023-44487 from nvd:cpe (High)
The HTTP/2 protocol allows a denial of service (server resource consumption) because request cancellation can reset many streams quickly, as exploited in the wild in August through October 2023.
Matched packages:
- Package: stdlib, version: go1.18.2
PURL: pkg:golang/stdlib@1.18.2
Match explanation(s):
- nvd:cpe:CVE-2023-44487 CPE match on `cpe:2.3:a:golang:go:1.18.2:-:*:*:*:*:*:*`.
Locations:
- /usr/local/bin/gosu
URLs:
- https://nvd.nist.gov/vuln/detail/CVE-2023-44487
In this case grype found the binary gosu
in the image which was compiled by a version of go subject to that HTTP/2 protocol vulnerability.
It would be up to the user of this image if this vulnerability was applicable or not.
This method can be repeated against different collections of images for different results. In this case we only found binary compiled with a vulnerable version of go. The actual exploitability of these artifacts is unknown, but on first glance seems very low.
Doing analysis for popular-docker.py -n 50
After expanding the net a bit more to pull in more images I came up with a short list from the top 50 images that might be good for demo material. The format for the SBOM file is __sbom.json
So for the first SBOM the docker command to grab the image would be:
docker pull cassandra:4.0.13-jammy
Here are the results compared with the kev.json findings:
Processing SBOM file: popular_sbom/cassandra_4.0.13-jammy_sbom.json
stdlib go1.18.2 go-module CVE-2023-44487 High
Processing SBOM file: popular_sbom/couchbase_latest_sbom.json
golang.org/x/net v0.10.0 0.17.0 go-module CVE-2023-44487 High
google.golang.org/grpc v1.55.0 1.56.3 go-module CVE-2023-44487 High
Processing SBOM file: popular_sbom/jenkins_2.60.3_sbom.json
jenkins-core 2.60.3 2.138.4 java-archive CVE-2018-1000861 Critical
libfreetype6 2.6.3-3.2 2.6.3-3.2+deb9u2 deb CVE-2020-15999 Medium
script-security 1.13 1.54 jenkins-plugin CVE-2019-1003029 Critical
spring-beans 2.5.6.SEC03 5.2.20.RELEASE java-archive CVE-2022-22965 Critical
spring-webmvc 2.5.6.SEC03 5.2.20.RELEASE java-archive CVE-2022-22965 Critical
Processing SBOM file: popular_sbom/joomla_php8.3-fpm_sbom.json
redis 6.0.2 php-pecl CVE-2022-0543 Critical
Processing SBOM file: popular_sbom/mariadb_noble_sbom.json
stdlib go1.18.2 go-module CVE-2023-44487 High
Processing SBOM file: popular_sbom/mongo_8.0.0-rc6-jammy_sbom.json
stdlib go1.18.2 go-module CVE-2023-44487 High
Processing SBOM file: popular_sbom/mysql_oraclelinux9_sbom.json
stdlib go1.18.2 go-module CVE-2023-44487 High
Processing SBOM file: popular_sbom/percona_psmdb-6.0.6_sbom.json
stdlib go1.19.1 go-module CVE-2023-44487 High
Processing SBOM file: popular_sbom/redis_7.0.15-alpine3.20_sbom.json
stdlib go1.18.2 go-module CVE-2023-44487 High
Processing SBOM file: popular_sbom/sentry_onbuild_sbom.json
Pillow 4.2.1 10.0.1 python CVE-2023-4863 High
What makes this list interesting is every vulnerability found for the above sbom are from the known exploited vulnerabilities list.
The jenkins image is still in the 50 most popular images pulled but has this warning on their landing page
DEPRECATED; use "jenkins/jenkins:lts" instead
It’s easy to see why they recommend another image given the number of actively exploited vulnerabilities in this image scan, but that still doesn’t stop people from pulling the older image.
The above images, when filtered against the kev
list give good insight into how anchore tools can be used to spot potential vulnerabilities being actively exploited in common images used by the general developer population
What about EPSS data?
EPSS or Exploit Prediction Scoring System is a data-driven effort for estimating the likelihood (probability) that a software vulnerability will be exploited in the wild.
You can find their data here along with the research, User Guide and information about their tooling.
If you have a version of their data locally here is a python script that can filter a grype table result to filter CVE based on their EPSS percentile. The percentile of a given score is based on the proportion of all scored vulnerabilities with the same or a lower EPSS score.
#!/usr/bin/env python
# example usage: epss-bootstrap.py
# cat popular_sbom/sentry_onbuild_sbom.json | grype --by-cve | ./epss-bootstrap.py epss_scores-2024-06-03.csv --percentile 0.98
import sys
import csv
import re
import argparse
def load_epss_data(file_path):
with open(file_path) as epss_file:
return {row['cve']: {'epss': float(row['epss']), 'percentile': float(row['percentile'])} for row in csv.DictReader(epss_file)}
def main(epss_file, percentile_threshold):
# Load epss_scores-2024-06-03.csv
epss_data = load_epss_data(epss_file)
# Read each line from standard input
for line in sys.stdin:
# Extract CVE ID from the line
cve_match = re.search(r'\bCVE-\d{4}-\d{4,}\b', line)
if cve_match:
cve_id = cve_match.group(0)
# Retrieve entry from epss_data
entry = epss_data.get(cve_id)
if entry is not None:
if entry['percentile'] >= percentile_threshold:
# Print the line along with the EPSS score
print(f"{line.strip()} EPSS Score: {entry['epss']}; EPSS Percentile: {entry['percentile']}")
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Filter lines containing CVE IDs based on EPSS data")
parser.add_argument("epss_file", help="Path to the EPSS file")
parser.add_argument("--percentile", type=float, default=0.98, help="Percentile threshold (default: 0.98)")
args = parser.parse_args()
main(args.epss_file, args.percentile)
We can use this script in combination with our popular_sbom
folder to check for very severe vulnerabilities in the top 100 images in docker:
# generate our sbom for the top 100 images on dockerhub by pulls
./popular-docker.py -n 100
#!/bin/bash
folder_path="popular_sbom"
# Check if the folder exists
if [ -d "$folder_path" ]; then
# Loop through each file in the folder
for file in "$folder_path"/*.json; do
echo "Processing SBOM file: $file"
cat "$file" | grype --by-cve | ./epss-bootstrap.py epss_scores-2024-06-03.csv --percentile 0.995
done
else
echo "Folder '$folder_path' not found."
fi
This should process each sbom, generate a vulnerability report, and only print lines where the CVE-ID
has an EPSS percentile in the 0.995th. Users can tweak that number to expand or contract the results based on the risk they want to simulate a given environment would tolerate for images in production.
Here is a snapshot of CVE for the top 100 images on dockerhub that meet that 0.995th percentile marker for EPSS data downloaded on 2024-06-03
./popular-docker-results-epss.fish
Processing SBOM file: popular_sbom/centos_centos7.9.2009_sbom.json
nss 3.53.1-3.el7_9 rpm CVE-2014-3566 High EPSS Score: 0.97488; EPSS Percentile: 0.99974
nss-sysinit 3.53.1-3.el7_9 rpm CVE-2014-3566 High EPSS Score: 0.97488; EPSS Percentile: 0.99974
nss-tools 3.53.1-3.el7_9 rpm CVE-2014-3566 High EPSS Score: 0.97488; EPSS Percentile: 0.99974
Processing SBOM file: popular_sbom/django_onbuild_sbom.json
libmysqlclient-dev 5.5.53-0+deb8u1 deb CVE-2012-5613 Negligible EPSS Score: 0.96437; EPSS Percentile: 0.9958
libmysqlclient18 5.5.53-0+deb8u1 deb CVE-2012-5613 Negligible EPSS Score: 0.96437; EPSS Percentile: 0.9958
libpq-dev 9.4.9-0+deb8u1 deb CVE-2019-9193 Negligible EPSS Score: 0.9749; EPSS Percentile: 0.99975
libpq5 9.4.9-0+deb8u1 deb CVE-2019-9193 Negligible EPSS Score: 0.9749; EPSS Percentile: 0.99975
mysql-client 5.5.53-0+deb8u1 deb CVE-2012-5613 Negligible EPSS Score: 0.96437; EPSS Percentile: 0.9958
mysql-client-5.5 5.5.53-0+deb8u1 deb CVE-2012-5613 Negligible EPSS Score: 0.96437; EPSS Percentile: 0.9958
mysql-common 5.5.53-0+deb8u1 deb CVE-2012-5613 Negligible EPSS Score: 0.96437; EPSS Percentile: 0.9958
postgresql-client-9.4 9.4.9-0+deb8u1 deb CVE-2019-9193 Negligible EPSS Score: 0.9749; EPSS Percentile: 0.99975
Processing SBOM file: popular_sbom/glassfish_latest_sbom.json
libnss3 2:3.17.2-1.1+deb8u2 2:3.26-1+debu8u1 deb CVE-2015-4000 Medium EPSS Score: 0.97405; EPSS Percentile: 0.99927
Processing SBOM file: popular_sbom/hipache_0.3.1_sbom.json
redis-server 2:2.8.4-2 (won't fix) deb CVE-2022-0543 Medium EPSS Score: 0.97114; EPSS Percentile: 0.99791
redis-tools 2:2.8.4-2 (won't fix) deb CVE-2022-0543 Medium EPSS Score: 0.97114; EPSS Percentile: 0.99791
sudo 1.8.9p5-1ubuntu1.2 (won't fix) deb CVE-2021-3156 High EPSS Score: 0.96952; EPSS Percentile: 0.99727
supervisor 3.0b2-1 3.0b2-1ubuntu0.1 deb CVE-2017-11610 Medium EPSS Score: 0.9745; EPSS Percentile: 0.99951
Processing SBOM file: popular_sbom/httpd_alpine3.20_sbom.json
httpd 2.4.59 binary CVE-2007-0450 Medium EPSS Score: 0.97307; EPSS Percentile: 0.99872
Processing SBOM file: popular_sbom/jenkins_2.60.3_sbom.json
commons-beanutils 1.8.3 1.9.2 java-archive CVE-2014-0114 High EPSS Score: 0.97314; EPSS Percentile: 0.99876
jenkins-core 2.60.3 2.138.4 java-archive CVE-2018-1000861 Critical EPSS Score: 0.9732; EPSS Percentile: 0.99878
spring-beans 2.5.6.SEC03 5.2.20.RELEASE java-archive CVE-2022-22965 Critical EPSS Score: 0.97483; EPSS Percentile: 0.99972
spring-webmvc 2.5.6.SEC03 5.2.20.RELEASE java-archive CVE-2022-22965 Critical EPSS Score: 0.97483; EPSS Percentile: 0.99972
Processing SBOM file: popular_sbom/joomla_php8.3-fpm_sbom.json
redis 6.0.2 php-pecl CVE-2022-0543 Critical EPSS Score: 0.97114; EPSS Percentile: 0.99791
Processing SBOM file: popular_sbom/nuxeo_latest_sbom.json
log4j-core 2.11.1 2.12.2 java-archive CVE-2021-45046 Critical EPSS Score: 0.97363; EPSS Percentile: 0.99902
log4j-core 2.11.1 2.12.2 java-archive CVE-2021-44228 Critical EPSS Score: 0.97559; EPSS Percentile: 0.99998
log4j-core 2.11.1 2.12.3 java-archive CVE-2021-45105 Medium EPSS Score: 0.96625; EPSS Percentile: 0.99629
xstream 1.4.10 1.4.18 java-archive CVE-2021-39144 High EPSS Score: 0.97191; EPSS Percentile: 0.99821
xstream 1.4.10 1.4.14-jdk7 java-archive CVE-2020-26217 High EPSS Score: 0.97384; EPSS Percentile: 0.99912
Processing SBOM file: popular_sbom/owncloud_9-fpm_sbom.json
libpq-dev 9.6.10-0+deb9u1 deb CVE-2019-9193 Negligible EPSS Score: 0.9749; EPSS Percentile: 0.99975
libpq5 9.6.10-0+deb9u1 deb CVE-2019-9193 Negligible EPSS Score: 0.9749; EPSS Percentile: 0.99975
pear/archive_tar 1.4.1 1.4.11 php-composer CVE-2020-28949 High EPSS Score: 0.96283; EPSS Percentile: 0.99538
redis 3.1.6 php-pecl CVE-2022-0543 Critical EPSS Score: 0.97114; EPSS Percentile: 0.99791
Processing SBOM file: popular_sbom/piwik_latest_sbom.json
apache2 2.4.25-3+deb9u5 2.4.25-3+deb9u11 deb CVE-2021-40438 Critical EPSS Score: 0.97435; EPSS Percentile: 0.99943
apache2 2.4.25-3+deb9u5 2.4.25-3+deb9u7 deb CVE-2019-0211 High EPSS Score: 0.97417; EPSS Percentile: 0.99933
apache2-bin 2.4.25-3+deb9u5 2.4.25-3+deb9u11 deb CVE-2021-40438 Critical EPSS Score: 0.97435; EPSS Percentile: 0.99943
apache2-bin 2.4.25-3+deb9u5 2.4.25-3+deb9u7 deb CVE-2019-0211 High EPSS Score: 0.97417; EPSS Percentile: 0.99933
apache2-data 2.4.25-3+deb9u5 2.4.25-3+deb9u11 deb CVE-2021-40438 Critical EPSS Score: 0.97435; EPSS Percentile: 0.99943
apache2-data 2.4.25-3+deb9u5 2.4.25-3+deb9u7 deb CVE-2019-0211 High EPSS Score: 0.97417; EPSS Percentile: 0.99933
apache2-utils 2.4.25-3+deb9u5 2.4.25-3+deb9u11 deb CVE-2021-40438 Critical EPSS Score: 0.97435; EPSS Percentile: 0.99943
apache2-utils 2.4.25-3+deb9u5 2.4.25-3+deb9u7 deb CVE-2019-0211 High EPSS Score: 0.97417; EPSS Percentile: 0.99933
libphp 7.1.22 binary CVE-2019-11043 Critical EPSS Score: 0.97447; EPSS Percentile: 0.9995
libphp 7.1.22 binary CVE-2018-19518 High EPSS Score: 0.9687; EPSS Percentile: 0.99704
pear/archive_tar 1.4.3 1.4.11 php-composer CVE-2020-28949 High EPSS Score: 0.96283; EPSS Percentile: 0.99538
php-cli 7.1.22 binary CVE-2019-11043 Critical EPSS Score: 0.97447; EPSS Percentile: 0.9995
php-cli 7.1.22 binary CVE-2018-19518 High EPSS Score: 0.9687; EPSS Percentile: 0.99704
redis 3.1.6 php-pecl CVE-2022-0543 Critical EPSS Score: 0.97114; EPSS Percentile: 0.99791
Processing SBOM file: popular_sbom/rails_onbuild_sbom.json
libmysqlclient-dev 5.5.53-0+deb8u1 deb CVE-2012-5613 Negligible EPSS Score: 0.96437; EPSS Percentile: 0.9958
libmysqlclient18 5.5.53-0+deb8u1 deb CVE-2012-5613 Negligible EPSS Score: 0.96437; EPSS Percentile: 0.9958
libpq-dev 9.4.9-0+deb8u1 deb CVE-2019-9193 Negligible EPSS Score: 0.9749; EPSS Percentile: 0.99975
libpq5 9.4.9-0+deb8u1 deb CVE-2019-9193 Negligible EPSS Score: 0.9749; EPSS Percentile: 0.99975
mysql-client 5.5.53-0+deb8u1 deb CVE-2012-5613 Negligible EPSS Score: 0.96437; EPSS Percentile: 0.9958
mysql-client-5.5 5.5.53-0+deb8u1 deb CVE-2012-5613 Negligible EPSS Score: 0.96437; EPSS Percentile: 0.9958
mysql-common 5.5.53-0+deb8u1 deb CVE-2012-5613 Negligible EPSS Score: 0.96437; EPSS Percentile: 0.9958
postgresql-client-9.4 9.4.9-0+deb8u1 deb CVE-2019-9193 Negligible EPSS Score: 0.9749; EPSS Percentile: 0.99975
Processing SBOM file: popular_sbom/sentry_onbuild_sbom.json
libpq-dev 9.6.15-0+deb9u1 deb CVE-2019-9193 Negligible EPSS Score: 0.9749; EPSS Percentile: 0.99975
libpq5 9.6.15-0+deb9u1 deb CVE-2019-9193 Negligible EPSS Score: 0.9749; EPSS Percentile: 0.99975