List of software quality issues with the number of affected components.
category ALL
Policies
Info
Count
Category
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 services 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 leverages the GitHub service to deliver malicious payloads.Prevalence in PyPI community
33 packages
found in
Top 100
206 packages
found in
Top 1k
1631 packages
found in
Top 10k
63840 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.
Detected presence of plaintext credentials within network protocol strings.
Causes risk: web service credentials found
3
secrets
Problem
Various network communication protocols allow including plaintext authentication credentials. Information such as user names and passwords could be passed through a non-encrypted channel, and therefore intercepted by malicious actors. Credentials are considered secrets, and should be kept encrypted until they are used. This policy control matches the following URI pattern protocol://username:password@domain within any software package component.Prevalence in PyPI community
21 packages
found in
Top 100
85 packages
found in
Top 1k
369 packages
found in
Top 10k
6869 packages
in community
Next steps
Review the reported matches. If the warning refers to a placeholder credential value, it can be safely ignored.
Problem
Software components contain executable code that performs actions implemented during its development. These actions are called behaviors. In the analysis report, behaviors are presented as human-readable descriptions that best match the underlying code intent. While most behaviors are benign, some are commonly abused by malicious software with the intent to cause harm. When a software package shares behavior traits with malicious software, it may become flagged by security solutions. Any detection from security solutions can cause friction for the end-users during software deployment. While the behavior is likely intended by the developer, there is a small chance this detection is true positive, and an early indication of a software supply chain attack.Prevalence in PyPI community
0 packages
found in
Top 100
2 packages
found in
Top 1k
7 packages
found in
Top 10k
1009 packages
in community
Next steps
Investigate reported detections.
If the software intent does not relate to the reported behavior, 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 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. Top-level domains (TLD) are a part of the Domain Name System (DNS), and are used to lookup an Internet Protocol (IP) address of a requested website. There are a few different types of top-level domains. Generic, sponsored and country-code TLDs are generally accessible to the public. Registrars that govern the assignment of domain names within the TLD may choose to sell specific domain names to an interested party. However, some registrars are known to have less strict rules for assigning domain names. Attackers often abuse gaps in governance and actively seek to register their malicious domains in such TLDs. This issue is raised for all domains registered within TLDs that harbor an excessive number of malicious sites. While the presence of suspicious TLDs does not imply malicious intent, all of its uses in a software package should be documented and approved.Prevalence in PyPI community
12 packages
found in
Top 100
83 packages
found in
Top 1k
478 packages
found in
Top 10k
15910 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 changing the top-level domain to avoid being flagged by security solutions.
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. URL paths provide additional information to a web service when making a request. They are an optional, but an important part of the URL, as they may define specific content or actions based on the data being passed. Some parameters they pass might be considered sensitive information. Since path components are not encrypted this might cause sensitive information to leak. This issue is raised for URL paths than might contain information that attackers can easily intercept. Examples of sensitive information fields include passwords and other similar parameters.Prevalence in PyPI community
12 packages
found in
Top 100
59 packages
found in
Top 1k
404 packages
found in
Top 10k
8958 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 removing all references to flagged network locations.
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. When accessing the internet, a device is assigned a unique Internet Protocol (IP) address. This address identifies the point of origin and destination of each request a connected device makes. Attackers often aim to better understand their targets. Collecting basic reconnaissance information typically includes the IP address of a machine. While the operating system has the utilities to get this information, some attackers may prefer getting this data from an external source. Many web services host pages that return the IP address of the caller. For that reason, attackers often opt to get the IP information from a third-party service. While the presence of IP querying services does not imply malicious intent, all of their uses in a software package should be documented and approved.Prevalence in PyPI community
0 packages
found in
Top 100
11 packages
found in
Top 1k
67 packages
found in
Top 10k
3941 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 mechanism for detecting the machine's IP address.
Problem
Crypto tokens are versatile digital assets used within the blockchain ecosystem. Crypto tokens are used to represent a wide range of values, rights, or utilities. They play a crucial role in decentralized finance (DeFi), governance, and other blockchain-based applications. Most crypto tokens are built on existing blockchains using smart contracts. A smart contract is a self-executing contract with the terms of the agreement directly written as lines of code. These contracts automatically execute and enforce themselves when predetermined conditions are met, without the need for intermediaries. For this reason, attackers often aim to steal crypto tokens from the machines they infect. Once stolen, crypto tokens are difficult to trace or recover due to the decentralized and pseudonymous nature of blockchain technology. The irreversibility of blockchain transactions means that once the tokens are transferred to the another crypto wallet, they are effectively gone, making them an attractive target for financially motivated actors. While presence of regex code that detects crypto tokens does not imply malicious intent, all of its uses in a software package should be documented and approved. Only select applications should consider working with crypto tokens.Prevalence in PyPI community
0 packages
found in
Top 100
2 packages
found in
Top 1k
0 packages
found in
Top 10k
283 packages
in community
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. A port number is associated with a network address of a host, such as an IP address, and the type of network protocol used for communication. Within URLs, the ports are optional. Ports can be specified in a URL immediately following the domain name. Each network protocol, or schema, has a set of standard ports on which the service operates. This issue is raised when a mismatch between a network protocol and its expected port number is detected. While the presence of non-standard ports does not imply malicious intent, all of their uses in a software package should be documented and approved.Prevalence in PyPI community
34 packages
found in
Top 100
261 packages
found in
Top 1k
1650 packages
found in
Top 10k
58747 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 changing the port to one that is standard for the networking protocol.
Problem
Operating systems allow multiple user accounts to coexist on a single computer system. Each registered user has identity information associated with their account. At the very least, user accounts consist of a user name and an optional password. In some cases, user account data may also include personally identifiable information. Extended personal information may include user's given and last name, their email and mailing address, personal photo and their telephone number. Financially motivated attackers may seek to collect personal information for purposes of selling the private data to a third-party. Malicious code that typically exhibits these behavior traits is commonly referred to as an information stealer. While the presence of code that accesses identity information does not necessarily imply malicious intent, all of its uses in a software package should be documented and approved. Accessing identity information is a very common behavior for software packages. One example of acceptable use for such functions is verifying that the active user has purchased a software license that allows them to run the application.Prevalence in PyPI community
14 packages
found in
Top 100
94 packages
found in
Top 1k
529 packages
found in
Top 10k
17318 packages
in community
Next steps
Investigate reported detections as indicators of software tampering.
Consult Mitre ATT&CK documentation: T1033 - System Owner/User Discovery.