2026-03-24 18:6CVE-2026-33323GitHub_M
PUBLISHED5.2CWE-204

Parse Server: Email verification resend page leaks user existence

Parse Server is an open source backend that can be deployed to any infrastructure that can run Node.js. Prior to versions 8.6.51 and 9.6.0-alpha.40, the Pages route and legacy PublicAPI route for resending email verification links return distinguishable responses depending on whether the provided username exists and has an unverified email. This allows an unauthenticated attacker to enumerate valid usernames by observing different redirect targets. The existing emailVerifySuccessOnInvalidEmail configuration option, which is enabled by default and protects the API route against this, did not apply to these routes. This issue has been patched in versions 8.6.51 and 9.6.0-alpha.40.

Problem type

Affected products

parse-community

parse-server

< 8.6.51 - AFFECTED

>= 9.0.0, < 9.6.0-alpha.40 - AFFECTED

References

GitHub Security Advisories

GHSA-h29g-q5c2-9h4f

Parse Server email verification resend page leaks user existence

https://github.com/advisories/GHSA-h29g-q5c2-9h4f

Impact

The Pages route and legacy PublicAPI route for resending email verification links return distinguishable responses depending on whether the provided username exists and has an unverified email. This allows an unauthenticated attacker to enumerate valid usernames by observing different redirect targets. The existing emailVerifySuccessOnInvalidEmail configuration option, which is enabled by default and protects the API route against this, did not apply to these routes.

Patches

The email verification resend routes now respect the emailVerifySuccessOnInvalidEmail option. When set to true (the default), both routes redirect to the success page regardless of the outcome, preventing user enumeration.

Workarounds

There is no known workaround to prevent the information disclosure other than upgrading.

JSON source

https://cveawg.mitre.org/api/cve/CVE-2026-33323
Click to expand
{
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "cveMetadata": {
    "cveId": "CVE-2026-33323",
    "assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
    "assignerShortName": "GitHub_M",
    "dateUpdated": "2026-03-24T18:06:32.189Z",
    "dateReserved": "2026-03-18T21:23:36.677Z",
    "datePublished": "2026-03-24T18:06:32.189Z",
    "state": "PUBLISHED"
  },
  "containers": {
    "cna": {
      "providerMetadata": {
        "orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
        "shortName": "GitHub_M",
        "dateUpdated": "2026-03-24T18:06:32.189Z"
      },
      "title": "Parse Server: Email verification resend page leaks user existence",
      "descriptions": [
        {
          "lang": "en",
          "value": "Parse Server is an open source backend that can be deployed to any infrastructure that can run Node.js. Prior to versions 8.6.51 and 9.6.0-alpha.40, the Pages route and legacy PublicAPI route for resending email verification links return distinguishable responses depending on whether the provided username exists and has an unverified email. This allows an unauthenticated attacker to enumerate valid usernames by observing different redirect targets. The existing emailVerifySuccessOnInvalidEmail configuration option, which is enabled by default and protects the API route against this, did not apply to these routes. This issue has been patched in versions 8.6.51 and 9.6.0-alpha.40."
        }
      ],
      "affected": [
        {
          "vendor": "parse-community",
          "product": "parse-server",
          "versions": [
            {
              "version": "< 8.6.51",
              "status": "affected"
            },
            {
              "version": ">= 9.0.0, < 9.6.0-alpha.40",
              "status": "affected"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "lang": "en",
              "description": "CWE-204: Observable Response Discrepancy",
              "cweId": "CWE-204",
              "type": "CWE"
            }
          ]
        }
      ],
      "references": [
        {
          "url": "https://github.com/parse-community/parse-server/security/advisories/GHSA-h29g-q5c2-9h4f",
          "name": "https://github.com/parse-community/parse-server/security/advisories/GHSA-h29g-q5c2-9h4f",
          "tags": [
            "x_refsource_CONFIRM"
          ]
        },
        {
          "url": "https://github.com/parse-community/parse-server/pull/10238",
          "name": "https://github.com/parse-community/parse-server/pull/10238",
          "tags": [
            "x_refsource_MISC"
          ]
        },
        {
          "url": "https://github.com/parse-community/parse-server/pull/10243",
          "name": "https://github.com/parse-community/parse-server/pull/10243",
          "tags": [
            "x_refsource_MISC"
          ]
        },
        {
          "url": "https://github.com/parse-community/parse-server/commit/967aa57732202009b2389ce9ecb3130d53d657e5",
          "name": "https://github.com/parse-community/parse-server/commit/967aa57732202009b2389ce9ecb3130d53d657e5",
          "tags": [
            "x_refsource_MISC"
          ]
        },
        {
          "url": "https://github.com/parse-community/parse-server/commit/fbda4cb0c5cbc8fad08a216823b6b64d4ae289c3",
          "name": "https://github.com/parse-community/parse-server/commit/fbda4cb0c5cbc8fad08a216823b6b64d4ae289c3",
          "tags": [
            "x_refsource_MISC"
          ]
        }
      ],
      "metrics": [
        {}
      ]
    }
  }
}