Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

github логотип

GHSA-2rwj-7xq8-4gx4

Опубликовано: 06 авг. 2024
Источник: github
Github: Прошло ревью
CVSS4: 5.1
CVSS3: 6.3

Описание

Qwik has a potential mXSS vulnerability due to improper HTML escaping

Summary

A potential mXSS vulnerability exists in Qwik for versions up to 1.6.0.

Details

Qwik improperly escapes HTML on server-side rendering. It converts strings according to the following rules:

https://github.com/QwikDev/qwik/blob/v1.5.5/packages/qwik/src/core/render/ssr/render-ssr.ts#L1182-L1208

  • If the string is an attribute value:
    • " -> "
    • & -> &
    • Other characters -> No conversion
  • Otherwise:
    • < -> &lt;
    • > -> &gt;
    • & -> &amp;
    • Other characters -> No conversion

It sometimes causes the situation that the final DOM tree rendered on browsers is different from what Qwik expects on server-side rendering. This may be leveraged to perform XSS attacks, and a type of the XSS is known as mXSS (mutation XSS).

PoC

A vulnerable component:

import { component$ } from "@builder.io/qwik"; import { useLocation } from "@builder.io/qwik-city"; export default component$(() => { // user input const { url } = useLocation(); const href = url.searchParams.get("href") ?? "https://example.com"; return ( <div> <noscript> <a href={href}>test</a> </noscript> </div> ); });

If a user accesses the following URL,

http://localhost:4173/?href=</noscript><script>alert(123)</script>

then, alert(123) will be executed.

Impact

XSS

Пакеты

Наименование

@builder.io/qwik

npm
Затронутые версииВерсия исправления

< 1.7.3

1.7.3

EPSS

Процентиль: 69%
0.00609
Низкий

5.1 Medium

CVSS4

6.3 Medium

CVSS3

Дефекты

CWE-79

Связанные уязвимости

CVSS3: 6.3
nvd
больше 1 года назад

Qwik is a performance focused javascript framework. A potential mutation XSS vulnerability exists in Qwik for versions up to but not including 1.6.0. Qwik improperly escapes HTML on server-side rendering. It converts strings according to the rules found in the `render-ssr.ts` file. It sometimes causes the situation that the final DOM tree rendered on browsers is different from what Qwik expects on server-side rendering. This may be leveraged to perform XSS attacks, and a type of the XSS is known as mXSS (mutation XSS). This has been resolved in qwik version 1.6.0 and @builder.io/qwik version 1.7.3. All users are advised to upgrade. There are no known workarounds for this vulnerability.

CVSS3: 6.3
debian
больше 1 года назад

Qwik is a performance focused javascript framework. A potential mutati ...

EPSS

Процентиль: 69%
0.00609
Низкий

5.1 Medium

CVSS4

6.3 Medium

CVSS3

Дефекты

CWE-79