Vulnerabilites related to Go standard library - net/http/internal
cve-2025-22871
Vulnerability from cvelistv5
Published
2025-04-08 20:04
Modified
2025-04-18 14:57
Severity ?
Summary
The net/http package improperly accepts a bare LF as a line terminator in chunked data chunk-size lines. This can permit request smuggling if a net/http server is used in conjunction with a server that incorrectly accepts a bare LF as part of a chunk-ext.
Impacted products
Vendor Product Version
Go standard library net/http/internal Version: 0   
Version: 1.24.0-0   
Create a notification for this product.
Show details on NVD website


{
   containers: {
      adp: [
         {
            providerMetadata: {
               dateUpdated: "2025-04-08T21:03:21.913Z",
               orgId: "af854a3a-2127-422b-91ae-364da2661108",
               shortName: "CVE",
            },
            references: [
               {
                  url: "http://www.openwall.com/lists/oss-security/2025/04/04/4",
               },
            ],
            title: "CVE Program Container",
         },
         {
            metrics: [
               {
                  cvssV3_1: {
                     attackComplexity: "LOW",
                     attackVector: "NETWORK",
                     availabilityImpact: "NONE",
                     baseScore: 9.1,
                     baseSeverity: "CRITICAL",
                     confidentialityImpact: "HIGH",
                     integrityImpact: "HIGH",
                     privilegesRequired: "NONE",
                     scope: "UNCHANGED",
                     userInteraction: "NONE",
                     vectorString: "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N",
                     version: "3.1",
                  },
               },
               {
                  other: {
                     content: {
                        id: "CVE-2025-22871",
                        options: [
                           {
                              Exploitation: "none",
                           },
                           {
                              Automatable: "yes",
                           },
                           {
                              "Technical Impact": "total",
                           },
                        ],
                        role: "CISA Coordinator",
                        timestamp: "2025-04-18T14:57:03.151639Z",
                        version: "2.0.3",
                     },
                     type: "ssvc",
                  },
               },
            ],
            providerMetadata: {
               dateUpdated: "2025-04-18T14:57:31.331Z",
               orgId: "134c704f-9b21-4f2e-91b3-4a467353bcc0",
               shortName: "CISA-ADP",
            },
            title: "CISA ADP Vulnrichment",
         },
      ],
      cna: {
         affected: [
            {
               collectionURL: "https://pkg.go.dev",
               defaultStatus: "unaffected",
               packageName: "net/http/internal",
               product: "net/http/internal",
               programRoutines: [
                  {
                     name: "readChunkLine",
                  },
                  {
                     name: "chunkedReader.Read",
                  },
               ],
               vendor: "Go standard library",
               versions: [
                  {
                     lessThan: "1.23.8",
                     status: "affected",
                     version: "0",
                     versionType: "semver",
                  },
                  {
                     lessThan: "1.24.2",
                     status: "affected",
                     version: "1.24.0-0",
                     versionType: "semver",
                  },
               ],
            },
         ],
         credits: [
            {
               lang: "en",
               value: "Jeppe Bonde Weikop",
            },
         ],
         descriptions: [
            {
               lang: "en",
               value: "The net/http package improperly accepts a bare LF as a line terminator in chunked data chunk-size lines. This can permit request smuggling if a net/http server is used in conjunction with a server that incorrectly accepts a bare LF as part of a chunk-ext.",
            },
         ],
         problemTypes: [
            {
               descriptions: [
                  {
                     description: "CWE-444: Inconsistent Interpretation of HTTP Requests ('HTTP Request Smuggling')",
                     lang: "en",
                  },
               ],
            },
         ],
         providerMetadata: {
            dateUpdated: "2025-04-08T20:04:34.769Z",
            orgId: "1bb62c36-49e3-4200-9d77-64a1400537cc",
            shortName: "Go",
         },
         references: [
            {
               url: "https://go.dev/cl/652998",
            },
            {
               url: "https://go.dev/issue/71988",
            },
            {
               url: "https://groups.google.com/g/golang-announce/c/Y2uBTVKjBQk",
            },
            {
               url: "https://pkg.go.dev/vuln/GO-2025-3563",
            },
         ],
         title: "Request smuggling due to acceptance of invalid chunked data in net/http",
      },
   },
   cveMetadata: {
      assignerOrgId: "1bb62c36-49e3-4200-9d77-64a1400537cc",
      assignerShortName: "Go",
      cveId: "CVE-2025-22871",
      datePublished: "2025-04-08T20:04:34.769Z",
      dateReserved: "2025-01-08T19:11:42.834Z",
      dateUpdated: "2025-04-18T14:57:31.331Z",
      state: "PUBLISHED",
   },
   dataType: "CVE_RECORD",
   dataVersion: "5.1",
}

cve-2023-39326
Vulnerability from cvelistv5
Published
2023-12-06 16:27
Modified
2025-02-13 17:02
Severity ?
Summary
A malicious HTTP sender can use chunk extensions to cause a receiver reading from a request or response body to read many more bytes from the network than are in the body. A malicious HTTP client can further exploit this to cause a server to automatically read a large amount of data (up to about 1GiB) when a handler fails to read the entire body of a request. Chunk extensions are a little-used HTTP feature which permit including additional metadata in a request or response body sent using the chunked encoding. The net/http chunked encoding reader discards this metadata. A sender can exploit this by inserting a large metadata segment with each byte transferred. The chunk reader now produces an error if the ratio of real body to encoded bytes grows too small.
Impacted products
Vendor Product Version
Go standard library net/http/internal Version: 0   
Version: 1.21.0-0   
Create a notification for this product.
Show details on NVD website


{
   containers: {
      adp: [
         {
            providerMetadata: {
               dateUpdated: "2024-08-02T18:02:06.808Z",
               orgId: "af854a3a-2127-422b-91ae-364da2661108",
               shortName: "CVE",
            },
            references: [
               {
                  tags: [
                     "x_transferred",
                  ],
                  url: "https://go.dev/issue/64433",
               },
               {
                  tags: [
                     "x_transferred",
                  ],
                  url: "https://go.dev/cl/547335",
               },
               {
                  tags: [
                     "x_transferred",
                  ],
                  url: "https://groups.google.com/g/golang-dev/c/6ypN5EjibjM/m/KmLVYH_uAgAJ",
               },
               {
                  tags: [
                     "x_transferred",
                  ],
                  url: "https://pkg.go.dev/vuln/GO-2023-2382",
               },
               {
                  tags: [
                     "x_transferred",
                  ],
                  url: "https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/UIU6HOGV6RRIKWM57LOXQA75BGZSIH6G/",
               },
            ],
            title: "CVE Program Container",
         },
      ],
      cna: {
         affected: [
            {
               collectionURL: "https://pkg.go.dev",
               defaultStatus: "unaffected",
               packageName: "net/http/internal",
               product: "net/http/internal",
               programRoutines: [
                  {
                     name: "chunkedReader.beginChunk",
                  },
                  {
                     name: "readChunkLine",
                  },
                  {
                     name: "chunkedReader.Read",
                  },
               ],
               vendor: "Go standard library",
               versions: [
                  {
                     lessThan: "1.20.12",
                     status: "affected",
                     version: "0",
                     versionType: "semver",
                  },
                  {
                     lessThan: "1.21.5",
                     status: "affected",
                     version: "1.21.0-0",
                     versionType: "semver",
                  },
               ],
            },
         ],
         credits: [
            {
               lang: "en",
               value: "Bartek Nowotarski",
            },
         ],
         descriptions: [
            {
               lang: "en",
               value: "A malicious HTTP sender can use chunk extensions to cause a receiver reading from a request or response body to read many more bytes from the network than are in the body. A malicious HTTP client can further exploit this to cause a server to automatically read a large amount of data (up to about 1GiB) when a handler fails to read the entire body of a request. Chunk extensions are a little-used HTTP feature which permit including additional metadata in a request or response body sent using the chunked encoding. The net/http chunked encoding reader discards this metadata. A sender can exploit this by inserting a large metadata segment with each byte transferred. The chunk reader now produces an error if the ratio of real body to encoded bytes grows too small.",
            },
         ],
         problemTypes: [
            {
               descriptions: [
                  {
                     description: "CWE-400: Uncontrolled Resource Consumption",
                     lang: "en",
                  },
               ],
            },
         ],
         providerMetadata: {
            dateUpdated: "2024-01-20T04:06:26.754Z",
            orgId: "1bb62c36-49e3-4200-9d77-64a1400537cc",
            shortName: "Go",
         },
         references: [
            {
               url: "https://go.dev/issue/64433",
            },
            {
               url: "https://go.dev/cl/547335",
            },
            {
               url: "https://groups.google.com/g/golang-dev/c/6ypN5EjibjM/m/KmLVYH_uAgAJ",
            },
            {
               url: "https://pkg.go.dev/vuln/GO-2023-2382",
            },
            {
               url: "https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/UIU6HOGV6RRIKWM57LOXQA75BGZSIH6G/",
            },
         ],
         title: "Denial of service via chunk extensions in net/http",
      },
   },
   cveMetadata: {
      assignerOrgId: "1bb62c36-49e3-4200-9d77-64a1400537cc",
      assignerShortName: "Go",
      cveId: "CVE-2023-39326",
      datePublished: "2023-12-06T16:27:53.832Z",
      dateReserved: "2023-07-27T17:05:55.188Z",
      dateUpdated: "2025-02-13T17:02:50.990Z",
      state: "PUBLISHED",
   },
   dataType: "CVE_RECORD",
   dataVersion: "5.1",
}