GNU wget up to 1.17 Recursive Mode/Mirroring Mode race condition

| CVSS Meta Temp Score | Current Exploit Price (≈) | CTI Interest Score |
|---|---|---|
| 7.3 | $0-$5k | 0.00 |
Summary
A vulnerability was found in GNU wget up to 1.17. It has been declared as critical. This affects an unknown function of the component Recursive Mode/Mirroring Mode. Such manipulation leads to race condition. This vulnerability is referenced as CVE-2016-7098. It is possible to launch the attack remotely. Furthermore, an exploit is available. It is recommended to upgrade the affected component.
Details
A vulnerability was found in GNU wget up to 1.17 (Automation Software) and classified as critical. Affected by this issue is some unknown processing of the component Recursive Mode/Mirroring Mode. The manipulation with an unknown input leads to a race condition vulnerability. Using CWE to declare the problem leads to CWE-362. The product contains a code sequence that can run concurrently with other code, and the code sequence requires temporary, exclusive access to a shared resource, but a timing window exists in which the shared resource can be modified by another code sequence that is operating concurrently. Impacted is confidentiality, integrity, and availability. CVE summarizes:
Race condition in wget 1.17 and earlier, when used in recursive or mirroring mode to download a single file, might allow remote servers to bypass intended access list restrictions by keeping an HTTP connection open.
The bug was discovered 08/27/2016. The weakness was published 09/27/2016 by Dawid Golunski as Wget-Exploit-ACL-bypass-RaceCond-CVE-2016-7098.html as confirmed advisory (Website). The advisory is available at legalhackers.com. This vulnerability is handled as CVE-2016-7098 since 08/26/2016. The attack may be launched remotely. No form of authentication is required for exploitation. Technical details are unknown but a public exploit is available. The advisory points out:
GNU wget in version 1.17 and earlier, when used in mirroring/recursive mode, is affected by a Race Condition vulnerability that might allow remote attackers to bypass intended wget access list restrictions specified with -A parameter. This might allow attackers to place malicious/restricted files onto the system. Depending on the application / download directory, this could potentially lead to other vulnerabilities such as code execution etc.
A public exploit has been developed by Dawid Golunski in PHP and been published 3 months after the advisory. The exploit is available at legalhackers.com. It is declared as proof-of-concept. The vulnerability was handled as a non-public zero-day exploit for at least 30 days. During that time the estimated underground price was around $0-$5k. The vulnerability scanner Nessus provides a plugin with the ID 95418 (FreeBSD : wget -- Access List Bypass / Race Condition (479c5b91-b6cc-11e6-a04e-3417eb99b9a0)), which helps to determine the existence of the flaw in a target environment. It is assigned to the family FreeBSD Local Security Checks and running in the context l. The commercial vulnerability scanner Qualys is able to test this issue with plugin 169178 (SUSE Enterprise Linux Security Update for wget (SUSE-SU-2016:2358-1)). The code used by the exploit is:
// Vulnerable webapp [image_importer.php]
// Uses wget to import user images from provided site URL
// It only accepts JPG files (-A wget option).
if ( isset($_GET['imgurl']) ) {
$URL = escapeshellarg($_GET['imgurl']);
} else {
die("imgurl parameter missing");
}
if ( !file_exists("image_uploads") ) {
mkdir("image_uploads");
}
// Download user JPG images into /image_uploads directory
system("wget -r -nH -P image_uploads -A '*.jpg' $URL 2>&1");Upgrading to version 1.18 eliminates this vulnerability. A possible mitigation has been published 3 months after the disclosure of the vulnerability.
The vulnerability is also documented in the databases at Exploit-DB (40824), Tenable (95418) and SecurityFocus (BID 93157†). If you want to get best quality of vulnerability data, you may have to visit VulDB.
Product
Type
Vendor
Name
Version
License
Website
- Vendor: https://www.gnu.org/
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔍VulDB Reliability: 🔍
CVSSv3
VulDB Meta Base Score: 7.7VulDB Meta Temp Score: 7.3
VulDB Base Score: 7.3
VulDB Temp Score: 6.6
VulDB Vector: 🔍
VulDB Reliability: 🔍
NVD Base Score: 8.1
NVD Vector: 🔍
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vector | Complexity | Authentication | Confidentiality | Integrity | Availability |
|---|---|---|---|---|---|
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
VulDB Base Score: 🔍
VulDB Temp Score: 🔍
VulDB Reliability: 🔍
NVD Base Score: 🔍
Exploiting
Class: Race conditionCWE: CWE-362
CAPEC: 🔍
ATT&CK: 🔍
Physical: No
Local: No
Remote: Yes
Availability: 🔍
Access: Public
Status: Proof-of-Concept
Author: Dawid Golunski
Programming Language: 🔍
Download: 🔍
EPSS Score: 🔍
EPSS Percentile: 🔍
Price Prediction: 🔍
Current Price Estimation: 🔍
| 0-Day | Unlock | Unlock | Unlock | Unlock |
|---|---|---|---|---|
| Today | Unlock | Unlock | Unlock | Unlock |
Nessus ID: 95418
Nessus Name: FreeBSD : wget -- Access List Bypass / Race Condition (479c5b91-b6cc-11e6-a04e-3417eb99b9a0)
Nessus File: 🔍
Nessus Risk: 🔍
Nessus Family: 🔍
Nessus Context: 🔍
OpenVAS ID: 841810
OpenVAS Name: Ubuntu Update for wget USN-3464-1
OpenVAS File: 🔍
OpenVAS Family: 🔍
Qualys ID: 🔍
Qualys Name: 🔍
Exploit-DB: 🔍
Threat Intelligence
Interest: 🔍Active Actors: 🔍
Active APT Groups: 🔍
Countermeasures
Recommended: UpgradeStatus: 🔍
Reaction Time: 🔍
0-Day Time: 🔍
Exposure Time: 🔍
Exploit Delay Time: 🔍
Upgrade: wget 1.18
Timeline
08/26/2016 🔍08/27/2016 🔍
09/26/2016 🔍
09/26/2016 🔍
09/27/2016 🔍
09/27/2016 🔍
11/24/2016 🔍
11/24/2016 🔍
11/30/2016 🔍
12/01/2016 🔍
01/19/2025 🔍
Sources
Vendor: gnu.orgAdvisory: Wget-Exploit-ACL-bypass-RaceCond-CVE-2016-7098.html
Researcher: Dawid Golunski
Status: Confirmed
CVE: CVE-2016-7098 (🔍)
GCVE (CVE): GCVE-0-2016-7098
GCVE (VulDB): GCVE-100-92210
SecurityFocus: 93157 - GNU Wget CVE-2016-7098 Security Bypass Vulnerability
scip Labs: https://www.scip.ch/en/?labs.20161013
Entry
Created: 09/27/2016 10:51Updated: 01/19/2025 19:28
Changes: 09/27/2016 10:51 (90), 07/31/2019 19:04 (5), 01/19/2025 19:28 (17)
Complete: 🔍
Cache ID: 216::103
If you want to get best quality of vulnerability data, you may have to visit VulDB.
No comments yet. Languages: en.
Please log in to comment.