List of software quality issues with the number of affected components.
category ALL
Policies
Info
Category
Problem
Potentially unwanted applications (PUAs) can be considered a risk by some software users. This threat type typically collects private user data, or in more extreme cases, tampers with system security settings. Most threat prevention solutions detect and block PUAs. Software packages that trigger security solution detections also tend to increase the number of support calls and open tickets from users.
Prevalence in PyPI community
0 packages
found in
Top 100
4 packages
found in
Top 1k
56 packages
found in
Top 10k
2.36k packages
in community
Next steps
Revise the use of components that raise these alarms. If you can't deprecate those components, make sure they are well-documented.
Problem
Software composition analysis has identified a component with one or more known severe vulnerabilities. Available threat intelligence telemetry has confirmed that the reported high or critical severity vulnerabilities are actively being exploited by malicious actors.
Prevalence in PyPI community
40 packages
found in
Top 100
232 packages
found in
Top 1k
2014 packages
found in
Top 10k
115.63k packages
in community
Next steps
We strongly advise updating the component to the latest version.
If the update can't resolve the issue, create a plan to isolate or replace the affected component.
Problem
Data Execution Prevention (DEP/NX) is a vulnerability mitigation option that prevents data from being interpreted as code anywhere within the application. This mitigation protects the application stack, heap and other memory data ranges. Executable files that fail to implement this mitigation expose the user to increased risks of malicious code injection.
Prevalence in PyPI community
22 packages
found in
Top 100
99 packages
found in
Top 1k
398 packages
found in
Top 10k
6.21k packages
in community
Next steps
It's highly recommended to enable this option for all software components used at security boundaries, or those that process user controlled inputs.
To enable this mitigation, refer to your programming language linker documentation.
In Microsoft VisualStudio, you can enable DEP mitigation by setting the linker option /NXCOMPAT to ON.
Problem
Protection from integer-based memory allocation overflow attacks is a vulnerability mitigation implemented by the programming language compiler. It enables enforcement of memory allocation limits during code execution. This is achieved by instrumenting each memory allocation instance (through the programming language keyword 'new') and validating its parameters. Should an application try to allocate a maximum number of elements via a single call to 'new', the execution will be terminated. This vulnerability mitigation is designed to protect against resource exhaustion and improper handling of memory allocation failures.
Prevalence in PyPI community
11 packages
found in
Top 100
33 packages
found in
Top 1k
110 packages
found in
Top 10k
1.65k packages
in community
Next steps
Microsoft VisualStudio users can take advantage of this configuration-free vulnerability mitigation by updating to a newer compiler version. With this update, additional vulnerability mitigation options will also become available.
Problem
Software composition analysis has identified a component with one or more known vulnerabilities. Based on the CVSS scoring, these vulnerabilities have been marked as high severity.
Prevalence in PyPI community
45 packages
found in
Top 100
313 packages
found in
Top 1k
2319 packages
found in
Top 10k
126.15k packages
in community
Next steps
Perform impact analysis for the reported CVEs.
Update the component to the latest version.
If the update can't resolve the issue, create a plan to isolate or replace the affected component.
Problem
Software developers use programming and design knowledge to build reusable software components. Software components are the basic building blocks for modern applications. Software consumed by an enterprise consists of hundreds, and sometimes even thousands of open source components. Software developers publish components they have authored to public repositories. While a new software project is a welcome addition to the open source community, it is not always prudent to indiscriminately use the latest components when building a commercial application. Irrespective of the software quality, the danger of being the first to try out a new project lies in the fact that the software component may contain novel, currently undetected malicious code. Therefore, it is prudent to review software component behaviors and even try out software component in a sandbox, an environment meant for testing untrusted code.
Prevalence in PyPI community
2 packages
found in
Top 100
22 packages
found in
Top 1k
623 packages
found in
Top 10k
614.08k packages
in community
Next steps
Check the software component behaviors for anomalies.
Consider exploratory software component testing within a sandbox environment.
Consider replacing the software component with a more widely used alternative.
Avoid using this software package until it is vetted as safe.
Problem
Address Space Layout Randomization (ASLR) is a vulnerability mitigation option that forces software components to load on a different memory base address each time they are used. This makes the memory layout unpredictable, and it is therefore harder for malicious code to be reliably injected during application runtime.
Prevalence in PyPI community
15 packages
found in
Top 100
49 packages
found in
Top 1k
222 packages
found in
Top 10k
4.06k packages
in community
Next steps
It's highly recommended to enable this option for all software components used at security boundaries, or those that process user controlled inputs. For best results, use ASLR together with Data Execution Prevention (DEP/NX).
To enable this mitigation, refer to your programming language linker documentation.
In Microsoft VisualStudio, you can enable ASLR mitigation by setting the linker option /DYNAMICBASE to ON.
Problem
Security Development Lifecycle (SDL) is a group of enhanced compile-time checks that report common coding mistakes as errors, preventing them from reaching production. These checks minimize the number of security issues by enforcing strict memory access checks. They also prevent the use of hard-to-secure string and memory manipulation functions. To prove the binary has been compiled with these checks enabled, the compiler emits a special debug object. Removing the debug table eliminates this proof. Therefore, this check only applies to binaries that still have their debug tables.
Prevalence in PyPI community
11 packages
found in
Top 100
68 packages
found in
Top 1k
353 packages
found in
Top 10k
13.41k packages
in community
Next steps
You should keep the debug table to prove that the SDL process has been followed.
To enable these checks, refer to your programming language toolchain documentation.
In Microsoft VisualStudio, you can enable this feature by setting the compiler option /SDL to ON.
Problem
Software developers use programming and design knowledge to build reusable software components. Software components are the basic building blocks for modern applications. Software consumed by an enterprise consists of hundreds, and sometimes even thousands of open source components. Software developers publish components they have authored to public repositories. While a new software project is a welcome addition to the open source community. it is not always prudent to indiscriminately use the latest components when building a commercial application. Irrespective of the software quality, the danger of using components that are rarely used to build applications lies in the fact that the software component may contain novel, currently undetected malicious code. Therefore, it is prudent to review software component behaviors and even try out software component in a sandbox, an environment meant for testing untrusted code.
Prevalence in PyPI community
7 packages
found in
Top 100
34 packages
found in
Top 1k
839 packages
found in
Top 10k
928.02k packages
in community
Next steps
Check the software component behaviors for anomalies.
Consider exploratory software component testing within a sandbox environment.
Consider replacing the software component with a more widely used alternative.
Avoid using this software package until it is vetted as safe.
Problem
Control Flow Guard (CFG/CFI) protects the code flow integrity by ensuring that indirect calls are made only to vetted functions. This mitigation protects dynamically resolved function targets by instrumenting the code responsible for transferring execution control. Because the code flow integrity is verified during runtime, malicious code is less likely to be able to hijack trusted execution paths.
Prevalence in PyPI community
28 packages
found in
Top 100
119 packages
found in
Top 1k
511 packages
found in
Top 10k
10.89k packages
in community
Next steps
It's highly recommended to enable this option for all software components used at security boundaries, or those that process user controlled inputs.
To enable this mitigation, refer to your programming language toolchain documentation.
In Microsoft VisualStudio, you can enable CFG mitigation by passing the /guard:cf parameter to the compiler and linker.