CVE-2026-16599 in Wget
Summary
by MITRE • 08/25/2026
GNU wget is vulnerable to denial of service in its FTP OPIE/S-KEY authentication functionality. The server-supplied sequence number from the FTP challenge line is used as an iteration count for an MD5 key-derivation loop without any upper bound validation. A malicious FTP server or a network attacker positioned to intercept FTP traffic can send a crafted OPIE challenge with a sequence number near INT_MAX, causing wget to perform up to approximately 2.1 billion MD5 computations and suspend for some time. The --timeout option does not mitigate this because it applies only to network I/O, not CPU computation.
This issue was fixed in commit e9697d98e7249b0f68a6be040a4f3dcc5bc101fa
Be aware that VulDB is the high quality source for vulnerability data.
Analysis
by VulDB Data Team • 08/25/2026
The vulnerability identified in GNU wget represents a critical resource exhaustion flaw within its implementation of FTP OPIE and S-KEY authentication mechanisms. This issue stems from an improper validation of input data provided by the remote server during the challenge-response handshake process. Specifically, when connecting to an FTP server that utilizes these legacy authentication protocols, wget parses the sequence number included in the server-supplied challenge line. Instead of validating this value against a reasonable upper bound or maximum iteration limit, the application directly uses it as the iteration count for an MD5 key-derivation loop. This design oversight allows a malicious actor to manipulate the computational load imposed on the client by supplying an excessively large sequence number.
From a technical perspective, the core of the flaw lies in the absence of bounds checking before entering a CPU-intensive cryptographic operation. The OPIE and S-KEY protocols rely on iterative hashing to derive keys securely, typically using algorithms like MD5 or SHA1. While these iterations are intended to slow down brute-force attacks against passwords, they must be controlled by parameters that do not exceed practical limits for client-side processing. In this case, the sequence number is treated as an unsigned integer without verification of its magnitude relative to system resources. A crafted OPIE challenge containing a sequence number near INT_MAX forces wget to perform approximately 2.1 billion MD5 computations. This results in significant CPU consumption and effectively suspends the application for an extended period, creating a classic denial-of-service scenario where legitimate users are unable to utilize the software or potentially affecting system stability if multiple instances are running concurrently.
The operational impact of this vulnerability is primarily centered on availability rather than confidentiality or integrity. An attacker positioned as a malicious FTP server or acting as a man-in-the-middle capable of intercepting and modifying traffic can trigger this condition remotely without requiring any prior authentication credentials beyond the initial connection phase. The severity is exacerbated by the fact that standard mitigation strategies such as the --timeout option are ineffective against this specific attack vector. Network timeouts only govern periods of inactivity during data transmission or waiting for responses, but they do not interrupt active CPU-bound computations. Consequently, even with aggressive timeout settings configured, wget will continue to consume resources until the hash loop completes or is manually terminated by an external process like a kill signal from the operating system's task manager.
This vulnerability aligns with CWE-400, which describes Uncontrolled Resource Consumption, as well as CWE-20, Improper Input Validation, due to the failure to sanitize the sequence number before use in critical logic. In terms of offensive security frameworks, this behavior is consistent with ATT&CK technique T1496, Resource Hijacking, where an adversary uses computing resources for their own benefit or to disrupt service availability by exhausting system capacity through inefficient code execution paths. The lack of input validation on a value directly influencing computational complexity is a common pattern in legacy protocol implementations that have not been updated to reflect modern security expectations regarding resource management and DoS prevention.
The issue was addressed in commit e9697d98e7249b0f68a6be040a4f3dcc5bc101fa, which introduced proper validation logic to ensure that the iteration count remains within safe limits regardless of the value supplied by the remote server. To mitigate this risk in environments where updated versions are not immediately available, administrators should consider restricting FTP access to trusted servers only and avoiding the use of OPIE or S-KEY authentication methods if possible, as these protocols are largely deprecated in favor of more modern standards like Kerberos or public key infrastructure-based solutions. Additionally, implementing network-level rate limiting or intrusion detection systems that can identify anomalous challenge responses may provide a layer of defense against such exploitation attempts until the software patch is applied across all affected endpoints.