GNU Wget: heap overflow in HTTP protocol handling
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- Required
- Attack complexity
- Low
- Impact type
- Code execution
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 3.0 · CNA. Fix status from CNA and Red Hat. Impact type from CWE-122 and the CVSS impact.
Summary
The retr.c:fd_read_body() function is called when processing OK responses. When the response is sent chunked in wget before 1.19.2, the chunk parser uses strtol() to read each chunk's length, but doesn't check that the chunk length is a non-negative number. The code then tries to read the chunk in pieces of 8192 bytes by using the MIN() macro, but ends up passing the negative chunk length to retr.c:fd_read(). As fd_read() takes an int argument, the high 32 bits of the chunk length are discarded, leaving fd_read() with a completely attacker controlled length argument. The attacker can corrupt malloc metadata after the allocated buffer.
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| GNU | Wget | before 1.19.2 | 1.19.2 | Patch available | CNA |
- Wget VendorGNU Affected before 1.19.2 Fixed in 1.19.2 Patch available CNA
Remediation
- Fix · CNA Wget (GNU Project) Fixed in 1.19.2
Red Hat 1 advisory
- RHSA-2017:3075 Released 2017-10-26 · Red Hat rating Importantwget security update
- Red Hat Enterprise Linux Client (v. 7) wget-1.14-15.el7_4.1
- Red Hat Enterprise Linux ComputeNode (v. 7) wget-1.14-15.el7_4.1
- Red Hat Enterprise Linux Server (v. 7) wget-1.14-15.el7_4.1
- Red Hat Enterprise Linux Workstation (v. 7) wget-1.14-15.el7_4.1
Fixed in the same release
Records fixed by the same vendor advisory or release, as the CNA lists them.
- Advisory ·
GNU Project Wget — DSA-4008
2 records Highest priority Priority HIGH 1 HIGH, 1 MEDIUM
Other records, highest priority first
- TI-2017-09727 GNU Wget: stack overflow in HTTP protocol handlingPriority HIGH 78
- Advisory ·
GNU Project Wget — RHSA-2017:3075
2 records Highest priority Priority HIGH 1 HIGH, 1 MEDIUM
Other records, highest priority first
- TI-2017-09727 GNU Wget: stack overflow in HTTP protocol handlingPriority HIGH 78
Show 1 more group
- Advisory ·
GNU Project Wget — GLSA-201711-06
2 records Highest priority Priority HIGH 1 HIGH, 1 MEDIUM
Other records, highest priority first
- TI-2017-09727 GNU Wget: stack overflow in HTTP protocol handlingPriority HIGH 78
Vendor assessments
Red Hat
Red Hat rating: Important. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Red Hat Enterprise Linux Client (v. 7) | Fixed | RHSA-2017:3075 |
| Red Hat Enterprise Linux ComputeNode (v. 7) | Fixed | RHSA-2017:3075 |
| Red Hat Enterprise Linux Server (v. 7) | Fixed | RHSA-2017:3075 |
| Red Hat Enterprise Linux Workstation (v. 7) | Fixed | RHSA-2017:3075 |
Not affected: 2 products
- Red Hat Enterprise Linux 5
- Red Hat Enterprise Linux 6
Timeline
- 2026-10-02 Threatist record created from CVE-2017-13090
- 2026-10-03 Alias added: GHSA-55r8-x68f-xh64
References
Patch 2
Advisory 3
More GNU Wget vulnerabilities
- TI-2017-09727 GNU Wget: stack overflow in HTTP protocol handling CVSS 3.0HIGH 8.8
- TI-2016-04293 GNU wget before 1.18 allows remote servers to write to arbitrary files by redirecting a… CVSS 3.1HIGH 8.8
- TI-2014-04014 Absolute path traversal vulnerability in GNU Wget before 1.16, when recursion is enabled… CVSS 2.0HIGH 9.3
- TI-2019-04244 Out-of-bounds write in GNU Wget CVSS 3.0CRITICAL 9.8
- TI-2016-06103 Race condition in wget 1.17 and earlier, when used in recursive or mirroring mode to… CVSS 3.0HIGH 8.1
- TI-2018-00451 Improper input validation in WGet CVSS 3.0MEDIUM 6.5
Sources
- CVE-2017-13090 · CVE Program
- CVE-2017-13090 · NVD
- FIRST EPSS
- GHSA-55r8-x68f-xh64 · GitHub Advisory Database · CC BY 4.0
- CVE-2017-13090 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences