Skip to content

GHSA-rcvg-jj3g-rj7c CVE-2024-35189 PYSEC-2026-1346

Sensitive Data Disclosure Vulnerability in Connection Configuration Endpoints

Medium PyPI
Severity
6.5 / 10
Medium · CVSS 3.1
Exploit chance (EPSS)
0.58%
Chance of exploitation in the next 30 days. Higher than 47.81% of scored vulnerabilities.
Known exploited
No
Not in CISA's catalog
Weakness
CWE-200 Exposure of Sensitive Information to an Unauthorized Actor
Fix
2.37.0
Upgrade ethyca-fides to this version or later

Description

The Fides webserver has a number of endpoints that retrieve ConnectionConfiguration records and their associated secrets which can contain sensitive data (e.g. passwords, private keys, etc.). These secrets are stored encrypted at rest (in the application database), and the associated endpoints are not meant to expose that sensitive data in plaintext to API clients, as it could be compromising.

Fides's developers have available to them a Pydantic field-attribute (sensitive) that they can annotate as True to indicate that a given secret field should not be exposed via the API. The application has an internal function that uses sensitive annotations to mask the sensitive fields with a "**********" placeholder value.

This vulnerability is due to a bug in that function, which prevented sensitive API model fields that were nested below the root-level of a secrets object from being masked appropriately. Only the BigQuery connection configuration secrets meets these criteria: the secrets schema has a nested sensitive keyfile_creds.private_key property that is exposed in plaintext via the APIs.

Connection types other than BigQuery with sensitive fields at the root-level that are not nested are properly masked with the placeholder and are not affected by this vulnerability.

Impact

The Google Cloud secrets used for a Fides BigQuery integration may be retrieved in plaintext by any authenticated Admin UI user, except those with the Approver role. Any API users authorized to access the following endpoints may also retrieve the key in plaintext.

Endpoints impacted:

  • GET /api/v1/connections
  • PATCH /api/v1/connections
  • GET /api/v1/connection/{connection_key}
  • PATCH /api/v1/system/{system_key}/connection
  • GET /api/v1/system/{system_key}
  • GET /api/v1/system/{system_key}/connection

Connection config secret schemas impacted:

  • BigQuerySchema

Patches

The vulnerability has been patched in Fides version 2.37.0. Users are advised to upgrade to this version or later to secure their systems against this threat.

Users are also advised to rotate any Google Cloud secrets used for BigQuery integrations in their Fides deployments: https://cloud.google.com/iam/docs/key-rotation

Workarounds

There are no workarounds.

Proof of concept

Multiple endpoints are impacted, but this PoC will use GET /api/v1/system/{system_key} as an example.

  1. Using the Admin UI, navigate to /add-systems. Add and save a new system bq_poc.
  2. In the integrations tab of the new system, configure and save a BigQuery integration with secrets.
  3. Log in as a different user with any role except Approver and navigate to the /systems page.
  4. Open the network section of your browser's developer tools.
  5. Click on the bq_poc system's meatball menu and then click edit.
  6. In the network section of browser dev tools you will observe a HTTP GET http://localhost:8080/api/v1/system/bq_poc/ request. In the body of the JSON response the integration secrets values entered in Step 2 are exposed in plaintext i.e.
{
  "secrets": {
    "keyfile_creds": {
      "type": "value",
      "project_id": "value",
      "private_key_id": "value",
      "private_key": "value",
      "client_email": "value",
      "client_id": "value",
      "auth_uri": "value",
      "token_uri": "value",
      "auth_provider_x509_cert_url": "value",
      "client_x509_cert_url": "value"
    }
  }
}

Affected versions

PyPI

PackageVulnerableFixed in
ethyca-fides
< 2.37.0
2.37.0

How to fix

Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.

ethyca-fides PyPI → 2.37.0

pip
pip install --upgrade "ethyca-fides>=2.37.0"
poetry
poetry add "ethyca-fides>=2.37.0"
uv
uv add "ethyca-fides>=2.37.0"

Severity breakdown

CVSS 3.1 6.5

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N

Attack vector
Network
Attack complexity
Low
Privileges required
Low
User interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

Weakness

CWE-200: Exposure of Sensitive Information to an Unauthorized Actor

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

How to prevent it
  • 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.

References

Timeline

  1. Published
  2. Last updated by the source
  3. Latest EPSS score
AdvisorySeverityWhy it's related
GHSA-5qrq-9645-g5g2
ethyca-fides has a DOM-based XSS vulnerability in fides.js via fides_description override
High Also affects ethyca-fides
GHSA-qx5f-ghc2-7g5c
Ethyca Fides has a Privacy Request Identity Verification Bypass Vulnerability via Duplicate Detection
Medium Also affects ethyca-fides
GHSA-hjfh-p8f5-24wr
Fides Webserver API is Vulnerable to OAuth Client Privilege Escalation
High Also affects ethyca-fides
GHSA-fq34-xw6c-fphf
Fides Webserver API Rate Limiting Vulnerability in Proxied Environments
High Also affects ethyca-fides
GHSA-7q62-r88r-j5gw
Fides has a Lack of Brute-Force Protections on Authentication Endpoints
Medium Also affects ethyca-fides
GHSA-rpw8-82v9-3q87
Fides' Admin UI User Password Change Does Not Invalidate Current Session
Medium Also affects ethyca-fides
GHSA-v7vm-rhmg-8j2r
Password Policy Bypass Vulnerability in Fides Webserver User Accept Invite API
High Also affects ethyca-fides
GHSA-c34r-238x-f7qx
Remote Code Execution Vulnerability via SSTI in Fides Webserver Jinja Email Templating Engine
High Also affects ethyca-fides
Is this in your code?

MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.

Check your repos with MergeHarbor