elysia
Ecosystem: npm
Downloads: 6.86 Mln
- 1CriticalAffects 1 version
- 3HighAffects 3 versions
- 0MediumAffects 0 versions
- 1ModerateAffects 1 version
- 0LowAffects 0 versions
- Critical1 (20.0%)
- High3 (60.0%)
- Medium0 (0.0%)
- Moderate1 (20.0%)
- Low0 (0.0%)
Monthly breakdown
- Critical
- High
- Medium
- Moderate
- Low
- 1 vulnerabilities
- Critical: 0
- High: 1
- Medium: 0
- Moderate: 0
- Low: 0
- 2 vulnerabilities
- Critical: 0
- High: 1
- Medium: 0
- Moderate: 1
- Low: 0
- 2 vulnerabilities
- Critical: 1
- High: 1
- Medium: 0
- Moderate: 0
- Low: 0
Vulnerabilities (5)
Known vulnerabilities affecting elysia, based on data from OSV.
| ID | Severity | Summary | Affected versions | Published | Source |
|---|---|---|---|---|---|
| GHSA-9643-4qgh-g8mx | High | elysia has Inefficient Algorithmic Complexity and Interpretation ConflictElysia v1.4.28 is vulnerable to denial-of-service attacks due to CPU exhaustion in the form data normalization code. Elysia uses `getAll` to retrieve value from FormData. It is called directly relative to the total number of key-value pairs in the form data. The total amount of work the for loop has to do grows quadratically, so doubling the number of unique key-value pairs quadruples the amount of work. In the above PoC, each .getAll call scans through all of the `n` key-value pairs in the form data. Because there are `n` unique keys in the form data, there are .getAll calls, so in total the |
| GitHub (opens in a new tab) | |
| GHSA-8hq9-phh3-p2wp | Moderate | Elysia Cookie Value Prototype Pollution### Impact Elysia cookie can be overridden by prototype pollution , eg. `__proto__` Sending cookie with the follows name can override cookie value: ```bash __proto__=%7B%22injected%22%3A%22polluted%22%7D ``` ### Patches Patched by 1.4.27 ### Workarounds 1. Use t.Cookie validation to enforce validation value 2. Prevent iterable over cookie if possible |
| GitHub (opens in a new tab) | |
| GHSA-f45g-68q3-5w8x | High | Elysia has a string URL format ReDoS### Impact `t.String({ format: 'url' })` is vulnerable to redos Repeating a partial url format (protocol and hostname) multiple times cause regex to slow down significantly ```js 'http://a'.repeat(n) ``` Here's a table demonstrating how long it takes to process repeated partial url format | `n` repeat | elapsed_ms | | --- | --- | | 1024 | 33.993 | | 2048 | 134.357 | | 4096 | 537.608 | | 8192 | 2155.842 | | 16384 | 8618.457 | | 32768 | 34604.139 | ### Patches Patched by 1.4.26, please kindly update `elysia` to >= 1.4.26 Here's how long it takes after the patch | `n` repeat | elapsed_ms | | |
| GitHub (opens in a new tab) | |
| GHSA-8vch-m3f4-q8jf | High | Elysia affected by arbitrary code injection through cookie configArbitrary code execution from cookie config. If dynamic cookies are enabled (ie there exists a schema for cookies), the cookie config is injected into the compiled route without first being sanitised. Availability of this exploit is generally low, as it requires write access to either the Elysia app's source code (in which case the vulnerability is meaningless) or write access to the cookie config (perhaps where it is assumed to be provisioned by the environment). However when combined with GHSA-hxj9-33pp-j2cc, this vulnerability allows for a full RCE chain. ### Impact - aot enabled (defau |
| GitHub (opens in a new tab) | |
| GHSA-hxj9-33pp-j2cc | Critical | Elysia vulnerable to prototype pollution with multiple standalone schema validationPrototype pollution vulnerability in `mergeDeep` after merging results of two standard schema validations with the same key. Due to the ordering of merging, there must be an `any` type that is set as a `standalone` guard, to allow for the `__proto__` prop to be merged. When combined with GHSA-8vch-m3f4-q8jf this allows for a full RCE by an attacker. ### Impact Routes with more than 2 standalone schema validation, eg. zod Example vulnerable code: ```typescript import { Elysia } from "elysia" import * as z from "zod" const app = new Elysia() .guard({ schema: "standalone", body: z.object |
| GitHub (opens in a new tab) |
- GHSA-9643-4qgh-g8mxHighelysia has Inefficient Algorithmic Complexity and Interpretation Conflict
< 1.4.29
Elysia v1.4.28 is vulnerable to denial-of-service attacks due to CPU exhaustion in the form data normalization code. Elysia uses `getAll` to retrieve value from FormData. It is called directly relative to the total number of key-value pairs in the form data. The total amount of work the for loop has to do grows quadratically, so doubling the number of unique key-value pairs quadruples the amount of work. In the above PoC, each .getAll call scans through all of the `n` key-value pairs in the form data. Because there are `n` unique keys in the form data, there are .getAll calls, so in total the
CVE: CVE-2026-56669
- GHSA-8hq9-phh3-p2wpModerateElysia Cookie Value Prototype Pollution
< 1.4.27
### Impact Elysia cookie can be overridden by prototype pollution , eg. `__proto__` Sending cookie with the follows name can override cookie value: ```bash __proto__=%7B%22injected%22%3A%22polluted%22%7D ``` ### Patches Patched by 1.4.27 ### Workarounds 1. Use t.Cookie validation to enforce validation value 2. Prevent iterable over cookie if possible
CVE: CVE-2026-31865
### Impact `t.String({ format: 'url' })` is vulnerable to redos Repeating a partial url format (protocol and hostname) multiple times cause regex to slow down significantly ```js 'http://a'.repeat(n) ``` Here's a table demonstrating how long it takes to process repeated partial url format | `n` repeat | elapsed_ms | | --- | --- | | 1024 | 33.993 | | 2048 | 134.357 | | 4096 | 537.608 | | 8192 | 2155.842 | | 16384 | 8618.457 | | 32768 | 34604.139 | ### Patches Patched by 1.4.26, please kindly update `elysia` to >= 1.4.26 Here's how long it takes after the patch | `n` repeat | elapsed_ms | |
CVE: CVE-2026-30837
- GHSA-8vch-m3f4-q8jfHighElysia affected by arbitrary code injection through cookie config
< 1.4.18
Arbitrary code execution from cookie config. If dynamic cookies are enabled (ie there exists a schema for cookies), the cookie config is injected into the compiled route without first being sanitised. Availability of this exploit is generally low, as it requires write access to either the Elysia app's source code (in which case the vulnerability is meaningless) or write access to the cookie config (perhaps where it is assumed to be provisioned by the environment). However when combined with GHSA-hxj9-33pp-j2cc, this vulnerability allows for a full RCE chain. ### Impact - aot enabled (defau
CVE: CVE-2025-66457
- GHSA-hxj9-33pp-j2ccCriticalElysia vulnerable to prototype pollution with multiple standalone schema validation
>= 1.4.0, < 1.4.17
Prototype pollution vulnerability in `mergeDeep` after merging results of two standard schema validations with the same key. Due to the ordering of merging, there must be an `any` type that is set as a `standalone` guard, to allow for the `__proto__` prop to be merged. When combined with GHSA-8vch-m3f4-q8jf this allows for a full RCE by an attacker. ### Impact Routes with more than 2 standalone schema validation, eg. zod Example vulnerable code: ```typescript import { Elysia } from "elysia" import * as z from "zod" const app = new Elysia() .guard({ schema: "standalone", body: z.object
CVE: CVE-2025-66456