elysia

Ecosystem: npm

Downloads: 6.86 Mln

Vulnerabilities from the last (months)
  • 1CriticalAffects 1 version
  • 3HighAffects 3 versions
  • 0MediumAffects 0 versions
  • 1ModerateAffects 1 version
  • 0LowAffects 0 versions
Severity distribution (all time)
5vulnerabilities
  • 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.

Vulnerabilities affecting elysia
IDSeveritySummaryAffected versionsPublishedSource
GHSA-9643-4qgh-g8mxHighelysia 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
  • < 1.4.29
GitHub (opens in a new tab)
GHSA-8hq9-phh3-p2wpModerateElysia 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
  • < 1.4.27
GitHub (opens in a new tab)
GHSA-f45g-68q3-5w8xHighElysia 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 | |
  • < 1.4.26
GitHub (opens in a new tab)
GHSA-8vch-m3f4-q8jfHighElysia 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
  • < 1.4.18
GitHub (opens in a new tab)
GHSA-hxj9-33pp-j2ccCriticalElysia 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
  • >= 1.4.0, < 1.4.17
GitHub (opens in a new tab)
  • GHSA-9643-4qgh-g8mxHigh
    elysia 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-p2wpModerate
    Elysia 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

  • GHSA-f45g-68q3-5w8xHigh
    Elysia has a string URL format ReDoS
    • < 1.4.26

    ### 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-q8jfHigh
    Elysia 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-j2ccCritical
    Elysia 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

Showing 1-5 of 5 vulnerabilities