CWE-215: Insertion of Sensitive Information Into Debugging CodeWeakness ID: 215 Vulnerability Mapping:
ALLOWEDThis CWE ID may be used to map to real-world vulnerabilities Abstraction: BaseBase - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource. |
Description The product inserts sensitive information into debugging code, which could expose this information if the debugging code is not disabled in production. Extended Description When debugging, it may be necessary to report detailed information to the programmer. However, if the debugging code is not disabled when the product is operating in a production environment, then this sensitive information may be exposed to attackers. Common Consequences This table specifies different individual consequences associated with the weakness. The Scope identifies the application security area that is violated, while the Impact describes the negative technical impact that arises if an adversary succeeds in exploiting this weakness. The Likelihood provides information about how likely the specific consequence is expected to be seen relative to the other consequences in the list. For example, there may be high likelihood that a weakness will be exploited to achieve a certain impact, but a low likelihood that it will be exploited to achieve a different impact.Scope | Impact | Likelihood |
---|
Confidentiality
| Technical Impact: Read Application Data | |
Potential Mitigations
Phase: Implementation Do not leave debug statements that could be executed in the source code. Ensure that all debug information is eradicated before releasing the software. |
Phase: Architecture and Design Strategy: Separation of Privilege Compartmentalize the system to have "safe" areas where trust boundaries can be unambiguously drawn. Do not allow sensitive data to go outside of the trust boundary and always be careful when interfacing with a compartment outside of the safe area. Ensure that appropriate compartmentalization is built into the system design, and the compartmentalization allows for and reinforces privilege separation functionality. Architects and designers should rely on the principle of least privilege to decide the appropriate time to use privileges and the time to drop privileges. |
Relationships Modes Of Introduction The different Modes of Introduction provide information about how and when this weakness may be introduced. The Phase identifies a point in the life cycle at which introduction may occur, while the Note provides a typical scenario related to introduction during the given phase. Demonstrative Examples Example 1 The following program changes its behavior based on a debug flag. (bad code) Example Language: JSP
<% if (Boolean.getBoolean("debugEnabled")) {
%> User account number: <%= acctNo %> <% } %>
The code writes sensitive debug information to the client browser if the "debugEnabled" flag is set to true . Observed Examples Reference | Description |
| Password exposed in debug information. |
| CGI script includes sensitive information in debug messages when an error is triggered. |
| FTP client with debug option enabled shows password to the screen. |
Detection Methods
Automated Static Analysis Automated static analysis, commonly referred to as Static Application Security Testing (SAST), can find some instances of this weakness by analyzing source code (or binary/compiled code) without having to execute it. Typically, this is done by building a model of data flow and control flow, then searching for potentially-vulnerable patterns that connect "sources" (origins of input) with "sinks" (destinations where the data interacts with external components, a lower layer such as the OS, etc.) |
Memberships This MemberOf Relationships table shows additional CWE Categories and Views that reference this weakness as a member. This information is often useful in understanding where a weakness fits within the context of external information sources. Vulnerability Mapping Notes Usage: ALLOWED (this CWE ID could be used to map to real-world vulnerabilities) | Reason: Acceptable-Use | Rationale: This CWE entry is at the Base level of abstraction, which is a preferred level of abstraction for mapping to the root causes of vulnerabilities. | Comments: Carefully read both the name and description to ensure that this mapping is an appropriate fit. Do not try to 'force' a mapping to a lower-level Base/Variant simply to comply with this preferred level of abstraction. |
Notes Relationship This overlaps other categories. Taxonomy Mappings Mapped Taxonomy Name | Node ID | Fit | Mapped Node Name |
PLOVER | | | Infoleak Using Debug Information |
OWASP Top Ten 2007 | A6 | CWE More Specific | Information Leakage and Improper Error Handling |
OWASP Top Ten 2004 | A10 | CWE More Specific | Insecure Configuration Management |
Software Fault Patterns | SFP23 | | Exposed Data |
Content History Submissions |
---|
Submission Date | Submitter | Organization |
---|
2006-07-19 (CWE Draft 3, 2006-07-19) | PLOVER | | | Modifications |
---|
Modification Date | Modifier | Organization |
---|
2008-07-01 | Sean Eidemiller | Cigital | added/updated demonstrative examples | 2008-07-01 | Eric Dalci | Cigital | updated Time_of_Introduction | 2008-08-15 | | Veracode | Suggested OWASP Top Ten 2004 mapping | 2008-09-08 | CWE Content Team | MITRE | updated Relationships, Relationship_Notes, Taxonomy_Mappings | 2009-05-27 | CWE Content Team | MITRE | updated Demonstrative_Examples | 2010-09-27 | CWE Content Team | MITRE | updated Description, Name, Observed_Examples | 2011-06-01 | CWE Content Team | MITRE | updated Common_Consequences, Relationships, Taxonomy_Mappings | 2012-05-11 | CWE Content Team | MITRE | updated Relationships, Taxonomy_Mappings | 2012-10-30 | CWE Content Team | MITRE | updated Potential_Mitigations | 2014-06-23 | CWE Content Team | MITRE | updated Relationships | 2014-07-30 | CWE Content Team | MITRE | updated Demonstrative_Examples, Relationships, Taxonomy_Mappings | 2017-11-08 | CWE Content Team | MITRE | updated Applicable_Platforms | 2020-02-24 | CWE Content Team | MITRE | updated Demonstrative_Examples, Description, Name, Potential_Mitigations, Relationships, Time_of_Introduction, Type | 2020-12-10 | CWE Content Team | MITRE | updated Potential_Mitigations | 2023-01-31 | CWE Content Team | MITRE | updated Description | 2023-04-27 | CWE Content Team | MITRE | updated Detection_Factors, Relationships, Time_of_Introduction | 2023-06-29 | CWE Content Team | MITRE | updated Mapping_Notes | Previous Entry Names |
---|
Change Date | Previous Entry Name |
---|
2010-09-27 | Information Leak Through Debug Information | | 2020-02-24 | Information Exposure Through Debug Information | |
More information is available — Please edit the custom filter or select a different filter.
|