GitHub Advisoryadvisory · npm
GHSA-qxc2-j82w-r537 Faker: helpers.fake exploitable into arbritary code execution
HIGH
Official page ↗
- Aliases
- CVE-2026-73231
- Ecosystem
- npm
- Packages
- @faker-js/faker
- Severity
- High
- CVSS vector
- CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- Weaknesses
- CWE-95
- Reviewed
- 2026-09-02
Affected packages
• npm @faker-js/faker: < 10.5.0 → fixed in 10.5.0
Description
Summary
`faker.helpers.fake` can be tricked into arbritary code execution.
Details
fakeEval.resolveProperty resolves properties on functions itself instead of resolving the nested function first.
This can be addressed by recursively calling resolveProperty instead of accessing the property after one iteration.
PoC
Go to https://fakerjs.dev/
Open Browser console and run
````ts
await enableFaker(); // or import faker
faker.rawDefinitions.test = (() => () => {}); // Any function that returns a function
faker.helpers.fake(`{{test.constructor(alert('PowerLevel: Eval'))}}`);
````
Impact
The Fake method claims:
> It is also NOT possible to use any non-faker methods or plain javascript in such patterns.
Which is objectively false, since any global gets fully accessible in the fake string.
Related
Alias · CVE (1)
- CVE-2026-73231 Faker generates massive amounts of fake data in the browser and Node.js. vulnerability
Weakness · CWE (1)
- CWE-95 Improper Neutralization of Directives in Dynamically Evaluated Code weakness
References
- https://github.com/faker-js/faker/security/advisories/GHSA-qxc2-j82w-r537 web
- https://nvd.nist.gov/vuln/detail/CVE-2026-73231 advisory
- https://github.com/faker-js/faker/pull/3852 web
- https://github.com/faker-js/faker/commit/54586208f904012f57c50b46cc1ad32bcbe4bfb7 web
- https://github.com/faker-js/faker package
- https://github.com/faker-js/faker/releases/tag/v10.5.0 web