Information Disclosure via Flags override linkGHSA-892p-pqrr-hxqr
MEDIUMGHSA-892p-pqrr-hxqr is a medium-severity (CVSS 6.5) Information Exposure vulnerability in flags. A fix is available for flags — see the affected versions and patch details below.
Exploitation Status
No confirmed exploitation observed yet
- CISA assesses this as automatable — exploitation doesn’t require manual, per-target effort, which raises the odds of mass scanning and opportunistic attacks.
- CISA’s own triage has not observed active exploitation or public proof-of-concept code for this CVE as of its last assessment.
Exploitation and automatability from CISA’s SSVC triage for GHSA-892p-pqrr-hxqr.
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
How urgent is this, really
Where this sits among everything scored
Real-World Exposure
How broadly this vulnerability is actually deployed: weekly install volume shows current usage, and reverse-dependency count shows how many other packages break if it stays unpatched.
flagsnpm@vercel/flagsnpmDescription
Summary
An information disclosure vulnerability affecting Flags SDK has been addressed. It impacted flags ≤3.2.0 and @vercel/flags ≤3.1.1 and in certain circumstances, allowed a bad actor with detailed knowledge of the vulnerability to list all flags returned by the flags discovery endpoint (.well-known/vercel/flags).
Impact
This vulnerability allowed for information disclosure, where a bad actor could gain access to a list of all feature flags exposed through the flags discovery endpoint, including the:
- Flag names
- Flag descriptions
- Available options and their labels (e.g.
true,false) - Default flag values
Not impacted:
- Flags providers were not accessible
No write access nor additional customer data was exposed, this is limited to just the values noted above. Vercel has automatically mitigated this incident on behalf of our customers for the default flags discovery endpoint at .well-known/vercel/flags. Flags Explorer will be disabled and show a warning notice until upgraded to [email protected].
Resolution
The verifyAccess function was patched within [email protected].
Users of @vercel/flags should also migrate to [email protected].
For further guidance on upgrading your version, please see our upgrade guide.
Mitigations
Vercel implemented a network-level mitigation to prevent the default flags discovery endpoint at /.well-known/vercel/flags being reachable, which automatically protects Vercel deployments against exploitation of this issue. Users need to upgrade to [email protected] to re-enable the Flags Explorer.
This automatic mitigation is not effective in two scenarios:
- When using the Flags SDK on Pages Router, as the original non-rewritten route would still be accessible, e.g.
/api/vercel/flags. - When using a custom path for the flags discovery endpoint.
If you are not protected by the Vercel default mitigation you can temporarily deny access to the other exposed flags discovery endpoints through a custom WAF rule while you upgrade to the latest version.
References
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 📦npm | flags | all versions | 4.0.0npm install flags@4.0.0 |
| 📦npm | @vercel/flags | all versions | No fix |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for flags, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update flags to 4.0.0 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-892p-pqrr-hxqr is resolved across your whole dependency graph.
Workarounds
Assume what was exposed is already known: rotate any credential, token or key that the affected component could return, restrict the endpoint to callers that genuinely need it, and strip sensitive fields from responses and error output at the boundary rather than relying on the client not to read them.
Frequently Asked Questions
Is GHSA-892p-pqrr-hxqr in your dependencies?
Find it across npm, including transitive dependencies.