Improper Cross-boundary Removal of Sensitive DataID: 212 | Date: (C)2012-05-14 (M)2022-10-10 |
Type: weakness | Status: INCOMPLETE |
Abstraction Type: Base |
Description
The software uses a resource that contains sensitive data, but
it does not properly remove that data before it stores, transfers, or shares the
resource with actors in another control sphere.
Extended DescriptionResources that may contain sensitive data include documents, packets,
messages, databases, etc. While this data may be useful to an individual
user or small set of users who share the resource, it may need to be removed
before the resource can be shared outside of the trusted group. The process
of removal is sometimes called cleansing or scrubbing.For example, software that is used for editing documents might not remove
sensitive data such as reviewer comments or the local pathname where the
document is stored. Or, a proxy might not remove an internal IP address from
headers before making an outgoing request to an Internet site.
Applicable PlatformsLanguage Class: Language-independent
Time Of Introduction
- Architecture and Design
- Implementation
- Operation
Related Attack Patterns
Common Consequences
Scope | Technical Impact | Notes |
---|
Confidentiality | Read files or
directoriesRead application
data | Sensitive data may be exposed to an unauthorized actor in another
control sphere. This may have a wide range of secondary consequences
which will depend on what data is exposed. One possibility is the
exposure of system data allowing an attacker to craft a specific, more
effective attack. |
Detection MethodsNone
Potential Mitigations
Phase | Strategy | Description | Effectiveness | Notes |
---|
Requirements | | Clearly specify which information should be regarded as private or
sensitive, and require that the product offers functionality that allows
the user to cleanse the sensitive information from the resource before
it is published or exported to other parties. | | |
Architecture and Design | 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 that the compartmentalization serves to allow for and further
reinforce privilege separation functionality. Architects and designers
should rely on the principle of least privilege to decide when it is
appropriate to use and to drop system privileges. | | |
Implementation | Identify and Reduce Attack Surface | Use naming conventions and strong types to make it easier to spot when
sensitive data is being used. When creating structures, objects, or
other complex entities, separate the sensitive and non-sensitive data as
much as possible. | Defense in Depth | This makes it easier to spot places in the code where data is being
used that is unencrypted. |
Implementation | | Avoid errors related to improper resource shutdown or release
(CWE-404), which may leave the sensitive data within the resource if it
is in an incomplete state. | | |
RelationshipsThis entry is intended to be different from resultant information leaks,
including those that occur from improper buffer initialization and reuse,
improper encryption, interaction errors, and multiple interpretation errors.
This entry could be regarded as a privacy leak, depending on the type of
information that is leaked.There is a close association between CWE-226 and CWE-212. The difference
is partially that of perspective. CWE-226 is geared towards the final stage
of the resource lifecycle, in which the resource is deleted, eliminated,
expired, or otherwise released for reuse. Technically, this involves a
transfer to a different control sphere, in which the original contents of
the resource are no longer relevant. CWE-212, however, is intended for
sensitive data in resources that are intentionally shared with others, so
they are still active. This distinction is useful from the perspective of
the CWE research view (CWE-1000).
Related CWE | Type | View | Chain |
---|
CWE-212 ChildOf CWE-895 | Category | CWE-888 | |
Demonstrative Examples (Details)
- This code either generates a public HTML user information page or a
JSON response containing the same user information.
Observed Examples
- CVE-2005-0406 : Some image editors modify a JPEG image, but the original EXIF thumbnail image is left intact within the JPEG. (Also an interaction error).
- CVE-2002-0704 : NAT feature in firewall leaks internal IP addresses in ICMP error messages.
For more examples, refer to CVE relations in the bottom box.
White Box Definitions None
Black Box Definitions None
Taxynomy Mappings
Taxynomy | Id | Name | Fit |
---|
PLOVER | | Cross-Boundary Cleansing Infoleak | |
References:None