List of software quality issues with the number of affected components.
category ALL
Policies
Info
Count
Category
Detected presence of malicious files by a machine learning algorithm.
Causes risk: malicious components found
3
threats
Problem
Proprietary ReversingLabs malware detection algorithms have determined that the software package contains one or more malicious files. The detection was made by a machine learning model. This malware detection method is considered proactive, and can typically identify the malware threat type. The detection is strongly influenced by behaviors that software components exhibit. Behaviors similar to previously discovered malware and software supply chain attacks may cause some otherwise benign components to be detected as malicious.Prevalence in Visual Studio Code community
13 packages
found in
Top 100
26 packages
found in
Top 1k
67 packages
found in
Top 10k
218 packages
in community
Next steps
Inspect behaviors exhibited by the detected software components.
If the software behaviors differ from expected, investigate the build and release environment for software supply chain compromise.
Avoid using this software package until it is vetted as safe.
Consider rewriting code that may have triggered the detection due to its malware similarity.
Detected Linux executable files that do not implement the ASLR vulnerability mitigation protection.
Causes risk: baseline mitigations missing
43
hardening
Problem
ASLR (address-space layout randomization) is a mitigation technique that increases the difficulty of performing buffer-overflow attacks that require the attacker to know the address of the program in memory. This is done by loading the program at a randomly selected address in the process' address space. ASLR-enabled kernels can choose a random load address only for position-independent executables and code.Prevalence in Visual Studio Code community
25 packages
found in
Top 100
144 packages
found in
Top 1k
407 packages
found in
Top 10k
1385 packages
in community
Next steps
To support ASLR, the program must be compiled as position-independent code. In most compilers, this is done by passing the corresponding position-independent flag, such as -fPIC for shared libraries or -fPIE for executables.
Detected presence of software components that can tamper with the system network settings.
22
hunting
Problem
Software components sometimes need to interact with higher privilege parts of the operating system, often requiring administrative access to accomplish a task. Operating systems include a complete network stack with many services that allow the machine to connect to the internet. Some of these services are used to secure network access. For that reason, attackers often aim to tamper with system network settings. Disabling firewalls and other network security features enable the malicious code to execute without being blocked. While the presence of code that tampers with system network settings does not necessarily imply malicious intent, all of its uses in a software package should be documented and approved. Only select applications should consider using functions that interact with system network settings. One example of acceptable use for such functions is allowing specialized applications to use non-standard network ports by updating the firewall allowlist.Prevalence in Visual Studio Code community
13 packages
found in
Top 100
63 packages
found in
Top 1k
147 packages
found in
Top 10k
536 packages
in community
Next steps
Investigate reported detections as indicators of software tampering.
Consult Mitre ATT&CK documentation: T1562.004 - Disable or Modify System Firewall.
Consider rewriting the flagged code without using the marked behaviors.
Detected Windows executable files that do not implement CFG vulnerability mitigation protection.
Causes risk: modern mitigations missing
11
hardening
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 Visual Studio Code community
27 packages
found in
Top 100
204 packages
found in
Top 1k
700 packages
found in
Top 10k
2735 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.
Detected Windows executable files that do not implement long jump control flow vulnerability mitigation protection.
Causes risk: low priority mitigations absent
11
hardening
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. Higher-level programming languages implement structured exception handling by managing their own code flow execution paths. As such, they are subject to code flow hijacking during runtime. Language-specific exception handling mitigation enforces execution integrity by instrumenting calls to manage execution context switching. Any deviation from the known and trusted code flow paths will cause the application to terminate. This makes malicious code less likely to execute.Prevalence in Visual Studio Code community
43 packages
found in
Top 100
278 packages
found in
Top 1k
880 packages
found in
Top 10k
4106 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.
Detected presence of hardcoded source code filenames or paths.
Causes risk: debugging symbols found
50
secrets
Problem
Common compilers often embed source code information into executables for debugging purposes, usually by mapping symbols to source filenames or paths. While this is typically desirable in open-source software and standard tools, that information can be used to determine security weaknesses, code repository layout, trade secrets and similar sensitive information. Such symbols make it easier to reverse-engineer a closed source application.Prevalence in Visual Studio Code community
33 packages
found in
Top 100
234 packages
found in
Top 1k
594 packages
found in
Top 10k
2176 packages
in community
Next steps
Strip out such information in the linking phase by using compiler options like the -s flag in GCC, or in the post-build phase by using the strip tool.