CVE-2026-42047 json
Inngest TypeScript SDK exposes environment variables via serve() handler on unhandled HTTP methods
published 2026-05-05 6 mo ago modified 2026-10-26 13 d ago also GHSA-2jf5-6wwv-vhxx , EUVD-2026-28441
- cvss
- 8.6
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 32%
- public exploits
- 0
- none known
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.
Patch / fix
- npm inngest 3.54.0
- inngest inngest 3.54.0
CISA SSVC
- Exploitation
- none
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 6 mo ago
Exploit prediction
0.38% chance of exploitation in the next 30 days, higher than 32% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 8.6 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N |
| GitHub | 3.1 | 8.6 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | inngest | >=3.22.0, <3.54.0 |
3.54.0 |
Affected products
- inngest inngest-js
Classification
References
-
github.com
/inngest/inngest-js/releases/tag/inngest%403.54.1
web, patch, product
-
github.com
/inngest/inngest-js/security/advisories/GHSA-2jf5-6wwv-vhxx
web, mitigation, vendor-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-42047
advisory
-
github.com
/inngest/inngest-js
package
-
vercel.com
/docs/deployment-protection#standard-protection
web
-
vercel.com
/kb/guide/how-do-i-delete-an-individual-deployment
web
-
inngest.com
/docs/events/creating-an-event-key
web
-
inngest.com
/docs/learn/security
web
-
inngest.com
/docs/learn/serving-inngest-functions
web
-
inngest.com
/docs/platform/manage/rotating-keys
web
-
inngest.com
/docs/platform/signing-keys
web
Sources
- CVE List CVE-2026-42047
- GitHub Advisory GHSA-2jf5-6wwv-vhxx
- NVD CVE-2026-42047
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.