Logo
-

Byte Open Security

(ByteOS Network)

Log In

Sign Up

ByteOS

Security
Vulnerability Details
Registries
Custom Views
Weaknesses
Attack Patterns
Filters & Tools
CWE-200:Exposure of Sensitive Information to an Unauthorized Actor
Weakness ID:200
Version:v4.17
Weakness Name:Exposure of Sensitive Information to an Unauthorized Actor
Vulnerability Mapping:Discouraged
Abstraction:Class
Structure:Simple
Status:Draft
Likelihood of Exploit:High
DetailsContent HistoryObserved CVE ExamplesReports
▼Description

The product exposes sensitive information to an actor that is not explicitly authorized to have access to that information.

▼Extended Description

There are many different kinds of mistakes that introduce information exposures. The severity of the error can range widely, depending on the context in which the product operates, the type of sensitive information that is revealed, and the benefits it may provide to an attacker. Some kinds of sensitive information include:

  • private, personal information, such as personal messages, financial data, health records, geographic location, or contact details
  • system status and environment, such as the operating system and installed packages
  • business secrets and intellectual property
  • network status and configuration
  • the product's own code or internal state
  • metadata, e.g. logging of connections or message headers
  • indirect information, such as a discrepancy between two internal operations that can be observed by an outsider

Information might be sensitive to different parties, each of which may have their own expectations for whether the information should be protected. These parties include:

  • the product's own users
  • people or organizations whose information is created or used by the product, even if they are not direct product users
  • the product's administrators, including the admins of the system(s) and/or networks on which the product operates
  • the developer

Information exposures can occur in different ways:

  • the code explicitly inserts sensitive information into resources or messages that are intentionally made accessible to unauthorized actors, but should not contain the information - i.e., the information should have been "scrubbed" or "sanitized"
  • a different weakness or mistake indirectly inserts the sensitive information into resources, such as a web script error revealing the full system path of the program.
  • the code manages resources that intentionally contain sensitive information, but the resources are unintentionally made accessible to unauthorized actors. In this case, the information exposure is resultant - i.e., a different weakness enabled the access to the information in the first place.

It is common practice to describe any loss of confidentiality as an "information exposure," but this can lead to overuse of CWE-200 in CWE mapping. From the CWE perspective, loss of confidentiality is a technical impact that can arise from dozens of different weaknesses, such as insecure file permissions or out-of-bounds read. CWE-200 and its lower-level descendants are intended to cover the mistakes that occur in behaviors that explicitly manage, store, transfer, or cleanse sensitive information.

▼Alternate Terms
Information Disclosure

This term is frequently used in vulnerability advisories to describe a consequence or technical impact, for any vulnerability that has a loss of confidentiality. Often, CWE-200 can be misused to represent the loss of confidentiality, even when the mistake - i.e., the weakness - is not directly related to the mishandling of the information itself, such as an out-of-bounds read that accesses sensitive memory contents; here, the out-of-bounds read is the primary weakness, not the disclosure of the memory. In addition, this phrase is also used frequently in policies and legal documents, but it does not refer to any disclosure of security-relevant information.


Information Leak

This is a frequently used term, however the "leak" term has multiple uses within security. In some cases it deals with the accidental exposure of information from a different weakness, but in other cases (such as "memory leak"), this deals with improper tracking of resources, which can lead to exhaustion. As a result, CWE is actively avoiding usage of the "leak" term.

▼Relationships
Relevant to the view"Research Concepts - (1000)"
NatureMappingTypeIDName
ChildOfDiscouragedC668Exposure of Resource to Wrong Sphere
ParentOfAllowedB209Generation of Error Message Containing Sensitive Information
ParentOfAllowedB1258Exposure of Sensitive System Information Due to Uncleared Debug Information
ParentOfAllowedB1272Sensitive Information Uncleared Before Debug/Power State Transition
ParentOfAllowedB1273Device Unlock Credential Sharing
ParentOfAllowedB1295Debug Messages Revealing Unnecessary Information
ParentOfAllowedB1431Driving Intermediate Cryptographic State/Results to Hardware Module Outputs
ParentOfAllowedB201Insertion of Sensitive Information Into Sent Data
ParentOfAllowedB203Observable Discrepancy
ParentOfAllowedB213Exposure of Sensitive Information Due to Incompatible Policies
ParentOfAllowedB215Insertion of Sensitive Information Into Debugging Code
ParentOfAllowedB359Exposure of Private Personal Information to an Unauthorized Actor
ParentOfAllowedV499Serializable Class Containing Sensitive Data
ParentOfAllowedB497Exposure of Sensitive System Information to an Unauthorized Control Sphere
ParentOfAllowedV498Cloneable Class Containing Sensitive Information
ParentOfAllowedB538Insertion of Sensitive Information into Externally-Accessible File or Directory
Nature: ChildOf
Mapping: Discouraged
Type: Class
ID: 668
Name: Exposure of Resource to Wrong Sphere
Nature: ParentOf
Mapping: Allowed
Type: Base
ID: 209
Name: Generation of Error Message Containing Sensitive Information
Nature: ParentOf
Mapping: Allowed
Type: Base
ID: 1258
Name: Exposure of Sensitive System Information Due to Uncleared Debug Information
Nature: ParentOf
Mapping: Allowed
Type: Base
ID: 1272
Name: Sensitive Information Uncleared Before Debug/Power State Transition
Nature: ParentOf
Mapping: Allowed
Type: Base
ID: 1273
Name: Device Unlock Credential Sharing
Nature: ParentOf
Mapping: Allowed
Type: Base
ID: 1295
Name: Debug Messages Revealing Unnecessary Information
Nature: ParentOf
Mapping: Allowed
Type: Base
ID: 1431
Name: Driving Intermediate Cryptographic State/Results to Hardware Module Outputs
Nature: ParentOf
Mapping: Allowed
Type: Base
ID: 201
Name: Insertion of Sensitive Information Into Sent Data
Nature: ParentOf
Mapping: Allowed
Type: Base
ID: 203
Name: Observable Discrepancy
Nature: ParentOf
Mapping: Allowed
Type: Base
ID: 213
Name: Exposure of Sensitive Information Due to Incompatible Policies
Nature: ParentOf
Mapping: Allowed
Type: Base
ID: 215
Name: Insertion of Sensitive Information Into Debugging Code
Nature: ParentOf
Mapping: Allowed
Type: Base
ID: 359
Name: Exposure of Private Personal Information to an Unauthorized Actor
Nature: ParentOf
Mapping: Allowed
Type: Variant
ID: 499
Name: Serializable Class Containing Sensitive Data
Nature: ParentOf
Mapping: Allowed
Type: Base
ID: 497
Name: Exposure of Sensitive System Information to an Unauthorized Control Sphere
Nature: ParentOf
Mapping: Allowed
Type: Variant
ID: 498
Name: Cloneable Class Containing Sensitive Information
Nature: ParentOf
Mapping: Allowed
Type: Base
ID: 538
Name: Insertion of Sensitive Information into Externally-Accessible File or Directory
▼Memberships
NatureMappingTypeIDName
MemberOfProhibitedV635Weaknesses Originally Used by NVD from 2008 to 2016
MemberOfProhibitedC717OWASP Top Ten 2007 Category A6 - Information Leakage and Improper Error Handling
MemberOfProhibitedC963SFP Secondary Cluster: Exposed Data
MemberOfProhibitedV1003Weaknesses for Simplified Mapping of Published Vulnerabilities
MemberOfProhibitedV1200Weaknesses in the 2019 CWE Top 25 Most Dangerous Software Errors
MemberOfProhibitedV1337Weaknesses in the 2021 CWE Top 25 Most Dangerous Software Weaknesses
MemberOfProhibitedC1345OWASP Top Ten 2021 Category A01:2021 - Broken Access Control
MemberOfProhibitedV1350Weaknesses in the 2020 CWE Top 25 Most Dangerous Software Weaknesses
MemberOfProhibitedC1417Comprehensive Categorization: Sensitive Information Exposure
MemberOfProhibitedV1430Weaknesses in the 2024 CWE Top 25 Most Dangerous Software Weaknesses
Nature: MemberOf
Mapping: Prohibited
Type:View
ID: 635
Name: Weaknesses Originally Used by NVD from 2008 to 2016
Nature: MemberOf
Mapping: Prohibited
Type:Category
ID: 717
Name: OWASP Top Ten 2007 Category A6 - Information Leakage and Improper Error Handling
Nature: MemberOf
Mapping: Prohibited
Type:Category
ID: 963
Name: SFP Secondary Cluster: Exposed Data
Nature: MemberOf
Mapping: Prohibited
Type:View
ID: 1003
Name: Weaknesses for Simplified Mapping of Published Vulnerabilities
Nature: MemberOf
Mapping: Prohibited
Type:View
ID: 1200
Name: Weaknesses in the 2019 CWE Top 25 Most Dangerous Software Errors
Nature: MemberOf
Mapping: Prohibited
Type:View
ID: 1337
Name: Weaknesses in the 2021 CWE Top 25 Most Dangerous Software Weaknesses
Nature: MemberOf
Mapping: Prohibited
Type:Category
ID: 1345
Name: OWASP Top Ten 2021 Category A01:2021 - Broken Access Control
Nature: MemberOf
Mapping: Prohibited
Type:View
ID: 1350
Name: Weaknesses in the 2020 CWE Top 25 Most Dangerous Software Weaknesses
Nature: MemberOf
Mapping: Prohibited
Type:Category
ID: 1417
Name: Comprehensive Categorization: Sensitive Information Exposure
Nature: MemberOf
Mapping: Prohibited
Type:View
ID: 1430
Name: Weaknesses in the 2024 CWE Top 25 Most Dangerous Software Weaknesses
▼Tags
NatureMappingTypeIDName
MemberOfProhibitedBSBOSS-274High likelihood of exploit
MemberOfProhibitedBSBOSS-280Separation of Privilege Strategy
MemberOfProhibitedBSBOSS-294Not Language-Specific Weaknesses
MemberOfProhibitedBSBOSS-306Mobile (technology class) Weaknesses
MemberOfProhibitedBSBOSS-328Read Application Data (impact)
Nature: MemberOf
Mapping: Prohibited
Type:BOSSView
ID: BOSS-274
Name: High likelihood of exploit
Nature: MemberOf
Mapping: Prohibited
Type:BOSSView
ID: BOSS-280
Name: Separation of Privilege Strategy
Nature: MemberOf
Mapping: Prohibited
Type:BOSSView
ID: BOSS-294
Name: Not Language-Specific Weaknesses
Nature: MemberOf
Mapping: Prohibited
Type:BOSSView
ID: BOSS-306
Name: Mobile (technology class) Weaknesses
Nature: MemberOf
Mapping: Prohibited
Type:BOSSView
ID: BOSS-328
Name: Read Application Data (impact)
▼Relevant To View
Relevant to the view"OWASP Top Ten (2021) - (1344)"
NatureMappingTypeIDName
MemberOfProhibitedC1345OWASP Top Ten 2021 Category A01:2021 - Broken Access Control
Nature: MemberOf
Mapping: Prohibited
Type: Category
ID: 1345
Name: OWASP Top Ten 2021 Category A01:2021 - Broken Access Control
Relevant to the view"Software Fault Pattern (SFP) Clusters - (888)"
NatureMappingTypeIDName
MemberOfProhibitedC963SFP Secondary Cluster: Exposed Data
Nature: MemberOf
Mapping: Prohibited
Type: Category
ID: 963
Name: SFP Secondary Cluster: Exposed Data
▼Background Detail

▼Common Consequences
ScopeLikelihoodImpactNote
ConfidentialityN/ARead Application Data
N/A
Scope: Confidentiality
Likelihood: N/A
Impact: Read Application Data
Note:
N/A
▼Potential Mitigations
Phase:Architecture and Design
Mitigation ID: MIT-46
Strategy: Separation of Privilege
Effectiveness:
Description:

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.

Note:

▼Modes Of Introduction
Phase: Architecture and Design
Note:

N/A

Phase: Implementation
Note:

N/A

▼Applicable Platforms
Languages
Class: Not Language-Specific(Undetermined Prevalence)
Technology
Class: Mobile(Undetermined Prevalence)
▼Demonstrative Examples
Example 1

The following code checks validity of the supplied username and password and notifies the user of a successful or failed login.

Language: ( code)
N/A

Language: Perl(Bad code)
my $username=param('username'); my $password=param('password'); if (IsValidUsername($username) == 1) { if (IsValidPassword($username, $password) == 1) { print "Login Successful"; } else { print "Login Failed - incorrect password"; } } else { print "Login Failed - unknown username"; }

Language: ( code)
N/A

In the above code, there are different messages for when an incorrect username is supplied, versus when the username is correct but the password is wrong. This difference enables a potential attacker to understand the state of the login function, and could allow an attacker to discover a valid username by trying different values until the incorrect password message is returned. In essence, this makes it easier for an attacker to obtain half of the necessary authentication credentials.

Language: ( code)
N/A

While this type of information may be helpful to a user, it is also useful to a potential attacker. In the above example, the message for both failed cases should be the same, such as:

Language: (Result code)
"Login Failed - incorrect username or password"

Example 2

This code tries to open a database connection, and prints any exceptions that occur.

Language: ( code)
N/A

Language: PHP(Bad code)
try { openDbConnection(); } //print exception message that includes exception message and configuration file location* catch (Exception $e) { echo 'Caught exception: ', $e->getMessage(), '\n'; echo 'Check credentials in config file at: ', $Mysql_config_location, '\n'; }

Language: ( code)
N/A

If an exception occurs, the printed message exposes the location of the configuration file the script is using. An attacker can use this information to target the configuration file (perhaps exploiting a Path Traversal weakness). If the file can be read, the attacker could gain credentials for accessing the database. The attacker may also be able to replace the file with a malicious one, causing the application to use an arbitrary database.

Example 3

In the example below, the method getUserBankAccount retrieves a bank account object from a database using the supplied username and account number to query the database. If an SQLException is raised when querying the database, an error message is created and output to a log file.

Language: ( code)
N/A

Language: Java(Bad code)
public BankAccount getUserBankAccount(String username, String accountNumber) { BankAccount userAccount = null; String query = null; try { if (isAuthorizedUser(username)) { query = "SELECT * FROM accounts WHERE owner = " + username + " AND accountID = " + accountNumber; DatabaseManager dbManager = new DatabaseManager(); Connection conn = dbManager.getConnection(); Statement stmt = conn.createStatement(); ResultSet queryResult = stmt.executeQuery(query); userAccount = (BankAccount)queryResult.getObject(accountNumber); } } catch (SQLException ex) { String logMessage = "Unable to retrieve account information from database,\nquery: " + query; Logger.getLogger(BankManager.class.getName()).log(Level.SEVERE, logMessage, ex); } return userAccount; }

Language: ( code)
N/A

The error message that is created includes information about the database query that may contain sensitive information about the database or query logic. In this case, the error message will expose the table name and column names used in the database. This data could be used to simplify other attacks, such as SQL injection (CWE-89) to directly access the database.

Example 4

This code stores location information about the current user:

Language: ( code)
N/A

Language: Java(Bad code)
locationClient = new LocationClient(this, this, this); locationClient.connect(); currentUser.setLocation(locationClient.getLastLocation()); ...* catch (Exception e) { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage("Sorry, this application has experienced an error."); AlertDialog alert = builder.create(); alert.show(); Log.e("ExampleActivity", "Caught exception: " + e + " While on User:" + User.toString()); }

Language: ( code)
N/A

When the application encounters an exception it will write the user object to the log. Because the user object contains location information, the user's location is also written to the log.

Example 5

The following is an actual MySQL error statement:

Language: ( code)
N/A

Language: SQL(Result code)
Warning: mysql_pconnect(): Access denied for user: 'root@localhost' (Using password: N1nj4) in /usr/local/www/wi-data/includes/database.inc on line 4

Language: ( code)
N/A

The error clearly exposes the database credentials.

Example 6

This code displays some information on a web page.

Language: ( code)
N/A

Language: JSP(Bad code)
Social Security Number: <%= ssn %></br>Credit Card Number: <%= ccn %>

Language: ( code)
N/A

The code displays a user's credit card and social security numbers, even though they aren't absolutely necessary.

Example 7

The following program changes its behavior based on a debug flag.

Language: ( code)
N/A

Language: JSP(Bad code)
<% if (Boolean.getBoolean("debugEnabled")) { %> User account number: <%= acctNo %> <% } %>

Language: ( code)
N/A

The code writes sensitive debug information to the client browser if the "debugEnabled" flag is set to true .

Example 8

This code uses location to determine the user's current US State location.

Language: ( code)
N/A

Language: ( code)
N/A

First the application must declare that it requires the ACCESS_FINE_LOCATION permission in the application's manifest.xml:

Language: XML(Bad code)
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

Language: ( code)
N/A

During execution, a call to getLastLocation() will return a location based on the application's location permissions. In this case the application has permission for the most accurate location possible:

Language: Java(Bad code)
locationClient = new LocationClient(this, this, this); locationClient.connect(); Location userCurrLocation; userCurrLocation = locationClient.getLastLocation(); deriveStateFromCoords(userCurrLocation);

Language: ( code)
N/A

While the application needs this information, it does not need to use the ACCESS_FINE_LOCATION permission, as the ACCESS_COARSE_LOCATION permission will be sufficient to identify which US state the user is in.

▼Observed Examples
ReferenceDescription
CVE-2022-31162
Rust library leaks Oauth client details in application debug logs
CVE-2021-25476
Digital Rights Management (DRM) capability for mobile platform leaks pointer information, simplifying ASLR bypass
CVE-2001-1483
Enumeration of valid usernames based on inconsistent responses
CVE-2001-1528
Account number enumeration via inconsistent responses.
CVE-2004-2150
User enumeration via discrepancies in error messages.
CVE-2005-1205
Telnet protocol allows servers to obtain sensitive environment information from clients.
CVE-2002-1725
Script calls phpinfo(), revealing system configuration to web user
CVE-2002-0515
Product sets a different TTL when a port is being filtered than when it is not being filtered, which allows remote attackers to identify filtered ports by comparing TTLs.
CVE-2004-0778
Version control system allows remote attackers to determine the existence of arbitrary files and directories via the -X command for an alternate history file, which causes different error messages to be returned.
CVE-2000-1117
Virtual machine allows malicious web site operators to determine the existence of files on the client by measuring delays in the execution of the getSystemResource method.
CVE-2003-0190
Product immediately sends an error message when a user does not exist, which allows remote attackers to determine valid usernames via a timing attack.
CVE-2008-2049
POP3 server reveals a password in an error message after multiple APOP commands are sent. Might be resultant from another weakness.
CVE-2007-5172
Program reveals password in error message if attacker can trigger certain database errors.
CVE-2008-4638
Composite: application running with high privileges (CWE-250) allows user to specify a restricted file to process, which generates a parsing error that leaks the contents of the file (CWE-209).
CVE-2007-1409
Direct request to library file in web application triggers pathname leak in error message.
CVE-2005-0603
Malformed regexp syntax leads to information exposure in error message.
CVE-2004-2268
Password exposed in debug information.
CVE-2003-1078
FTP client with debug option enabled shows password to the screen.
CVE-2022-0708
Collaboration platform does not clear team emails in a response, allowing leak of email addresses
Reference: CVE-2022-31162
Description:
Rust library leaks Oauth client details in application debug logs
Reference: CVE-2021-25476
Description:
Digital Rights Management (DRM) capability for mobile platform leaks pointer information, simplifying ASLR bypass
Reference: CVE-2001-1483
Description:
Enumeration of valid usernames based on inconsistent responses
Reference: CVE-2001-1528
Description:
Account number enumeration via inconsistent responses.
Reference: CVE-2004-2150
Description:
User enumeration via discrepancies in error messages.
Reference: CVE-2005-1205
Description:
Telnet protocol allows servers to obtain sensitive environment information from clients.
Reference: CVE-2002-1725
Description:
Script calls phpinfo(), revealing system configuration to web user
Reference: CVE-2002-0515
Description:
Product sets a different TTL when a port is being filtered than when it is not being filtered, which allows remote attackers to identify filtered ports by comparing TTLs.
Reference: CVE-2004-0778
Description:
Version control system allows remote attackers to determine the existence of arbitrary files and directories via the -X command for an alternate history file, which causes different error messages to be returned.
Reference: CVE-2000-1117
Description:
Virtual machine allows malicious web site operators to determine the existence of files on the client by measuring delays in the execution of the getSystemResource method.
Reference: CVE-2003-0190
Description:
Product immediately sends an error message when a user does not exist, which allows remote attackers to determine valid usernames via a timing attack.
Reference: CVE-2008-2049
Description:
POP3 server reveals a password in an error message after multiple APOP commands are sent. Might be resultant from another weakness.
Reference: CVE-2007-5172
Description:
Program reveals password in error message if attacker can trigger certain database errors.
Reference: CVE-2008-4638
Description:
Composite: application running with high privileges (CWE-250) allows user to specify a restricted file to process, which generates a parsing error that leaks the contents of the file (CWE-209).
Reference: CVE-2007-1409
Description:
Direct request to library file in web application triggers pathname leak in error message.
Reference: CVE-2005-0603
Description:
Malformed regexp syntax leads to information exposure in error message.
Reference: CVE-2004-2268
Description:
Password exposed in debug information.
Reference: CVE-2003-1078
Description:
FTP client with debug option enabled shows password to the screen.
Reference: CVE-2022-0708
Description:
Collaboration platform does not clear team emails in a response, allowing leak of email addresses
▼Affected Resources
    ▼Functional Areas
      ▼Weakness Ordinalities
      OrdinalityDescription
      Primary
      Developers may insert sensitive information that they do not believe, or they might forget to remove the sensitive information after it has been processed
      Resultant
      Separate mistakes or weaknesses could inadvertently make the sensitive information available to an attacker, such as in a detailed error message that can be read by an unauthorized party
      Ordinality: Primary
      Description:
      Developers may insert sensitive information that they do not believe, or they might forget to remove the sensitive information after it has been processed
      Ordinality: Resultant
      Description:
      Separate mistakes or weaknesses could inadvertently make the sensitive information available to an attacker, such as in a detailed error message that can be read by an unauthorized party
      ▼Detection Methods
      Automated Static Analysis - Binary or Bytecode
      Detection Method ID:
      Description:

      According to SOAR, the following detection techniques may be useful:

      ``` Cost effective for partial coverage: ```

      Bytecode Weakness Analysis - including disassembler + source code weakness analysis Inter-application Flow Analysis

      Effectiveness:SOAR Partial
      Note:

      N/A


      Dynamic Analysis with Automated Results Interpretation
      Detection Method ID:
      Description:

      According to SOAR, the following detection techniques may be useful:

      ``` Highly cost effective: ```

      Web Application Scanner Web Services Scanner Database Scanners

      Effectiveness:High
      Note:

      N/A


      Dynamic Analysis with Manual Results Interpretation
      Detection Method ID:
      Description:

      According to SOAR, the following detection techniques may be useful:

      ``` Cost effective for partial coverage: ```

      Fuzz Tester Framework-based Fuzzer Automated Monitored Execution Monitored Virtual Environment - run potentially malicious code in sandbox / wrapper / virtual machine, see if it does anything suspicious

      Effectiveness:SOAR Partial
      Note:

      N/A


      Manual Static Analysis - Source Code
      Detection Method ID:
      Description:

      According to SOAR, the following detection techniques may be useful:

      ``` Highly cost effective: ```

      Manual Source Code Review (not inspections)

      Effectiveness:High
      Note:

      N/A


      Automated Static Analysis - Source Code
      Detection Method ID:
      Description:

      According to SOAR, the following detection techniques may be useful:

      ``` Highly cost effective: ```

      Context-configured Source Code Weakness Analyzer ``` Cost effective for partial coverage: ```

      Source code Weakness Analyzer

      Effectiveness:High
      Note:

      N/A


      Architecture or Design Review
      Detection Method ID:
      Description:

      According to SOAR, the following detection techniques may be useful:

      ``` Highly cost effective: ```

      Formal Methods / Correct-By-Construction ``` Cost effective for partial coverage: ```

      Attack Modeling Inspection (IEEE 1028 standard) (can apply to requirements, design, source code, etc.)

      Effectiveness:High
      Note:

      N/A

      ▼Vulnerability Mapping Notes
      Usage:Discouraged
      Reason:Frequent Misuse
      Rationale:

      CWE-200 is commonly misused to represent the loss of confidentiality in a vulnerability, but confidentiality loss is a technical impact - not a root cause error. As of CWE 4.9, over 400 CWE entries can lead to a loss of confidentiality. Other options are often available. [REF-1287].

      Comments:

      If an error or mistake causes information to be disclosed, then use the CWE ID for that error. Consider starting with improper authorization (CWE-285), insecure permissions (CWE-732), improper authentication (CWE-287), etc. Also consider children such as Insertion of Sensitive Information Into Sent Data (CWE-201), Observable Discrepancy (CWE-203), Insertion of Sensitive Information into Externally-Accessible File or Directory (CWE-538), or others.

      Suggestions:
      ▼Notes
      Maintenance

      As a result of mapping analysis in the 2020 Top 25 and more recent versions, this weakness is under review, since it is frequently misused in mapping to cover many problems that lead to loss of confidentiality. See Mapping Notes, Extended Description, and Alternate Terms.

      N/A

      ▼Taxonomy Mappings
      Taxonomy NameEntry IDFitEntry Name
      PLOVERN/AN/AInformation Leak (information disclosure)
      OWASP Top Ten 2007A6CWE More SpecificInformation Leakage and Improper Error Handling
      WASC13N/AInformation Leakage
      Taxonomy Name: PLOVER
      Entry ID: N/A
      Fit: N/A
      Entry Name: Information Leak (information disclosure)
      Taxonomy Name: OWASP Top Ten 2007
      Entry ID: A6
      Fit: CWE More Specific
      Entry Name: Information Leakage and Improper Error Handling
      Taxonomy Name: WASC
      Entry ID: 13
      Fit: N/A
      Entry Name: Information Leakage
      ▼Related Attack Patterns
      IDName
      CAPEC-116
      Excavation
      CAPEC-13
      Subverting Environment Variable Values
      CAPEC-169
      Footprinting
      CAPEC-22
      Exploiting Trust in Client
      CAPEC-224
      Fingerprinting
      CAPEC-285
      ICMP Echo Request Ping
      CAPEC-287
      TCP SYN Scan
      CAPEC-290
      Enumerate Mail Exchange (MX) Records
      CAPEC-291
      DNS Zone Transfers
      CAPEC-292
      Host Discovery
      CAPEC-293
      Traceroute Route Enumeration
      CAPEC-294
      ICMP Address Mask Request
      CAPEC-295
      Timestamp Request
      CAPEC-296
      ICMP Information Request
      CAPEC-297
      TCP ACK Ping
      CAPEC-298
      UDP Ping
      CAPEC-299
      TCP SYN Ping
      CAPEC-300
      Port Scanning
      CAPEC-301
      TCP Connect Scan
      CAPEC-302
      TCP FIN Scan
      CAPEC-303
      TCP Xmas Scan
      CAPEC-304
      TCP Null Scan
      CAPEC-305
      TCP ACK Scan
      CAPEC-306
      TCP Window Scan
      CAPEC-307
      TCP RPC Scan
      CAPEC-308
      UDP Scan
      CAPEC-309
      Network Topology Mapping
      CAPEC-310
      Scanning for Vulnerable Software
      CAPEC-312
      Active OS Fingerprinting
      CAPEC-313
      Passive OS Fingerprinting
      CAPEC-317
      IP ID Sequencing Probe
      CAPEC-318
      IP 'ID' Echoed Byte-Order Probe
      CAPEC-319
      IP (DF) 'Don't Fragment Bit' Echoing Probe
      CAPEC-320
      TCP Timestamp Probe
      CAPEC-321
      TCP Sequence Number Probe
      CAPEC-322
      TCP (ISN) Greatest Common Divisor Probe
      CAPEC-323
      TCP (ISN) Counter Rate Probe
      CAPEC-324
      TCP (ISN) Sequence Predictability Probe
      CAPEC-325
      TCP Congestion Control Flag (ECN) Probe
      CAPEC-326
      TCP Initial Window Size Probe
      CAPEC-327
      TCP Options Probe
      CAPEC-328
      TCP 'RST' Flag Checksum Probe
      CAPEC-329
      ICMP Error Message Quoting Probe
      CAPEC-330
      ICMP Error Message Echoing Integrity Probe
      CAPEC-472
      Browser Fingerprinting
      CAPEC-497
      File Discovery
      CAPEC-508
      Shoulder Surfing
      CAPEC-573
      Process Footprinting
      CAPEC-574
      Services Footprinting
      CAPEC-575
      Account Footprinting
      CAPEC-576
      Group Permission Footprinting
      CAPEC-577
      Owner Footprinting
      CAPEC-59
      Session Credential Falsification through Prediction
      CAPEC-60
      Reusing Session IDs (aka Session Replay)
      CAPEC-616
      Establish Rogue Location
      CAPEC-643
      Identify Shared Files/Directories on System
      CAPEC-646
      Peripheral Footprinting
      CAPEC-651
      Eavesdropping
      CAPEC-79
      Using Slashes in Alternate Encoding
      ID: CAPEC-116
      Name: Excavation
      ID: CAPEC-13
      Name: Subverting Environment Variable Values
      ID: CAPEC-169
      Name: Footprinting
      ID: CAPEC-22
      Name: Exploiting Trust in Client
      ID: CAPEC-224
      Name: Fingerprinting
      ID: CAPEC-285
      Name: ICMP Echo Request Ping
      ID: CAPEC-287
      Name: TCP SYN Scan
      ID: CAPEC-290
      Name: Enumerate Mail Exchange (MX) Records
      ID: CAPEC-291
      Name: DNS Zone Transfers
      ID: CAPEC-292
      Name: Host Discovery
      ID: CAPEC-293
      Name: Traceroute Route Enumeration
      ID: CAPEC-294
      Name: ICMP Address Mask Request
      ID: CAPEC-295
      Name: Timestamp Request
      ID: CAPEC-296
      Name: ICMP Information Request
      ID: CAPEC-297
      Name: TCP ACK Ping
      ID: CAPEC-298
      Name: UDP Ping
      ID: CAPEC-299
      Name: TCP SYN Ping
      ID: CAPEC-300
      Name: Port Scanning
      ID: CAPEC-301
      Name: TCP Connect Scan
      ID: CAPEC-302
      Name: TCP FIN Scan
      ID: CAPEC-303
      Name: TCP Xmas Scan
      ID: CAPEC-304
      Name: TCP Null Scan
      ID: CAPEC-305
      Name: TCP ACK Scan
      ID: CAPEC-306
      Name: TCP Window Scan
      ID: CAPEC-307
      Name: TCP RPC Scan
      ID: CAPEC-308
      Name: UDP Scan
      ID: CAPEC-309
      Name: Network Topology Mapping
      ID: CAPEC-310
      Name: Scanning for Vulnerable Software
      ID: CAPEC-312
      Name: Active OS Fingerprinting
      ID: CAPEC-313
      Name: Passive OS Fingerprinting
      ID: CAPEC-317
      Name: IP ID Sequencing Probe
      ID: CAPEC-318
      Name: IP 'ID' Echoed Byte-Order Probe
      ID: CAPEC-319
      Name: IP (DF) 'Don't Fragment Bit' Echoing Probe
      ID: CAPEC-320
      Name: TCP Timestamp Probe
      ID: CAPEC-321
      Name: TCP Sequence Number Probe
      ID: CAPEC-322
      Name: TCP (ISN) Greatest Common Divisor Probe
      ID: CAPEC-323
      Name: TCP (ISN) Counter Rate Probe
      ID: CAPEC-324
      Name: TCP (ISN) Sequence Predictability Probe
      ID: CAPEC-325
      Name: TCP Congestion Control Flag (ECN) Probe
      ID: CAPEC-326
      Name: TCP Initial Window Size Probe
      ID: CAPEC-327
      Name: TCP Options Probe
      ID: CAPEC-328
      Name: TCP 'RST' Flag Checksum Probe
      ID: CAPEC-329
      Name: ICMP Error Message Quoting Probe
      ID: CAPEC-330
      Name: ICMP Error Message Echoing Integrity Probe
      ID: CAPEC-472
      Name: Browser Fingerprinting
      ID: CAPEC-497
      Name: File Discovery
      ID: CAPEC-508
      Name: Shoulder Surfing
      ID: CAPEC-573
      Name: Process Footprinting
      ID: CAPEC-574
      Name: Services Footprinting
      ID: CAPEC-575
      Name: Account Footprinting
      ID: CAPEC-576
      Name: Group Permission Footprinting
      ID: CAPEC-577
      Name: Owner Footprinting
      ID: CAPEC-59
      Name: Session Credential Falsification through Prediction
      ID: CAPEC-60
      Name: Reusing Session IDs (aka Session Replay)
      ID: CAPEC-616
      Name: Establish Rogue Location
      ID: CAPEC-643
      Name: Identify Shared Files/Directories on System
      ID: CAPEC-646
      Name: Peripheral Footprinting
      ID: CAPEC-651
      Name: Eavesdropping
      ID: CAPEC-79
      Name: Using Slashes in Alternate Encoding
      ▼References
      Reference ID: REF-172
      Title: Mobile App Top 10 List
      Author: Chris Wysopal
      Section:
      Publication:
      Publisher:
      Edition:
      URL:https://www.veracode.com/blog/2010/12/mobile-app-top-10-list
      URL Date:2023-04-07
      Day:13
      Month:12
      Year:2010
      Reference ID: REF-1287
      Title: Supplemental Details - 2022 CWE Top 25
      Author: MITRE
      Section: Details of Problematic Mappings
      Publication:
      Publisher:
      Edition:
      URL:https://cwe.mitre.org/top25/archive/2022/2022_cwe_top25_supplemental.html#problematicMappingDetails
      URL Date:2024-11-17
      Day:28
      Month:06
      Year:2022
      Details not found