Description
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.
Published: 2026-05-07
Score: 8.6 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability allows unauthenticated remote attackers to extract environment variables from the host process. This exposure occurs through the serve() HTTP handler in the Inngest TypeScript SDK, where unhandled HTTP methods return diagnostic information that unintentionally includes the contents of process.env. The leakage can reveal secrets, API keys, or credentials, leading to credential theft.

Affected Systems

Vendors and products affected are Inngest’s JavaScript SDK (inngest:inngest-js). Versions 3.22.0 through 3.53.1 are vulnerable; the issue is resolved in version 3.54.0. Deployments that expose the serve() endpoint via PATCH, OPTIONS, or DELETE requests – common in frameworks such as Next.js Pages Router or Express's app.use(...) – are at risk. Next.js App Router handlers that export only GET, POST, and PUT, and applications using the connect worker method, are not affected.

Risk and Exploitability

The CVSS score of 8.6 indicates a high severity of this weakness. EPSS is not available, but the absence of authentication requirements and the ability to glean environment variables make exploitation straightforward. The vulnerability is listed as not in CISA KEV, but its potential to compromise credentials warrants immediate attention. Attackers can simply send unauthenticated PATCH, OPTIONS, or DELETE requests to the serve() endpoint to obtain environment data, leveraging the generic diagnostic handler introduced in v3.22.0.

Generated by OpenCVE AI on May 7, 2026 at 22:28 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to Inngest SDK version 3.54.0 or later to eliminate the diagnostic exposure.
  • If upgrading is not possible, configure the framework or a reverse‑proxy to restrict the serve() endpoint to only allow GET, POST, and PUT methods, blocking PATCH, OPTIONS, and DELETE.
  • Review deployment configurations to ensure that the serve() endpoint is not publicly exposed unless required, and consider disabling it in environments where it is unnecessary.

Generated by OpenCVE AI on May 7, 2026 at 22:28 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-2jf5-6wwv-vhxx Inngest TypeScript SDK exposes environment variables via serve() handler on unhandled HTTP methods
History

Thu, 07 May 2026 21:00:00 +0000

Type Values Removed Values Added
Description 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.
Title Inngest TypeScript SDK exposes environment variables via serve() handler on unhandled HTTP methods
Weaknesses CWE-200
CWE-497
References
Metrics cvssV3_1

{'score': 8.6, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-05-07T20:38:36.171Z

Reserved: 2026-04-23T16:05:01.709Z

Link: CVE-2026-42047

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-05-07T21:16:29.980

Modified: 2026-05-07T21:16:29.980

Link: CVE-2026-42047

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-05-07T22:30:36Z

Weaknesses