Inngest TypeScript SDK exposes environment variables via serve() handler on unhandled HTTP methods
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Information disclosure
- Confidentiality · integrity · availability
- High · None · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-200.
Summary
Inngest is a platform for running event-driven and scheduled background functions with queueing, retries, and step orchestration. Versions 3.22.0 through 3.53.1 contain a vulnerability that allows unauthenticated remote attackers to exfiltrate environment variables from the host process via the serve() HTTP handler. The serve() handler implements GET, POST, and PUT methods. Requests using PATCH, OPTIONS, or DELETE fall through to a generic handler that returns diagnostic information. A change introduced in v3.22.0 caused this diagnostic response to include the contents of process.env, exposing any secrets, API keys, or credentials present in the environment. An application is vulnerable if its serve() endpoint is reachable via PATCH, OPTIONS, or DELETE requests, which is common in setups like Next.js Pages Router or Express's app.use(...). Not affected are Next.js App Router handlers that export only GET, POST, and PUT, and applications using the connect worker method. This issue has been fixed in version 3.54.0. To work around this issue if upgrading is not immediately possible, restrict the serve() endpoint at the framework or reverse-proxy layer to accept only GET, POST, and PUT. The Inngest serve() endpoint does not require any other HTTP methods.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| inngest | inngest-js | 3.22.0 to before 3.54.0 | 3.54.0 | Patch available | CNA |
| — | inngest (npm) | 3.22.0 to before 3.54.0 | 3.54.0 | Patch available | GHSA-2jf5-6wwv-vhxx |
- inngest-js Vendorinngest Affected 3.22.0 to before 3.54.0 Fixed in 3.54.0 Patch available CNA
- inngest (npm) Vendor— Affected 3.22.0 to before 3.54.0 Fixed in 3.54.0 Patch available GHSA-2jf5-6wwv-vhxx
Remediation
- Fix · CNA inngest-js (inngest) Fixed in 3.54.0
- Fix · GHSA-2jf5-6wwv-vhxx inngest (npm) Fixed in 3.54.0 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-42047
- 2026-10-03 Alias added: GHSA-2jf5-6wwv-vhxx
References
Advisory 2
Other 8
- https://github.com/inngest/inngest-js
- https://vercel.com/docs/deployment-protection#standard-protection
- https://vercel.com/kb/guide/how-do-i-delete-an-individual-deployment
- https://www.inngest.com/docs/events/creating-an-event-key
- https://www.inngest.com/docs/learn/security
- https://www.inngest.com/docs/learn/serving-inngest-functions
- https://www.inngest.com/docs/platform/manage/rotating-keys
- https://www.inngest.com/docs/platform/signing-keys
Sources
- CVE-2026-42047 · CVE Program
- CVE-2026-42047 · NVD
- FIRST EPSS
- GHSA-2jf5-6wwv-vhxx · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences