2021 Security Vulnerability Report
CVE Statistics for 2021

Growth Curve
There have been 5541 security vulnerabilities (CVEs) published so far in 2021. In 2020 there were 17010.

The average severity is 7.1 out of 10, which was about the same as in 2020.

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

By Product

#1

Fedora Project Fedora

269 vulnerabilities in 2021

#2

Microsoft Windows Server 2016

203 vulnerabilities in 2021

#3

Microsoft Windows 10

201 vulnerabilities in 2021

#4

Microsoft Windows Server 2019

187 vulnerabilities in 2021

#5

Google Android

167 vulnerabilities in 2021

#6

Microsoft Windows Server 2012

135 vulnerabilities in 2021

#7

Microsoft Windows 8.1

126 vulnerabilities in 2021

#8

Debian Linux

126 vulnerabilities in 2021

#9

Microsoft Windows Rt 8 1

121 vulnerabilities in 2021

#10

Microsoft Windows Server 2008

117 vulnerabilities in 2021

#11

Microsoft Windows 7

109 vulnerabilities in 2021

#12

Google Chrome

103 vulnerabilities in 2021

#13

Apple Mac OSX

102 vulnerabilities in 2021

#14

Apple Macos

98 vulnerabilities in 2021

#15

Apple iOS

87 vulnerabilities in 2021

#16

Apple Watch OS

69 vulnerabilities in 2021

#17

Apple TV OS

68 vulnerabilities in 2021

#18

Apple iPad OS

63 vulnerabilities in 2021

#19

Cisco Application Extension Platform

58 vulnerabilities in 2021

#20

Linux Kernel

55 vulnerabilities in 2021

By Vendor

#1

Microsoft

333 vulnerabilities in 2021

#2

Google

274 vulnerabilities in 2021

#3

Fedora Project

269 vulnerabilities in 2021

#4

Cisco

236 vulnerabilities in 2021

#5

Oracle

138 vulnerabilities in 2021

#6

Apple

131 vulnerabilities in 2021

#7

Debian

126 vulnerabilities in 2021

#8

IBM

100 vulnerabilities in 2021

#9

Red Hat

91 vulnerabilities in 2021

#10

Adobe

89 vulnerabilities in 2021

#11

NetApp

84 vulnerabilities in 2021

#12

SAP

59 vulnerabilities in 2021

#13

Linux

55 vulnerabilities in 2021

#14

Mozilla

50 vulnerabilities in 2021

#15

F5 Networks

46 vulnerabilities in 2021

#16

Apache

46 vulnerabilities in 2021

#17
 
Aruba Networks

45 vulnerabilities in 2021

#18

Jenkins

40 vulnerabilities in 2021

#19

GitLab

32 vulnerabilities in 2021

#20

Canonical

31 vulnerabilities in 2021

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.
588
 
10.6%
#2
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.
377
 
6.8%
#3
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.
239
 
4.3%
#4
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.
165
 
3.0%
#5
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.
159
 
2.9%
#6
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.
155
 
2.8%
#7
Information Disclosure
The product exposes sensitive information to an actor that is not explicitly authorized to have access to that information.
145
 
2.6%
#8
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.
130
 
2.3%
#9
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.
127
 
2.3%
#10
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.
124
 
2.2%
#11
Dangling pointer
Referencing memory after it has been freed can cause a program to crash, use unexpected values, or execute code.
115
 
2.1%
#12
Command Injection
The software constructs all or part of a command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended command when it is sent to a downstream component.
104
 
1.9%
#13
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.
101
 
1.8%
#14
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.
98
 
1.8%
#15
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.
96
 
1.7%
#16
authentification
When an actor claims to have a given identity, the software does not prove or insufficiently proves that the claim is correct.
81
 
1.5%
#17
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.
78
 
1.4%
#18
Marshaling, Unmarshaling
The application deserializes untrusted data without sufficiently verifying that the resulting data will be valid.
69
 
1.2%
#19
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.
62
 
1.1%
#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.
57
 
1.0%
#21
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.
57
 
1.0%
#22
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.
53
 
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.
50
 
0.9%
#24
XSPA
The web server receives a URL or similar request from an upstream component and retrieves the contents of this URL, but it does not sufficiently ensure that the request is being sent to the expected destination. By providing URLs to unexpected hosts or ports, attackers can make it appear that the server is sending the request, possibly bypassing access controls such as firewalls that prevent the attackers from accessing the URLs directly. The server can be used as a proxy to conduct port scanning of hosts in internal networks, use other URLs such as that can access documents on the system (using file://), or use other protocols such as gopher:// or tftp://, which may provide greater control over the contents of requests.
49
 
0.9%
#25
Cleartext Storage of Sensitive Information
The application stores sensitive information in cleartext within a resource that might be accessible to another control sphere. Because the information is stored in cleartext, attackers could potentially read it. Even if the information is encoded in a way that is not human-readable, certain techniques could determine which encoding is being used, then decode the information.
48
 
0.9%

By Category

Content Management

Joomla

13 vulnerabilities in 2021

MediaWiki

9 vulnerabilities in 2021

TYPO3

8 vulnerabilities in 2021

Database

Oracle MySQL

38 vulnerabilities in 2021

MongoDB

2 vulnerabilities in 2021

Redis Labs Redis

2 vulnerabilities in 2021

Desktop Software

Microsoft Office

18 vulnerabilities in 2021

Mozilla Thunderbird

18 vulnerabilities in 2021

Microsoft Excel

10 vulnerabilities in 2021

Development Tools

Jenkins

13 vulnerabilities in 2021

Microsoft Visual Studio

5 vulnerabilities in 2021

DevOps

GitLab

31 vulnerabilities in 2021

Docker

2 vulnerabilities in 2021

Kubernetes

1 vulnerability in 2021

Email

Microsoft Exchange Server

13 vulnerabilities in 2021

Java Application Servers

Oracle Weblogic Server

10 vulnerabilities in 2021

Eclipse Jetty

4 vulnerabilities in 2021

Apache Tomcat

3 vulnerabilities in 2021

Java Libraries

FasterXML Jackson Databind

12 vulnerabilities in 2021

Libraries

OpenSSL

5 vulnerabilities in 2021

Microsoft .NET Core

1 vulnerability in 2021

Operating Systems

Microsoft Windows Server 2016

203 vulnerabilities in 2021

Microsoft Windows 10

201 vulnerabilities in 2021

Microsoft Windows Server 2019

187 vulnerabilities in 2021

Runtime Environments

nodejs node.js

4 vulnerabilities in 2021

PHP

2 vulnerabilities in 2021

Python

2 vulnerabilities in 2021

Server Software

Microsoft Sharepoint Server

16 vulnerabilities in 2021

Microsoft Sharepoint Enterprise Server

14 vulnerabilities in 2021

OpenBSD OpenSSH

1 vulnerability in 2021

Virtualization

Oracle VM VirtualBox

17 vulnerabilities in 2021

QEMU

8 vulnerabilities in 2021

Web Application Framework

Django Project Django

2 vulnerabilities in 2021

Microsoft ASP.NET Core

1 vulnerability in 2021

Laravel

1 vulnerability in 2021

Web Applications

Apple iCloud

6 vulnerabilities in 2021

Web Browsers

Google Chrome

103 vulnerabilities in 2021

Mozilla Firefox

46 vulnerabilities in 2021


Report Last Updated: April 21, 2021