Impact
Parse Server deployments that mount the GraphQL API with public introspection disabled (graphQLPublicIntrospection: false, the default) returned schema-derived "Did you mean ...?" suggestions in GraphQL error messages produced during variable coercion. These suggestions were not removed by the introspection-hardening control, which only covered validation errors. An unauthenticated caller possessing only the public application id could iteratively recover schema identifiers that the introspection setting is intended to hide — including registered Cloud Code function names and Parse class and field names — by submitting queries or mutations whose variables contain near-miss enum values or input-object field names. This is a follow-up bypass of GHSA-8cph-rgr4-g5vj, which addressed the same class of disclosure only on the validation path.
Patches
The GraphQL schema-suggestion hardening was moved from a validation-only hook to the response pipeline. The "Did you mean ...?" suffix is now stripped from every error returned to non-master and non-maintenance callers when public introspection is disabled — covering variable-coercion errors and any copy duplicated into an error's stack trace in non-production environments. Master key and maintenance key callers, and deployments with public introspection enabled, are unaffected.
Workarounds
No configuration option fully prevents the disclosure prior to upgrading. Operators can reduce exposure by restricting network access to the GraphQL endpoint to trusted clients, or by requiring authentication in front of it. Upgrading to a patched version is recommended.
References
Impact
Parse Server deployments that mount the GraphQL API with public introspection disabled (
graphQLPublicIntrospection: false, the default) returned schema-derived "Did you mean ...?" suggestions in GraphQL error messages produced during variable coercion. These suggestions were not removed by the introspection-hardening control, which only covered validation errors. An unauthenticated caller possessing only the public application id could iteratively recover schema identifiers that the introspection setting is intended to hide — including registered Cloud Code function names and Parse class and field names — by submitting queries or mutations whose variables contain near-miss enum values or input-object field names. This is a follow-up bypass of GHSA-8cph-rgr4-g5vj, which addressed the same class of disclosure only on the validation path.Patches
The GraphQL schema-suggestion hardening was moved from a validation-only hook to the response pipeline. The "Did you mean ...?" suffix is now stripped from every error returned to non-master and non-maintenance callers when public introspection is disabled — covering variable-coercion errors and any copy duplicated into an error's stack trace in non-production environments. Master key and maintenance key callers, and deployments with public introspection enabled, are unaffected.
Workarounds
No configuration option fully prevents the disclosure prior to upgrading. Operators can reduce exposure by restricting network access to the GraphQL endpoint to trusted clients, or by requiring authentication in front of it. Upgrading to a patched version is recommended.
References