List of software quality issues with the number of affected components.
category ALL
Policies
Info
Category
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 Visual Studio Code community
67 packages
found in
Top 100
548 packages
found in
Top 1k
3078 packages
found in
Top 10k
17.39k 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
Software composition analysis has identified a component with one or more known vulnerabilities. Based on the CVSS scoring, these vulnerabilities have been marked as critical severity.
Prevalence in Visual Studio Code community
60 packages
found in
Top 100
453 packages
found in
Top 1k
2271 packages
found in
Top 10k
12.07k packages
in community
Next steps
Perform impact analysis for the reported CVEs.
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
Software as a Service (SaaS) platforms expose programmable interfaces to their authenticated users. These web services enable action automation and secure exchange of information. To authenticate, web service users provide a unique account identifier and a secret that confirms their access rights. Account access credentials are considered secrets. They should never be included in a software release package, even if they are obfuscated by encryption on the client-side.
Prevalence in Visual Studio Code community
3 packages
found in
Top 100
32 packages
found in
Top 1k
49 packages
found in
Top 10k
257 packages
in community
Next steps
You should securely store web service access credentials, and fully automate their management and periodic rotation.
If credentials were published unintentionally and the software has been made public, you should revoke exposed credentials and file a security incident.
Examples of service credentials that may have been detected include AWS, Square, Zoho, Duo, PayPal and others.
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 Visual Studio Code community
68 packages
found in
Top 100
555 packages
found in
Top 1k
3086 packages
found in
Top 10k
17.47k 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
Operating systems execute application code in multiple privilege access levels. Separation of privileges is designed to protect the stability and integrity of the operating system by shielding it from issues that the user run applications may cause. However, some users may need to interact with higher privilege parts of the operating system to accomplish specific tasks. For this purpose, operating systems provide facilities that users may leverage to temporarily elevate their running privileges. Users with higher privileges can run any application with the same privilege level as their own. Attackers often try to trick privileged users into running malicious code, enabling them to infect the operating system. While the presence of code that elevates user privileges 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 can elevate user privileges. One example of acceptable use for such functions is allowing the users to install software packages and updates.
Prevalence in Visual Studio Code community
33 packages
found in
Top 100
175 packages
found in
Top 1k
402 packages
found in
Top 10k
1.46k packages
in community
Next steps
Investigate reported detections as indicators of software tampering.
Consult Mitre ATT&CK documentation: T1548 - Abuse Elevation Control Mechanism.
Consider rewriting the flagged code without using the marked behaviors.
Problem
Software components are typically distributed in standardized packaging formats. Software packages are built from instructions written within package manifests that act as blueprints for package assembly. A package manifest declares the most important software properties, such as the package name, its authors and license, external dependencies, and various actions that may occur during the package lifecycle. Package managers are specialized tools used by developers to manage software components. Package managers read these manifests to deploy software components along with their dependencies. The premise of the package management system is that software components are isolated from each other, and that they rely on the package manager to provide their dependencies. However, it was detected that a software component includes code capable of accessing or modifying directories that are maintained exclusively by package managers. This is unusual as it resembles tactics used by threat actors that tamper with installed software components and inject malicious code into trusted execution paths.
Prevalence in Visual Studio Code community
No prevalence information at this time
Next steps
Investigate reported detections as indicators of software tampering.
Consider rewriting the flagged code without using the marked behaviors.
Problem
Software components sometimes need to interact with sensitive parts of the runtime environment, often requiring privileged access to accomplish a task. Cloud workload configuration includes high-value information such as cloud provider credentials, environment variables containing secrets, and configuration files used by cloud and container orchestration tools. That information is used by applications running in cloud and containerized environments. Attackers often abuse access to cloud workload configuration to harvest secrets from developer machines and build environments, which can later be exfiltrated to attacker-controlled infrastructure and used to gain unauthorized access to cloud resources. While the presence of code that accesses cloud workload configuration does not necessarily imply malicious intent, all of its uses in a software package should be documented and approved. Only select software components should consider using functions that read cloud workload configuration. One example of acceptable use for such functions is infrastructure-as-code tooling that legitimately needs to read credentials to provision or manage cloud resources on behalf of the developer.
Prevalence in Visual Studio Code community
No prevalence information at this time
Next steps
Investigate reported detections as indicators of software tampering.
Consider rewriting the flagged code without using the marked behaviors.
Problem
Uniform Resource Locators (URLs) are structured addresses that point to locations and assets on the internet. URLs allow software developers to build complex applications that exchange data with servers that can be hosted in multiple geographical regions. URLs can commonly be found embedded in documentation, configuration files, source code and compiled binaries. One or more embedded URLs were discovered to link to raw files hosted on GitHub. Attackers often abuse popular web services to host malicious payloads. Since code-sharing service URLs are typically allowed by security solutions, using them for payload delivery increases the odds that the malicious code will reach the user. While the presence of code-sharing service locations does not imply malicious intent, all of their uses in a software package should be documented and approved. An increasing number of software supply chain attacks in the open source space leverage the GitHub service to deliver malicious payloads.
Prevalence in Visual Studio Code community
79 packages
found in
Top 100
622 packages
found in
Top 1k
4233 packages
found in
Top 10k
29.36k packages
in community
Next steps
Investigate reported detections.
If the software should not include these network references, investigate your build and release environment for software supply chain compromise.
You should delay the software release until the investigation is completed, or until the issue is risk accepted.
Consider an alternative delivery mechanism for software packages.
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
26 packages
found in
Top 100
151 packages
found in
Top 1k
409 packages
found in
Top 10k
1.45k 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.
Problem
On Linux, external symbols are resolved via the procedure linkage table (PLT) and the global offset table (GOT). The global offset table is split into two tables - one for external data, and one for external functions. Without any protection, both are writable at runtime and thus leave the executable vulnerable to data overwrite attacks and pointer hijacking. Data overwrite attacks can be mitigated by using partial read-only relocations, while pointer hijacking can be mitigated with full read-only relocations. Both approaches have some drawbacks. Partial read-only relocations don't provide full protection, because the external function GOT remains writable. Full read-only relocations require that all external function symbols are resolved at load-time instead of during execution. This may increase loading time for large programs.
Prevalence in Visual Studio Code community
18 packages
found in
Top 100
113 packages
found in
Top 1k
299 packages
found in
Top 10k
951 packages
in community
Next steps
In most cases, it's recommended to use full read-only relocations (in GCC: -Wl,-z,relro,-z,now).
If the executable load-time is an issue, you should use partial read-only relocations.