Twitter has been fined $150 million for using phone numbers submitted by users to boost their security… for targeted advertising.
Monthly Archives: May 2022
CWE-99 – Improper Control of Resource Identifiers (‘Resource Injection’)
Description
The software receives input from an upstream component, but it does not restrict or incorrectly restricts the input before it is used as an identifier for a resource that may be outside the intended sphere of control.
Modes of Introduction:
– Architecture and Design
Likelihood of Exploit: High
Related Weaknesses
Consequences
Confidentiality, Integrity: Read Application Data, Modify Application Data, Read Files or Directories, Modify Files or Directories
An attacker could gain access to or modify sensitive data or system resources. This could allow access to protected files or directories including configuration files and files containing sensitive information.
Potential Mitigations
Phase: Implementation
Effectiveness:
Description:
CVE References
CWE-98 – Improper Control of Filename for Include/Require Statement in PHP Program (‘PHP Remote File Inclusion’)
Description
The PHP application receives input from an upstream component, but it does not restrict or incorrectly restricts the input before its usage in “require,” “include,” or similar functions.
In certain versions and configurations of PHP, this can allow an attacker to specify a URL to a remote location from which the software will obtain the code to execute. In other cases in association with path traversal, the attacker can specify a local file that may contain executable statements that can be parsed by PHP.
Modes of Introduction:
– Implementation
Likelihood of Exploit: High
Related Weaknesses
CWE-706
CWE-829
CWE-94
CWE-426
Consequences
Integrity, Confidentiality, Availability: Execute Unauthorized Code or Commands
The attacker may be able to specify arbitrary code to be executed from a remote location. Alternatively, it may be possible to use normal program behavior to insert php code into files on the local machine which can then be included and force the code to execute since php ignores everything in the file except for the content between php specifiers.
Potential Mitigations
Phase: Architecture and Design
Effectiveness:
Description:
Use a vetted library or framework that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid.
Phase: Architecture and Design
Effectiveness:
Description:
Phase: Architecture and Design
Effectiveness:
Description:
For any security checks that are performed on the client side, ensure that these checks are duplicated on the server side, in order to avoid CWE-602. Attackers can bypass the client-side checks by modifying values after the checks have been performed, or by changing the client to remove the client-side checks entirely. Then, these modified values would be submitted to the server.
Phase: Architecture and Design, Operation
Effectiveness: Limited
Description:
The effectiveness of this mitigation depends on the prevention capabilities of the specific sandbox or jail being used and might only help to reduce the scope of an attack, such as restricting the attacker to certain system calls or limiting the portion of the file system that can be accessed.
Phase: Architecture and Design, Operation
Effectiveness:
Description:
Run your code using the lowest privileges that are required to accomplish the necessary tasks [REF-76]. If possible, create isolated accounts with limited privileges that are only used for a single task. That way, a successful attack will not immediately give the attacker access to the rest of the software or its environment. For example, database applications rarely need to run as the database administrator, especially in day-to-day operations.
Phase: Implementation
Effectiveness: High
Description:
Phase: Architecture and Design, Operation
Effectiveness:
Description:
Phase: Architecture and Design, Implementation
Effectiveness:
Description:
Phase: Operation
Effectiveness: Moderate
Description:
Use an application firewall that can detect attacks against this weakness. It can be beneficial in cases in which the code cannot be fixed (because it is controlled by a third party), as an emergency prevention measure while more comprehensive software assurance measures are applied, or to provide defense in depth.
An application firewall might not cover all possible input vectors. In addition, attack techniques might be available to bypass the protection mechanism, such as using malformed inputs that can still be processed by the component that receives those inputs. Depending on functionality, an application firewall might inadvertently reject or modify legitimate requests. Finally, some manual effort may be required for customization.
Phase: Operation, Implementation
Effectiveness:
Description:
Develop and run your code in the most recent versions of PHP available, preferably PHP 6 or later. Many of the highly risky features in earlier PHP interpreters have been removed, restricted, or disabled by default.
Phase: Operation, Implementation
Effectiveness:
Description:
Phase: Operation
Effectiveness: High
Description:
Set allow_url_fopen to false, which limits the ability to include files from remote locations.
Be aware that some versions of PHP will still accept ftp:// and other URI schemes. In addition, this setting does not protect the code from path traversal attacks (CWE-22), which are frequently successful against the same vulnerable code that allows remote file inclusion.
CVE References
- CVE-2004-0285
- Modification of assumed-immutable configuration variable in include file allows file inclusion via direct request.
- CVE-2004-0030
- Modification of assumed-immutable configuration variable in include file allows file inclusion via direct request.
- CVE-2004-0068
- Modification of assumed-immutable configuration variable in include file allows file inclusion via direct request.
- CVE-2005-2157
- Modification of assumed-immutable configuration variable in include file allows file inclusion via direct request.
- CVE-2005-2162
- Modification of assumed-immutable configuration variable in include file allows file inclusion via direct request.
- CVE-2005-2198
- Modification of assumed-immutable configuration variable in include file allows file inclusion via direct request.
- CVE-2004-0128
- Modification of assumed-immutable variable in configuration script leads to file inclusion.
- CVE-2005-1864
- PHP file inclusion.
- CVE-2005-1869
- PHP file inclusion.
- CVE-2005-1870
- PHP file inclusion.
- CVE-2005-2154
- PHP local file inclusion.
- CVE-2002-1704
- PHP remote file include.
- CVE-2002-1707
- PHP remote file include.
- CVE-2005-1964
- PHP remote file include.
- CVE-2005-1681
- PHP remote file include.
- CVE-2005-2086
- PHP remote file include.
- CVE-2004-0127
- Directory traversal vulnerability in PHP include statement.
- CVE-2005-1971
- Directory traversal vulnerability in PHP include statement.
- CVE-2005-3335
- PHP file inclusion issue, both remote and local; local include uses “..” and “%00” characters as a manipulation, but many remote file inclusion issues probably have this vector.
- CVE-2009-1936
- chain: library file sends a redirect if it is directly requested but continues to execute, allowing remote file inclusion and path traversal.
CWE-97 – Improper Neutralization of Server-Side Includes (SSI) Within a Web Page
Description
The software generates a web page, but does not neutralize or incorrectly neutralizes user-controllable input that could be interpreted as a server-side include (SSI) directive.
Modes of Introduction:
– Architecture and Design
Likelihood of Exploit:
Related Weaknesses
Consequences
Confidentiality, Integrity, Availability: Execute Unauthorized Code or Commands
Potential Mitigations
CVE References
CWE-96 – Improper Neutralization of Directives in Statically Saved Code (‘Static Code Injection’)
Description
The software receives input from an upstream component, but it does not neutralize or incorrectly neutralizes code syntax before inserting the input into an executable resource, such as a library, configuration file, or template.
Modes of Introduction:
– Architecture and Design
Likelihood of Exploit:
Related Weaknesses
Consequences
Confidentiality: Read Files or Directories, Read Application Data
The injected code could access restricted data / files.
Access Control: Bypass Protection Mechanism
In some cases, injectable code controls authentication; this may lead to a remote vulnerability.
Access Control: Gain Privileges or Assume Identity
Injected code can access resources that the attacker is directly prevented from accessing.
Integrity, Confidentiality, Availability, Other: Execute Unauthorized Code or Commands
Code injection attacks can lead to loss of data integrity in nearly all cases as the control-plane data injected is always incidental to data recall or writing. Additionally, code injection can often result in the execution of arbitrary code.
Non-Repudiation: Hide Activities
Often the actions performed by injected control code are unlogged.
Potential Mitigations
Phase: Implementation
Effectiveness:
Description:
Phase: Implementation
Effectiveness:
Description:
Perform proper output validation and escaping to neutralize all code syntax from data written to code files.
CVE References
- CVE-2002-0495
- Perl code directly injected into CGI library file from parameters to another CGI program.
- CVE-2005-1876
- Direct PHP code injection into supporting template file.
- CVE-2005-1894
- Direct code injection into PHP script that can be accessed by attacker.
- CVE-2003-0395
- PHP code from User-Agent HTTP header directly inserted into log file implemented as PHP script.
- CVE-2007-6652
- chain: execution after redirect allows non-administrator to perform static code injection.
CWE-95 – Improper Neutralization of Directives in Dynamically Evaluated Code (‘Eval Injection’)
Description
The software receives input from an upstream component, but it does not neutralize or incorrectly neutralizes code syntax before using the input in a dynamic evaluation call (e.g. “eval”).
This may allow an attacker to execute arbitrary code, or at least modify what code can be executed.
Modes of Introduction:
– Architecture and Design
Likelihood of Exploit: Medium
Related Weaknesses
Consequences
Confidentiality: Read Files or Directories, Read Application Data
The injected code could access restricted data / files.
Access Control: Bypass Protection Mechanism
In some cases, injectable code controls authentication; this may lead to a remote vulnerability.
Access Control: Gain Privileges or Assume Identity
Injected code can access resources that the attacker is directly prevented from accessing.
Integrity, Confidentiality, Availability, Other: Execute Unauthorized Code or Commands
Code injection attacks can lead to loss of data integrity in nearly all cases as the control-plane data injected is always incidental to data recall or writing. Additionally, code injection can often result in the execution of arbitrary code.
Non-Repudiation: Hide Activities
Often the actions performed by injected control code are unlogged.
Potential Mitigations
Phase: Architecture and Design, Implementation
Effectiveness:
Description:
If possible, refactor your code so that it does not need to use eval() at all.
Phase: Implementation
Effectiveness:
Description:
Phase: Implementation
Effectiveness:
Description:
CVE References
- CVE-2008-5071
- Eval injection in PHP program.
- CVE-2002-1750
- Eval injection in Perl program.
- CVE-2008-5305
- Eval injection in Perl program using an ID that should only contain hyphens and numbers.
- CVE-2002-1752
- Direct code injection into Perl eval function.
- CVE-2002-1753
- Eval injection in Perl program.
- CVE-2005-1527
- Direct code injection into Perl eval function.
- CVE-2005-2837
- Direct code injection into Perl eval function.
- CVE-2005-1921
- MFV. code injection into PHP eval statement using nested constructs that should not be nested.
- CVE-2005-2498
- MFV. code injection into PHP eval statement using nested constructs that should not be nested.
- CVE-2005-3302
- Code injection into Python eval statement from a field in a formatted file.
- CVE-2007-1253
- Eval injection in Python program.
- CVE-2001-1471
- chain: Resultant eval injection. An invalid value prevents initialization of variables, which can be modified by attacker and later injected into PHP eval statement.
- CVE-2007-2713
- Chain: Execution after redirect triggers eval injection.
CWE-943 – Improper Neutralization of Special Elements in Data Query Logic
Description
The application generates a query intended to access or manipulate data in a data store such as a database, but it does not neutralize or incorrectly neutralizes special elements that can modify the intended logic of the query.
Modes of Introduction:
– Implementation
Likelihood of Exploit:
Related Weaknesses
Consequences
Confidentiality, Integrity, Availability, Access Control: Bypass Protection Mechanism, Read Application Data, Modify Application Data, Varies by Context
Potential Mitigations
CVE References
- CVE-2014-2503
- Injection using Documentum Query Language (DQL)
- CVE-2014-2508
- Injection using Documentum Query Language (DQL)
CWE-942 – Permissive Cross-domain Policy with Untrusted Domains
Description
The software uses a cross-domain policy file that includes domains that should not be trusted.
Modes of Introduction:
– Implementation
Likelihood of Exploit:
Related Weaknesses
Consequences
Confidentiality, Integrity, Availability, Access Control: Execute Unauthorized Code or Commands, Bypass Protection Mechanism, Read Application Data, Varies by Context
An attacker may be able to bypass the web browser’s same-origin policy. An attacker can exploit the weakness to manipulate or steal cookies, create requests that can be mistaken for those of a valid user, compromise confidential information, or execute malicious code on the end user systems for a variety of nefarious purposes. Other damaging attacks include the disclosure of end user files, installation of Trojan horse programs, redirecting the user to some other page or site, running ActiveX controls (under Microsoft Internet Explorer) from sites that a user perceives as trustworthy, and modifying presentation of content.
Potential Mitigations
Phase: Architecture and Design
Effectiveness:
Description:
Avoid using wildcards in the cross-domain policy file. Any domain matching the wildcard expression will be implicitly trusted, and can perform two-way interaction with the target server.
Phase: Architecture and Design, Operation
Effectiveness:
Description:
For Flash, modify crossdomain.xml to use meta-policy options such as ‘master-only’ or ‘none’ to reduce the possibility of an attacker planting extraneous cross-domain policy files on a server.
Phase: Architecture and Design, Operation
Effectiveness:
Description:
For Flash, modify crossdomain.xml to use meta-policy options such as ‘master-only’ or ‘none’ to reduce the possibility of an attacker planting extraneous cross-domain policy files on a server.
CVE References
- CVE-2012-2292
- Product has a Silverlight cross-domain policy that does not restrict access to another application, which allows remote attackers to bypass the Same Origin Policy.
- CVE-2014-2049
- The default Flash Cross Domain policies in a product allows remote attackers to access user files.
- CVE-2007-6243
- Chain: Adobe Flash Player does not sufficiently restrict the interpretation and usage of cross-domain policy files, which makes it easier for remote attackers to conduct cross-domain and cross-site scripting (XSS) attacks.
- CVE-2008-4822
- Chain: Adobe Flash Player and earlier does not properly interpret policy files, which allows remote attackers to bypass a non-root domain policy.
- CVE-2010-3636
- Chain: Adobe Flash Player does not properly handle unspecified encodings during the parsing of a cross-domain policy file, which allows remote web servers to bypass intended access restrictions via unknown vectors.
CWE-941 – Incorrectly Specified Destination in a Communication Channel
Description
The software creates a communication channel to initiate an outgoing request to an actor, but it does not correctly specify the intended destination for that actor.
Modes of Introduction:
– Architecture and Design
Likelihood of Exploit:
Related Weaknesses
Consequences
Potential Mitigations
CVE References
- CVE-2013-5211
- composite: NTP feature generates large responses (high amplification factor) with spoofed UDP source addresses.
- CVE-1999-0513
- Classic “Smurf” attack, using spoofed ICMP packets to broadcast addresses.
- CVE-1999-1379
- DNS query with spoofed source address causes more traffic to be returned to spoofed address than was sent by the attacker.
CWE-940 – Improper Verification of Source of a Communication Channel
Description
The software establishes a communication channel to handle an incoming request that has been initiated by an actor, but it does not properly verify that the request is coming from the expected origin.
When an attacker can successfully establish a communication channel from an untrusted origin, the attacker may be able to gain privileges and access unexpected functionality.
Modes of Introduction:
– Architecture and Design
Likelihood of Exploit:
Related Weaknesses
Consequences
Access Control, Other: Gain Privileges or Assume Identity, Varies by Context
An attacker can access any functionality that is inadvertently accessible to the source.
Potential Mitigations
Phase: Architecture and Design
Effectiveness:
Description:
CVE References
- CVE-2000-1218
- DNS server can accept DNS updates from hosts that it did not query, leading to cache poisoning
- CVE-2005-0877
- DNS server can accept DNS updates from hosts that it did not query, leading to cache poisoning
- CVE-2001-1452
- DNS server caches glue records received from non-delegated name servers