GO-2025-3563 BIT-golang-2025-22871 CVE-2025-22871 GHSA-g9pc-8g42-g6vq
Request smuggling due to acceptance of invalid chunked data in net/http
- Severity
- 9.1 / 10
- Critical · CVSS 3.1
- Exploit chance (EPSS)
- 0.84%
- Chance of exploitation in the next 30 days. Higher than 57.94% of scored vulnerabilities.
- Known exploited
- No
- Not in CISA's catalog
- Weakness
- CWE-1395 Dependency on Vulnerable Third-Party Component
- CWE-444 Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')
- Fix
- Available
- 2 packages have a fixed version
Description
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.
Affected versions
Go
| Package | Vulnerable | Fixed in |
|---|---|---|
| stdlib | < 1.23.8>= 1.24.0-0, < 1.24.2 |
1.23.81.24.2 |
Packagist
| Package | Vulnerable | Fixed in |
|---|---|---|
| spiral/roadrunner | < 2025.1.0 |
2025.1.0 |
How to fix
Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.
stdlib Go → 1.24.2
- go
go get stdlib@v1.24.2 && go mod tidy
spiral/roadrunner Packagist → 2025.1.0
- composer
composer require spiral/roadrunner:^2025.1.0
Severity breakdown
CVSS 3.1 9.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
- Attack vector
- Network
- Attack complexity
- Low
- Privileges required
- None
- User interaction
- None
- Scope
- Unchanged
- Confidentiality
- High
- Integrity
- High
- Availability
- None
Weakness
CWE-1395: Dependency on Vulnerable Third-Party Component
The product has a dependency on a third-party component that contains one or more known vulnerabilities.
How to prevent it
- Requirements, Policy: In some industries such as healthcare [REF-1320] [REF-1322] or technologies such as the cloud [REF-1321], it might be unclear about who is responsible for applying patches for third-party vulnerabilities: the vendor, the operator/customer, or a separate service. Clarifying roles and responsibilities can be important to minimize confusion or unnecessary delay when third-party vulnerabilities are disclosed.
- Requirements: Require a Bill of Materials for all components and sub-components of the product. For software, require a Software Bill of Materials (SBOM) [REF-1247] [REF-1311].
- Architecture and Design, Implementation, Integration, Manufacturing: Maintain a Bill of Materials for all components and sub-components of the product. For software, maintain a Software Bill of Materials (SBOM). According to [REF-1247], "An SBOM is a formal, machine-readable inventory of software components and dependencies, information about those components, and their hierarchical relationships."
- Operation, Patching and Maintenance: Actively monitor when a third-party component vendor announces vulnerability patches; fix the third-party component as soon as possible; and make it easy for operators/customers to obtain and apply the patch.
- Operation, Patching and Maintenance: Continuously monitor changes in each of the product's components, especially when the changes indicate new vulnerabilities, end-of-life (EOL) plans, etc.
CWE-444: Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')
The product acts as an intermediary HTTP agent (such as a proxy or firewall) in the data flow between two entities such as a client and server, but it does not interpret malformed HTTP requests or responses in ways that are consistent with how the messages will be processed by those entities that are at the ultimate destination.
How to prevent it
- Implementation: Use a web server that employs a strict HTTP parsing procedure, such as Apache [REF-433].
- Implementation: Use only SSL communication.
- Implementation: Terminate the client session after each request.
- System Configuration: Turn all pages to non-cacheable.
References
Advisories
Packages
Other links
- github.com/roadrunner-server/roadrunner/issues/2166
- github.com/roadrunner-server/roadrunner/commit/f269279ee87d0b88127741cad1042389…
- cert-portal.siemens.com/productcert/html/ssa-783943.html
- github.com/roadrunner-server/roadrunner/releases/tag/v2025.1.0
- go.dev/cl/652998
- go.dev/issue/71988
- groups.google.com/g/golang-announce/c/Y2uBTVKjBQk
- pkg.go.dev/vuln/GO-2025-3563
- openwall.com/lists/oss-security/2025/04/04/4
Timeline
- Published
- Last updated by the source
- Latest EPSS score
Related advisories
| Advisory | Severity | Why it's related |
|---|---|---|
| GHSA-4374-p667-p6c8 HTTP/2 rapid reset can cause excessive work in net/http | High Known exploited | Also affects stdlib |
| CVE-2020-0601 Certificate validation bypass on Windows in crypto/x509 | High Known exploited | Also affects stdlib |
| RUSTSEC-2026-0382 Distrust compromised intermediate certificates in crypto/x509 | Medium | Also affects stdlib |
| GO-2026-6613 HTTP/1 server connection desynchronization after 2xx CONNECT response in net/http | High | Also affects stdlib |
| GO-2026-6609 Lack of limit on size of parsed Range headers in net/http | High | Also affects stdlib |
| GO-2026-6608 Memory limit bypass when parsing MIME headers in net/textproto, mime/multipart | High | Also affects stdlib |
| GO-2026-6607 Reject malformed ECH outer extension references in crypto/tls | High | Also affects stdlib |
| GO-2026-6604 Root.Mkdir(All) can follow junctions out of the root on Windows in os | Critical | Also affects stdlib |
Credits: Jeppe Bonde Weikop
MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.
Check your repos with MergeHarbor