{"id":"PYSEC-2026-2471","summary":"Ethyca Fides has a Privacy Request Identity Verification Bypass Vulnerability via Duplicate Detection","details":"### Summary\n\nFides deployments that enable both subject identity verification and duplicate privacy request detection are affected by a vulnerability in which an administrator can approve a privacy request whose identity was never verified. For erasure policies, this can result in unauthorized deletion of a data subject's records across every integration configured in the affected deployment.\n\nA related lower-severity denial-of-service issue, in which an unauthenticated attacker could prevent a legitimate data subject from completing their own privacy requests, is also patched in the fix for this vulnerability.\n\n### Am I affected?\n\nThis vulnerability only affects deployments that use Fides's privacy request (data subject request) features, also known collectively as \"Lethe\". Deployments that do not submit, process, or manage privacy requests through Fides are not affected.\n\nWithin deployments that do use privacy request features, your deployment is affected if both of the following settings are effectively set to `true`:\n\n- `subject_identity_verification_required`\n- `privacy_request_duplicate_detection.enabled`\n\nBoth settings default to `false`.\n\nEach setting can be configured in multiple places. If the same setting is configured in more than one place, Fides resolves conflicts in the following precedence order, highest priority first:\n\n1. **Admin UI / configuration API** - stored in the application database and applied at runtime\n2. **Environment variables** - read at webserver startup\n3. **`fides.toml`** - read at webserver startup\n4. **Default value** - used if none of the above set the value\n\nTo determine whether your deployment is affected, check each setting in every location that applies to your configuration management.\n\n**`subject_identity_verification_required`**\n\n- `fides.toml`: under the `[execution]` section as `subject_identity_verification_required = true`\n- Environment variable: `FIDES__EXECUTION__SUBJECT_IDENTITY_VERIFICATION_REQUIRED=true`\n- No Admin UI control - this setting is not exposed through the Admin UI and cannot be set via the configuration API\n\n**`privacy_request_duplicate_detection.enabled`**\n\n- `fides.toml`: under the `[privacy_request_duplicate_detection]` section as `enabled = true`\n- Environment variable: `FIDES__PRIVACY_REQUEST_DUPLICATE_DETECTION__ENABLED=true`\n- Admin UI: **Settings → Privacy requests → Duplicate detection**, via the \"Enable duplicate detection\" toggle. The toggle reflects only values set through the Admin UI or configuration API. A value set via `fides.toml` or environment variable will not appear here.\n\n\u003cfigure\u003e\n\u003cimg width=\"1392\" height=\"940\" alt=\"GHSA - Duplicate Detection Enabled\" src=\"https://github.com/user-attachments/assets/e384f273-ce68-403c-adb2-93536eca5f3a\" /\u003e\n\u003cfigcaption\u003e\n\u003cem\u003e\nThe \"Enable duplicate detection\" toggle when it's enabled, under Settings → Privacy requests in the Admin UI.\n\u003c/em\u003e\n\u003c/figcaption\u003e\n\u003c/figure\u003e\n\n### Details\n\nWhen duplicate detection classifies a privacy request as a duplicate before its identity has been verified, the administrative interface presents that request with Approve, Deny, and Delete options. An administrator performing routine duplicate request triage may approve such a request without realising the identity was never verified. The request is then processed as if verification had succeeded.\n\nAn attacker exploits this by submitting two privacy requests using a target's email address, never completing the OTP verification. The second request is classified as a duplicate and becomes approvable through the administrative interface.\n\nThe fix for this vulnerability also patches a lower-severity issue, present in versions `2.82.0` through `2.83.1`, in which a legitimate data subject could not complete identity verification on a privacy request that had been classified as a duplicate, allowing an unauthenticated attacker to block that data subject from exercising their privacy rights through the affected deployment.\n\n### Impact\n\nAn unauthenticated attacker who knows a target's email address and can reach the public Privacy Center can cause an erasure privacy request to be approved by an administrator and processed without identity verification. The result is unauthorized deletion of the data subject's records across every integration configured in the affected deployment. Effects may be permanent and may cascade into downstream systems.\n\nAccess privacy requests are a less meaningful vector: the resulting access package is delivered to the data subject's registered email address, not to the attacker, so the attacker does not gain the data. The request still represents unauthorized processing.\n\n### Patches\n\nThe vulnerabilities have been patched in Fides OSS version `2.83.2`. Users are advised to upgrade to this version or later to secure their systems against these threats.\n\nFides Enterprise (fidesplus) version `2.83.2` contains the same patch.\n\n### Workarounds\n\nDisable duplicate detection by setting `privacy_request_duplicate_detection.enabled` to `false`. This can be changed under **Settings → Privacy Requests → Duplicate detection** in the Admin UI). This fully mitigates the vulnerability and is the recommended interim workaround for deployments that cannot immediately upgrade.\n\n\u003cfigure\u003e\n\u003cp\u003e\n\u003cimg width=\"1392\" height=\"880\" alt=\"GHSA - Disable Duplicate Detection\" src=\"https://github.com/user-attachments/assets/fc0c87a1-7e40-4698-ba9e-e1721f591310\" /\u003e\n\u003cfigcaption\u003e\n\u003cem\u003e\nThe \"Enable duplicate detection\" toggle when it's disabled, under Settings → Privacy requests in the Admin UI.\n\u003c/em\u003e\n\u003c/figcaption\u003e\n\u003cp\u003e\n\u003c/figure\u003e\n\nAdministrators of deployments that must retain duplicate detection should deny or delete, rather than approve, any privacy request whose identity has not been verified. This reduces the likelihood of exploitation but relies on administrator vigilance during each triage action.\n\n\u003cimg width=\"1392\" height=\"1044\" alt=\"GHSA - Admin Approval of Unverified Privacy Request\" src=\"https://github.com/user-attachments/assets/b2ad4940-40d3-468b-897e-8cca6ce4707e\" /\u003e\n\u003cfigcaption\u003e\n\u003cem\u003e\nAn administrator's view when approving an unverified privacy request in the Admin UI.\n\u003c/em\u003e\n\u003c/figcaption\u003e\n\u003c/figure\u003e\n\n### Severity\n\nThis vulnerability has been assigned a severity of **MEDIUM**.\n\nThe rating reflects the fact that exploitation requires an administrator to approve the malicious request. An attacker alone cannot cause a privacy request to be processed. The administrative interface understates the verification state of a duplicate-classified request, which increases the likelihood of inadvertent approval during routine triage, but without administrator user interaction the vulnerability is not exploitable.\n\nThe related denial-of-service issue addressed in the same patch is also rated medium-severity in isolation and does not raise the overall severity of this advisory.\n\n### References\n\n- Fides OSS `2.83.2` release: https://github.com/ethyca/fides/releases/tag/2.83.2\n- Fix for the identity bypass vulnerability: [PR #7972](https://github.com/ethyca/fides/pull/7972), commit [`e7a6527`](https://github.com/ethyca/fides/commit/e7a6527b0f9fdc9887b86a89bb5453e7421882dd)\n- Fix for the related denial-of-service issue: [PR #7971](https://github.com/ethyca/fides/pull/7971), commit [`0e320b2`](https://github.com/ethyca/fides/commit/0e320b20934eb5af3a3d5127dba2691605d7ff37)","aliases":["CVE-2026-42303","GHSA-qx5f-ghc2-7g5c"],"modified":"2026-07-13T16:31:46.182694046Z","published":"2026-07-13T15:15:38.117547Z","references":[{"type":"WEB","url":"https://github.com/ethyca/fides/security/advisories/GHSA-qx5f-ghc2-7g5c"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-42303"},{"type":"WEB","url":"https://github.com/ethyca/fides/pull/7971"},{"type":"WEB","url":"https://github.com/ethyca/fides/pull/7972"},{"type":"WEB","url":"https://github.com/ethyca/fides/commit/0e320b20934eb5af3a3d5127dba2691605d7ff37"},{"type":"WEB","url":"https://github.com/ethyca/fides/commit/e7a6527b0f9fdc9887b86a89bb5453e7421882dd"},{"type":"PACKAGE","url":"https://github.com/ethyca/fides"},{"type":"WEB","url":"https://github.com/ethyca/fides/releases/tag/2.83.2"},{"type":"PACKAGE","url":"https://pypi.org/project/ethyca-fides"},{"type":"ADVISORY","url":"https://github.com/advisories/GHSA-qx5f-ghc2-7g5c"}],"affected":[{"package":{"name":"ethyca-fides","ecosystem":"PyPI","purl":"pkg:pypi/ethyca-fides"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.75.0"},{"fixed":"2.83.2"}]}],"versions":["2.75.0","2.75.1","2.75.1rc0","2.75.2","2.75.2rc0","2.75.3b0","2.76.0","2.76.0rc0","2.76.0rc1","2.76.0rc2","2.76.0rc3","2.76.1","2.76.1rc0","2.76.1rc1","2.76.2a10","2.76.2a12","2.77.0","2.77.0rc0","2.77.0rc2","2.77.0rc3","2.77.0rc4","2.77.0rc5","2.77.0rc6","2.77.0rc7","2.77.1","2.77.1a0","2.77.1rc0","2.77.1rc1","2.77.2a0","2.77.2a1","2.77.2a2","2.77.2a3","2.77.2a4","2.77.2a5","2.77.2a9","2.77.2b0","2.77.2b1","2.78.0","2.78.0rc0","2.78.0rc1","2.78.0rc2","2.78.0rc3","2.78.0rc4","2.78.0rc6","2.78.0rc7","2.78.0rc8","2.78.1","2.78.1rc0","2.78.2","2.78.2a0","2.78.2rc0","2.78.3a2","2.78.3a3","2.78.3b0","2.78.3b1","2.79.0","2.79.0rc0","2.79.0rc1","2.79.0rc2","2.79.0rc3","2.79.0rc4","2.79.0rc6","2.79.1a0","2.79.1a1","2.79.1a2","2.79.1a3","2.79.1a4","2.79.1a5","2.79.1a6","2.80.0","2.80.0rc0","2.80.0rc1","2.80.0rc10","2.80.0rc2","2.80.0rc3","2.80.0rc4","2.80.0rc5","2.80.0rc6","2.80.0rc7","2.80.0rc8","2.80.0rc9","2.80.1","2.80.1a0","2.80.1a1","2.80.1rc0","2.80.1rc1","2.80.2a0","2.80.2a1","2.80.2a2","2.81.0","2.81.0rc0","2.81.0rc1","2.81.0rc2","2.81.0rc3","2.81.1","2.81.1a0","2.81.1a1","2.81.1a2","2.81.1b0","2.81.1rc0","2.81.2a0","2.81.2a1","2.81.2a2","2.81.2b0","2.81.2b1","2.82.0","2.82.0rc0","2.82.0rc1","2.82.0rc2","2.82.0rc3","2.82.0rc4","2.82.0rc5","2.82.0rc6","2.82.0rc8","2.82.1","2.82.1b0","2.82.1b1","2.82.1rc0","2.82.2","2.82.2a0","2.82.2a1","2.82.2a2","2.82.2rc0","2.82.2rc1","2.83.0","2.83.0rc0","2.83.0rc1","2.83.0rc2","2.83.0rc3","2.83.0rc4","2.83.0rc5","2.83.0rc6","2.83.1","2.83.1a0","2.83.1a1","2.83.1a2","2.83.1b0","2.83.1rc0","2.83.2a0","2.83.2a1","2.83.2rc0","2.83.2rc1","2.83.2rc2","2.83.2rc3"],"database_specific":{"source":"https://github.com/pypa/advisory-database/blob/main/vulns/ethyca-fides/PYSEC-2026-2471.yaml"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:L/VA:N/SC:N/SI:H/SA:N"}]}