Skip to content
OpenAdvisories

Weakness (CWE)

CWE-212: Improper Removal of Sensitive Information Before Storage or Transfer

Base Incomplete

The product stores, transfers, or shares a resource that contains sensitive information, but it does not properly remove that information before the product makes the resource available to unauthorized actors.

More detail

Resources 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, a product 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.

How to prevent it (5 mitigations)
  1. 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.

  2. Architecture and Design

    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.

  3. Implementation, Operation

    Some tools can automatically analyze
    documents to redact, strip, or "sanitize" private
    information, although some human review might be
    necessary. Tools may vary in terms of which document
    formats can be processed.

    When calling an external program to automatically
    generate or convert documents, invoke the program with
    any available options that avoid generating sensitive
    metadata. Some formats have well-defined fields that
    could contain private data, such as Exchangeable image
    file format (Exif), which can contain potentially
    sensitive metadata such as geolocation, date, and time
    [REF-1515] [REF-1516].

  4. Implementation

    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.

  5. 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.

Source: MITRE CWE-212

29 results · Clear filters · Feed

  • High 8.2

    follow-redirects array-form headers bypass cross-origin credential stripping

    follow-redirects is a Node.js HTTP and HTTPS client wrapper that automatically follows redirects. From version 1.16.0 to before version 1.16.1, follow-redirects removes sensitive credential headers (Authorization, Proxy-Authorization, Cookie, and any caller-d…

  • High 7.1

    The Canva Mobile App for HarmonyOS before v1.15.1 did not restrict the headers returned to an external origin running i…

  • High 7.1

    nebula-mesh: CA private key not zeroized on web mobile-bundle error paths

    nebula-mesh is a self-hosted control plane for Slack Nebula mesh VPN. Prior to version 0.3.8, the web handler renderMobileBundle passes the real *pki.CAResolver directly into mobilebundle.Build. Inside Build, resolver.LoadByID decrypts the CA's ed25519 privat…

  • High 8.8

    The Canva Android App before 2.376.0 did not restrict the headers returned to an external origin running in a privilege…

  • High 7.1

    Bludit's persistent authentication tokens not revoked upon account disablement

    Bludit is a content management system. Versions prior to 3.22.0 have a vulnerability in the user management logic that allows deactivated accounts to maintain access via persistent authentication tokens. When an administrator disables a user account, the appl…

  • High 8.0

    Phoenix Contact: Improper removal of sensitive information in MGUARD products

    A low privileged remote attacker can gain the root password due to improper removal of sensitive information before storage or transfer.

  • High 7.7

    In Argo CD 3.2.0 before 3.2.11 and 3.3.0 before 3.3.9, ServerSideDiff allows reading cleartext Kubernetes Secret data.

  • High 8.8

    Global vanishing does not completely remove user email

    Improper removal of sensitive information before storage or transfer vulnerability in The Wikimedia Foundation Mediawiki - CentralAuth Extension allows Resource Leak Exposure. The issue has been remediated on the `master` branch, and in the release branches f…

  • High 7.7

    Trino: Iceberg REST catalog static and vended credentials are accessible via query JSON

    Trino is a distributed SQL query engine for big data analytics. From version 439 to before version 480, Iceberg connector REST catalog static credentials (access key) or vended credentials (temporary access key) are accessible to users that have write privile…

  • High 8.5

    tfplan2md has Sensitive Value Exposure in Generated Reports

    tfplan2md is software for converting Terraform plan JSON files into human-readable Markdown reports. Prior to version 1.26.1, a bug in tfplan2md affected several distinct rendering paths: AzApi resource body properties, AzureDevOps variable groups, Scriban te…

  • High 8.2

    Grype has a credential disclosure vulnerability in Grype JSON output

    Grype is a vulnerability scanner for container images and filesystems. A credential disclosure vulnerability was found in Grype, affecting versions 0.68.0 through 0.104.0. If registry credentials are defined and the output of grype is written using the --file…

  • High 7.5

    OpenVPN Connect before version 3.5.0 can contain the configuration profile's clear-text private key which is logged in …

  • High 7.5

    Information management vulnerability in the Gallery module.Successful exploitation of this vulnerability may affect ser…

  • High 8.1

    Improper Removal of Sensitive Information Before Storage or Transfer in usememos/memos

    Improper Removal of Sensitive Information Before Storage or Transfer in GitHub repository usememos/memos prior to 0.9.1.

  • High 8.6

    Wasmtime vulnerable to data leakage between instances in the pooling allocator

    Wasmtime is a standalone runtime for WebAssembly. Prior to versions 2.0.2 and 1.0.2, there is a bug in Wasmtime's implementation of its pooling instance allocator where when a linear memory is reused for another instance the initial heap snapshot of the prior…

  • High 7.5

    Slack Morphism for Rust before 0.41.0 can accidentally leak Slack OAuth client information in application debug logs

    Slack Morphism is an async client library for Rust. Prior to 0.41.0, it was possible for Slack OAuth client information to leak in application debug logs. Stricter and more secure debug formatting was introduced in v0.41.0 for OAuth secret types to reduce the…

  • High 8.2

    Protected fields exposed via LiveQuery in parse-server

    Parse Server is an open source backend that can be deployed to any infrastructure that can run Node.js. In affected versions parse Server LiveQuery does not remove protected fields in classes, passing them to the client. The LiveQueryController now removes pr…

  • High 7.7

    CURLOPT_HTTPAUTH option not cleared on change of origin in Guzzle

    Guzzle, an extensible PHP HTTP client. `Authorization` headers on requests are sensitive information. In affected versions when using our Curl handler, it is possible to use the `CURLOPT_HTTPAUTH` option to specify an `Authorization` header. On making a reque…

  • High 7.5

    Failure to strip the Cookie header on change in host or HTTP downgrade in Guzzle

    Guzzle is an open source PHP HTTP client. In affected versions the `Cookie` headers on requests are sensitive information. On making a request using the `https` scheme to a server which responds with a redirect to a URI with the `http` scheme, or on making a …

  • High 7.5

    Improper Removal of Sensitive Information Before Storage or Transfer in Strapi

    An authenticated user with access to the Strapi admin panel can view private and sensitive data, such as email and password reset tokens, for API users if content types accessible to the authenticated user contain relationships to API users (from:users-permis…

  • High 8.8

    Improper Removal of Sensitive Information Before Storage or Transfer in Strapi

    An authenticated user with access to the Strapi admin panel can view private and sensitive data, such as email and password reset tokens, for other admin panel users that have a relationship (e.g., created by, updated by) with content accessible to the authen…

  • High 8.1

    Improper Removal of Sensitive Information Before Storage or Transfer in eventsource/eventsource

    Improper Removal of Sensitive Information Before Storage or Transfer in GitHub repository eventsource/eventsource prior to v2.0.2.

  • High 7.5

    Insufficient password hash filtering in some IRRd queries and exports

    Internet Routing Registry daemon version 4 is an IRR database server, processing IRR objects in the RPSL format. IRRd did not always filter password hashes in query responses relating to `mntner` objects and database exports. This may have allowed adversaries…

  • High 7.4

    Exposure of sensitive information in Action Pack

    Action Pack is a framework for handling and responding to web requests. Under certain circumstances response bodies will not be closed. In the event a response is *not* notified of a `close`, `ActionDispatch::Executor` will not know to reset thread local stat…

  • High 8.8

    Improper Removal of Sensitive Information Before Storage or Transfer in feross/simple-get

    Improper Removal of Sensitive Information Before Storage or Transfer in NPM simple-get prior to 4.0.1.

  • High 8.0

    RCE in Symfony

    In Symfony before versions 4.4.13 and 5.1.5, the CachingHttpClient class from the HttpClient Symfony component relies on the HttpCache class to handle requests. HttpCache uses internal headers like X-Body-Eval and X-Body-File to control the restoration of cac…

  • High 7.5

    Improper Removal of Sensitive Information Before Storage or Transfer in Apache Jackrabbit Oak

    The optional initial password change and password expiration features present in Apache Jackrabbit Oak 1.2.0 to 1.22.0 are prone to a sensitive information disclosure vulnerability. The code mandates the changed password to be passed as an additional attribut…

  • High 7.5

    folly::secureRandom will re-use a buffer between parent and child processes when fork() is called. That will result in …

  • High 7.2

    ovirt-engine before version 4.1.7.6 with log level set to DEBUG includes passwords in the log file without masking. Onl…