2020 Security Vulnerability Report
CVE Statistics for 2020

Growth Curve
There were 17033 security vulnerabilities (CVEs) published in 2020. In 2019 there were 16092.

The average severity was 7.1 out of 10, which decreased by 0.1 from 2019.

Products & Vendors with the most security vulnerabilities published in 2020 Vulnerabilities may exist in multiple products or vendors

By Product

#1

Microsoft Windows 10

802 vulnerabilities in 2020

#2

Microsoft Windows Server 2016

790 vulnerabilities in 2020

#3

Microsoft Windows Server 2019

743 vulnerabilities in 2020

#4

Google Android

696 vulnerabilities in 2020

#5

Debian Linux

513 vulnerabilities in 2020

#6

Microsoft Windows Server 2012

443 vulnerabilities in 2020

#7

Microsoft Windows 8.1

435 vulnerabilities in 2020

#8

Microsoft Windows Rt 8 1

429 vulnerabilities in 2020

#9

Fedora Project Fedora

399 vulnerabilities in 2020

#10

Microsoft Windows 7

386 vulnerabilities in 2020

#11

Microsoft Windows Server 2008

382 vulnerabilities in 2020

#12

OpenSuse Leap

332 vulnerabilities in 2020

#13

GitLab

235 vulnerabilities in 2020

#14

Apple iOS

233 vulnerabilities in 2020

#15

Google Chrome

227 vulnerabilities in 2020

#16

Apple Mac OSX

218 vulnerabilities in 2020

#17

Canonical Ubuntu Linux

193 vulnerabilities in 2020

#18

Apple TV OS

168 vulnerabilities in 2020

#19

Apple Watch OS

159 vulnerabilities in 2020

#20

OpenSuse Backports Sle

144 vulnerabilities in 2020

By Vendor

#1

Microsoft

1188 vulnerabilities in 2020

#2

Google

950 vulnerabilities in 2020

#3

Oracle

826 vulnerabilities in 2020

#4

Debian

513 vulnerabilities in 2020

#5

Red Hat

418 vulnerabilities in 2020

#6

Fedora Project

399 vulnerabilities in 2020

#7

OpenSuse

390 vulnerabilities in 2020

#8

Apple

382 vulnerabilities in 2020

#9

IBM

338 vulnerabilities in 2020

#10

Cisco

309 vulnerabilities in 2020

#11

Adobe

306 vulnerabilities in 2020

#12

GitLab

237 vulnerabilities in 2020

#13

Canonical

204 vulnerabilities in 2020

#14

Mozilla

180 vulnerabilities in 2020

#15

Jenkins

171 vulnerabilities in 2020

#16

SAP

168 vulnerabilities in 2020

#17

F5 Networks

162 vulnerabilities in 2020

#18

NetApp

158 vulnerabilities in 2020

#19

Apache

143 vulnerabilities in 2020

#20

Linux

117 vulnerabilities in 2020

By Weakness

#1
XSS
The software does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.
1940
 
11.4%
#2
Improper Privilege Management
The software does not properly assign, modify, track, or check privileges for an actor, creating an unintended sphere of control for that actor.
1073
 
6.3%
#3
Improper Input Validation
The product receives input or data, but it does not validate or incorrectly validates that the input has the properties that are required to process the data safely and correctly.
988
 
5.8%
#4
Information Disclosure
The product exposes sensitive information to an actor that is not explicitly authorized to have access to that information.
978
 
5.7%
#5
Memory Corruption
The software writes data past the end, or before the beginning, of the intended buffer. Typically, this can result in corruption of data, a crash, or code execution. The software may modify an index or perform pointer arithmetic that references a memory location that is outside of the boundaries of the buffer. A subsequent write operation then produces undefined or unexpected results.
811
 
4.8%
#6
Out-of-bounds Read
The software reads data past the end, or before the beginning, of the intended buffer. Typically, this can allow attackers to read sensitive information from other memory locations or cause a crash. A crash can occur when the code reads a variable amount of data and assumes that a sentinel exists to stop the read operation, such as a NUL in a string. The expected sentinel might not be located in the out-of-bounds memory, causing excessive data to be read, leading to a segmentation fault or a buffer overflow. The software may modify an index or perform pointer arithmetic that references a memory location that is outside of the boundaries of the buffer. A subsequent read operation then produces undefined or unexpected results.
568
 
3.3%
#7
Buffer Overflow
The software performs operations on a memory buffer, but it can read from or write to a memory location that is outside of the intended boundary of the buffer.
529
 
3.1%
#8
Shell injection
The software constructs all or part of an OS command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended OS command when it is sent to a downstream component.
424
 
2.5%
#9
SQL Injection
The software constructs all or part of an SQL command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended SQL command when it is sent to a downstream component.
413
 
2.4%
#10
Classic Buffer Overflow
The program copies an input buffer to an output buffer without verifying that the size of the input buffer is less than the size of the output buffer, leading to a buffer overflow. A buffer overflow condition exists when a program attempts to put more data in a buffer than it can hold, or when a program attempts to put data in a memory area outside of the boundaries of a buffer. The simplest type of error, and the most common cause of buffer overflows, is the "classic" case in which the program copies the buffer without restricting how much is copied. Other variants exist, but the existence of a classic overflow strongly suggests that the programmer is not considering even the most basic of security protections.
364
 
2.1%
#11
Directory traversal
The software uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the software does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.
356
 
2.1%
#12
Session Riding
The web application does not, or can not, sufficiently verify whether a well-formed, valid, consistent request was intentionally provided by the user who submitted the request. When a web server is designed to receive a request from a client without any mechanism for verifying that it was intentionally sent, then it might be possible for an attacker to trick a client into making an unintentional request to the web server which will be treated as an authentic request. This can be done via a URL, image load, XMLHttpRequest, etc. and can result in exposure of data or unintended code execution.
341
 
2.0%
#13
authentification
When an actor claims to have a given identity, the software does not prove or insufficiently proves that the claim is correct.
333
 
2.0%
#14
Dangling pointer
Referencing memory after it has been freed can cause a program to crash, use unexpected values, or execute code.
331
 
1.9%
#15
Injection
The software constructs all or part of a command, data structure, or record using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify how it is parsed or interpreted when it is sent to a downstream component. Software has certain assumptions about what constitutes data and control respectively. It is the lack of verification of these assumptions for user-controlled input that leads to injection problems. Injection problems encompass a wide variety of issues -- all mitigated in very different ways and usually attempted in order to alter the control flow of the process. For this reason, the most effective way to discuss these weaknesses is to note the distinct features which classify them as injection weaknesses. The most important issue to note is that all injection problems share one thing in common -- i.e., they allow for the injection of control plane data into the user-controlled data plane. This means that the execution of the process may be altered by sending code in through legitimate data channels, using no other mechanism. While buffer overflows, and many other flaws, involve the use of some further issue to gain execution, injection problems need only for the data to be parsed. The most classic instantiations of this category of weakness are SQL injection and format string vulnerabilities.
291
 
1.7%
#16
Resource Exhaustion
The software does not properly control the allocation and maintenance of a limited resource, thereby enabling an actor to influence the amount of resources consumed, eventually leading to the exhaustion of available resources.
287
 
1.7%
#17
AuthZ
The software performs an authorization check when an actor attempts to access a resource or perform an action, but it does not correctly perform the check. This allows attackers to bypass intended access restrictions.
251
 
1.5%
#18
Incorrect Default Permissions
During installation, installed file permissions are set to allow anyone to modify those files.
245
 
1.4%
#19
Insufficiently Protected Credentials
The product transmits or stores authentication credentials, but it uses an insecure method that is susceptible to unauthorized interception and/or retrieval.
224
 
1.3%
#20
Unrestricted File Upload
The software allows the attacker to upload or transfer files of dangerous types that can be automatically processed within the product's environment.
205
 
1.2%
#21
AuthZ
The software does not perform an authorization check when an actor attempts to access a resource or perform an action.
172
 
1.0%
#22
Integer Overflow or Wraparound
The software performs a calculation that can produce an integer overflow or wraparound, when the logic assumes that the resulting value will always be larger than the original value. This can introduce other weaknesses when the calculation is used for resource management or execution control. An integer overflow or wraparound occurs when an integer value is incremented to a value that is too large to store in the associated representation. When this occurs, the value may wrap to become a very small or negative number. While this may be intended behavior in circumstances that rely on wrapping, it can have security consequences if the wrap is unexpected. This is especially the case if the integer overflow can be triggered using user-supplied inputs. This becomes security-critical when the result is used to control looping, make a security decision, or determine the offset or size in behaviors such as memory allocation, copying, concatenation, etc.
170
 
1.0%
#23
Incorrect Permission Assignment for Critical Resource
The product specifies permissions for a security-critical resource in a way that allows that resource to be read or modified by unintended actors. When a resource is given a permissions setting that provides access to a wider range of actors than required, it could lead to the exposure of sensitive information, or the modification of that resource by unintended parties. This is especially dangerous when the resource is related to program configuration, execution or sensitive user data.
164
 
1.0%
#24
NULL Pointer Dereference
A NULL pointer dereference occurs when the application dereferences a pointer that it expects to be valid, but is NULL, typically causing a crash or exit. NULL pointer dereference issues can occur through a number of flaws, including race conditions, and simple programming omissions.
163
 
1.0%
#25
Use of Hard-coded Credentials
The software contains hard-coded credentials, such as a password or cryptographic key, which it uses for its own inbound authentication, outbound communication to external components, or encryption of internal data.
159
 
0.9%

By Category

Content Management

Joomla

31 vulnerabilities in 2020

MediaWiki

30 vulnerabilities in 2020

Adobe Experience Manager

24 vulnerabilities in 2020

Database

Oracle MySQL

139 vulnerabilities in 2020

Oracle Database Server

15 vulnerabilities in 2020

SQLite

12 vulnerabilities in 2020

Desktop Software

Mozilla Thunderbird

76 vulnerabilities in 2020

Microsoft Office

71 vulnerabilities in 2020

Apple iTunes

70 vulnerabilities in 2020

Development Tools

Oracle Java Development Kit (JDK)

30 vulnerabilities in 2020

Jenkins

18 vulnerabilities in 2020

Microsoft Visual Studio

10 vulnerabilities in 2020

DevOps

GitLab

235 vulnerabilities in 2020

Kubernetes

13 vulnerabilities in 2020

Docker

2 vulnerabilities in 2020

Email

Microsoft Exchange Server

13 vulnerabilities in 2020

Exim

1 vulnerability in 2020

Postfix

1 vulnerability in 2020

Front End Libraries

jQuery

3 vulnerabilities in 2020

Angular JS AngularJS

2 vulnerabilities in 2020

Java Application Servers

Oracle Weblogic Server

61 vulnerabilities in 2020

IBM WebSphere Application Server

22 vulnerabilities in 2020

Apache Tomcat

9 vulnerabilities in 2020

Java Libraries

FasterXML Jackson Databind

26 vulnerabilities in 2020

Libraries

Microsoft ChakraCore

32 vulnerabilities in 2020

Google Tensorflow

6 vulnerabilities in 2020

libming Ming

4 vulnerabilities in 2020

Operating Systems

Microsoft Windows 10

802 vulnerabilities in 2020

Microsoft Windows Server 2016

790 vulnerabilities in 2020

Microsoft Windows Server 2019

743 vulnerabilities in 2020

Runtime Environments

Oracle Java Runtime Environment (JRE)

30 vulnerabilities in 2020

Oracle OpenJDK

20 vulnerabilities in 2020

GoLang Go

13 vulnerabilities in 2020

Server Software

Microsoft Sharepoint Server

113 vulnerabilities in 2020

Microsoft Sharepoint Enterprise Server

106 vulnerabilities in 2020

OpenBSD OpenSSH

2 vulnerabilities in 2020

Virtualization

Oracle VM VirtualBox

69 vulnerabilities in 2020

QEMU

39 vulnerabilities in 2020

Citrix Xen Desktop

2 vulnerabilities in 2020

Web Application Framework

Django Project Django

6 vulnerabilities in 2020

Microsoft ASP.NET Core

5 vulnerabilities in 2020

Laravel

2 vulnerabilities in 2020

Web Applications

Apple iCloud

71 vulnerabilities in 2020

Web Browsers

Google Chrome

227 vulnerabilities in 2020

Mozilla Firefox

132 vulnerabilities in 2020

Web Servers

Apache HTTP Server

7 vulnerabilities in 2020

Caddy Server Caddy Web Server

1 vulnerability in 2020

nginx

1 vulnerability in 2020


Report Last Updated: August 5, 2021