gsd-2022-35948
Vulnerability from gsd
Modified
2023-12-13 01:19
Details
undici is an HTTP/1.1 client, written from scratch for Node.js.`=< undici@5.8.0` users are vulnerable to _CRLF Injection_ on headers when using unsanitized input as request headers, more specifically, inside the `content-type` header. Example: ``` import { request } from 'undici' const unsanitizedContentTypeInput = 'application/json\r\n\r\nGET /foo2 HTTP/1.1' await request('http://localhost:3000, { method: 'GET', headers: { 'content-type': unsanitizedContentTypeInput }, }) ``` The above snippet will perform two requests in a single `request` API call: 1) `http://localhost:3000/` 2) `http://localhost:3000/foo2` This issue was patched in Undici v5.8.1. Sanitize input when sending content-type headers using user input as a workaround.
Aliases
Aliases
{ GSD: { alias: "CVE-2022-35948", description: "undici is an HTTP/1.1 client, written from scratch for Node.js.`=< undici@5.8.0` users are vulnerable to _CRLF Injection_ on headers when using unsanitized input as request headers, more specifically, inside the `content-type` header. Example: ``` import { request } from 'undici' const unsanitizedContentTypeInput = 'application/json\\r\\n\\r\\nGET /foo2 HTTP/1.1' await request('http://localhost:3000, { method: 'GET', headers: { 'content-type': unsanitizedContentTypeInput }, }) ``` The above snippet will perform two requests in a single `request` API call: 1) `http://localhost:3000/` 2) `http://localhost:3000/foo2` This issue was patched in Undici v5.8.1. Sanitize input when sending content-type headers using user input as a workaround.", id: "GSD-2022-35948", references: [ "https://www.suse.com/security/cve/CVE-2022-35948.html", ], }, gsd: { metadata: { exploitCode: "unknown", remediation: "unknown", reportConfidence: "confirmed", type: "vulnerability", }, osvSchema: { aliases: [ "CVE-2022-35948", ], details: "undici is an HTTP/1.1 client, written from scratch for Node.js.`=< undici@5.8.0` users are vulnerable to _CRLF Injection_ on headers when using unsanitized input as request headers, more specifically, inside the `content-type` header. Example: ``` import { request } from 'undici' const unsanitizedContentTypeInput = 'application/json\\r\\n\\r\\nGET /foo2 HTTP/1.1' await request('http://localhost:3000, { method: 'GET', headers: { 'content-type': unsanitizedContentTypeInput }, }) ``` The above snippet will perform two requests in a single `request` API call: 1) `http://localhost:3000/` 2) `http://localhost:3000/foo2` This issue was patched in Undici v5.8.1. Sanitize input when sending content-type headers using user input as a workaround.", id: "GSD-2022-35948", modified: "2023-12-13T01:19:33.947982Z", schema_version: "1.4.0", }, }, namespaces: { "cve.org": { CVE_data_meta: { ASSIGNER: "security-advisories@github.com", ID: "CVE-2022-35948", STATE: "PUBLIC", TITLE: "CRLF Injection in Nodejs ‘undici’ via Content-Type", }, affects: { vendor: { vendor_data: [ { product: { product_data: [ { product_name: "undici", version: { version_data: [ { version_value: "=< 5.8.0", }, ], }, }, ], }, vendor_name: "nodejs", }, ], }, }, data_format: "MITRE", data_type: "CVE", data_version: "4.0", description: { description_data: [ { lang: "eng", value: "undici is an HTTP/1.1 client, written from scratch for Node.js.`=< undici@5.8.0` users are vulnerable to _CRLF Injection_ on headers when using unsanitized input as request headers, more specifically, inside the `content-type` header. Example: ``` import { request } from 'undici' const unsanitizedContentTypeInput = 'application/json\\r\\n\\r\\nGET /foo2 HTTP/1.1' await request('http://localhost:3000, { method: 'GET', headers: { 'content-type': unsanitizedContentTypeInput }, }) ``` The above snippet will perform two requests in a single `request` API call: 1) `http://localhost:3000/` 2) `http://localhost:3000/foo2` This issue was patched in Undici v5.8.1. Sanitize input when sending content-type headers using user input as a workaround.", }, ], }, impact: { cvss: { attackComplexity: "HIGH", attackVector: "NETWORK", availabilityImpact: "HIGH", baseScore: 7.1, baseSeverity: "HIGH", confidentialityImpact: "HIGH", integrityImpact: "LOW", privilegesRequired: "LOW", scope: "UNCHANGED", userInteraction: "NONE", vectorString: "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N", version: "3.1", }, }, problemtype: { problemtype_data: [ { description: [ { lang: "eng", value: "CWE-93: Improper Neutralization of CRLF Sequences ('CRLF Injection')", }, ], }, { description: [ { lang: "eng", value: "CWE-74: Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection')", }, ], }, ], }, references: { reference_data: [ { name: "https://github.com/nodejs/undici/releases/tag/v5.8.2", refsource: "MISC", url: "https://github.com/nodejs/undici/releases/tag/v5.8.2", }, { name: "https://github.com/nodejs/undici/security/advisories/GHSA-f772-66g8-q5h3", refsource: "CONFIRM", url: "https://github.com/nodejs/undici/security/advisories/GHSA-f772-66g8-q5h3", }, { name: "https://github.com/nodejs/undici/commit/66165d604fd0aee70a93ed5c44ad4cc2df395f80", refsource: "MISC", url: "https://github.com/nodejs/undici/commit/66165d604fd0aee70a93ed5c44ad4cc2df395f80", }, ], }, source: { advisory: "GHSA-f772-66g8-q5h3", discovery: "UNKNOWN", }, }, "gitlab.com": { advisories: [ { affected_range: "<5.8.2", affected_versions: "All versions before 5.8.2", cvss_v3: "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N", cwe_ids: [ "CWE-1035", "CWE-74", "CWE-937", ], date: "2023-03-28", description: "undici is an HTTP/1.1 client, written from scratch for Node.js.`=< undici@5.8.0` users is vulnerable to _CRLF Injection_ on headers when using unsanitized input as request headers, more specifically, inside the `content-type` header. Example: ``` import { request } from 'undici' const unsanitizedContentTypeInput = 'application/json\\r\\n\\r\\nGET /foo2 HTTP/1.1' await request('http://localhost:3000, { method: 'GET', headers: { 'content-type': unsanitizedContentTypeInput }, }) ``` The above snippet will perform two requests in a single `request` API call: 1) `http://localhost:3000/` 2) `http://localhost:3000/foo2` This issue was patched in Undici v5.8.1. Sanitize input when sending content-type headers using user input as a workaround.", fixed_versions: [ "5.8.2", ], identifier: "CVE-2022-35948", identifiers: [ "CVE-2022-35948", "GHSA-f772-66g8-q5h3", ], not_impacted: "All versions starting from 5.8.2", package_slug: "npm/undici", pubdate: "2022-08-15", solution: "Upgrade to version 5.8.2 or above.", title: "Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection')", urls: [ "https://nvd.nist.gov/vuln/detail/CVE-2022-35948", "https://github.com/nodejs/undici/security/advisories/GHSA-f772-66g8-q5h3", "https://github.com/nodejs/undici/releases/tag/v5.8.2", "https://github.com/nodejs/undici/commit/66165d604fd0aee70a93ed5c44ad4cc2df395f80", ], uuid: "1c941332-5d09-40e0-9682-12ad26ed3894", }, ], }, "nvd.nist.gov": { configurations: { CVE_data_version: "4.0", nodes: [ { children: [], cpe_match: [ { cpe23Uri: "cpe:2.3:a:nodejs:undici:*:*:*:*:*:node.js:*:*", cpe_name: [], versionEndExcluding: "5.8.2", vulnerable: true, }, ], operator: "OR", }, ], }, cve: { CVE_data_meta: { ASSIGNER: "security-advisories@github.com", ID: "CVE-2022-35948", }, data_format: "MITRE", data_type: "CVE", data_version: "4.0", description: { description_data: [ { lang: "en", value: "undici is an HTTP/1.1 client, written from scratch for Node.js.`=< undici@5.8.0` users are vulnerable to _CRLF Injection_ on headers when using unsanitized input as request headers, more specifically, inside the `content-type` header. Example: ``` import { request } from 'undici' const unsanitizedContentTypeInput = 'application/json\\r\\n\\r\\nGET /foo2 HTTP/1.1' await request('http://localhost:3000, { method: 'GET', headers: { 'content-type': unsanitizedContentTypeInput }, }) ``` The above snippet will perform two requests in a single `request` API call: 1) `http://localhost:3000/` 2) `http://localhost:3000/foo2` This issue was patched in Undici v5.8.1. Sanitize input when sending content-type headers using user input as a workaround.", }, ], }, problemtype: { problemtype_data: [ { description: [ { lang: "en", value: "CWE-74", }, { lang: "en", value: "CWE-93", }, ], }, ], }, references: { reference_data: [ { name: "https://github.com/nodejs/undici/security/advisories/GHSA-f772-66g8-q5h3", refsource: "CONFIRM", tags: [ "Exploit", "Third Party Advisory", ], url: "https://github.com/nodejs/undici/security/advisories/GHSA-f772-66g8-q5h3", }, { name: "https://github.com/nodejs/undici/releases/tag/v5.8.2", refsource: "MISC", tags: [ "Release Notes", "Third Party Advisory", ], url: "https://github.com/nodejs/undici/releases/tag/v5.8.2", }, { name: "https://github.com/nodejs/undici/commit/66165d604fd0aee70a93ed5c44ad4cc2df395f80", refsource: "MISC", tags: [ "Patch", "Third Party Advisory", ], url: "https://github.com/nodejs/undici/commit/66165d604fd0aee70a93ed5c44ad4cc2df395f80", }, ], }, }, impact: { baseMetricV3: { cvssV3: { attackComplexity: "LOW", attackVector: "NETWORK", availabilityImpact: "NONE", baseScore: 5.3, baseSeverity: "MEDIUM", confidentialityImpact: "NONE", integrityImpact: "LOW", privilegesRequired: "NONE", scope: "UNCHANGED", userInteraction: "NONE", vectorString: "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N", version: "3.1", }, exploitabilityScore: 3.9, impactScore: 1.4, }, }, lastModifiedDate: "2023-03-28T17:08Z", publishedDate: "2022-08-15T11:21Z", }, }, }
Log in or create an account to share your comment.
Security Advisory comment format.
This schema specifies the format of a comment related to a security advisory.
Title of the comment
Description of the comment
Loading…
Loading…
Loading…
Sightings
Author | Source | Type | Date |
---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.