The get1 command, as used by lftpget, in LFTP before 4.0.6 does not properly validate a server-provided filename before determining the destination filename of a download, which allows remote servers to create or overwrite arbitrary files via a Content-Disposition header that suggests a crafted filename, and possibly execute arbitrary code as a consequence of writing to a dotfile in a home directory.
The product receives input or data, but it does not validate or incorrectly validates that the input has the properties that are required to process the data safely and correctly.
Name | Vendor | Start Version | End Version |
---|---|---|---|
Lftp | Alexander_v._lukyanov | * | 4.0.5 (including) |
Lftp | Alexander_v._lukyanov | 2.0.0 (including) | 2.0.0 (including) |
Lftp | Alexander_v._lukyanov | 2.0.1 (including) | 2.0.1 (including) |
Lftp | Alexander_v._lukyanov | 2.0.2 (including) | 2.0.2 (including) |
Lftp | Alexander_v._lukyanov | 2.0.3 (including) | 2.0.3 (including) |
Lftp | Alexander_v._lukyanov | 2.0.4 (including) | 2.0.4 (including) |
Lftp | Alexander_v._lukyanov | 2.0.5 (including) | 2.0.5 (including) |
Lftp | Alexander_v._lukyanov | 2.1.0 (including) | 2.1.0 (including) |
Lftp | Alexander_v._lukyanov | 2.1.1 (including) | 2.1.1 (including) |
Lftp | Alexander_v._lukyanov | 2.1.2 (including) | 2.1.2 (including) |
Lftp | Alexander_v._lukyanov | 2.1.3 (including) | 2.1.3 (including) |
Lftp | Alexander_v._lukyanov | 2.1.4 (including) | 2.1.4 (including) |
Lftp | Alexander_v._lukyanov | 2.1.5 (including) | 2.1.5 (including) |
Lftp | Alexander_v._lukyanov | 2.1.6 (including) | 2.1.6 (including) |
Lftp | Alexander_v._lukyanov | 2.1.7 (including) | 2.1.7 (including) |
Lftp | Alexander_v._lukyanov | 2.1.8 (including) | 2.1.8 (including) |
Lftp | Alexander_v._lukyanov | 2.1.9 (including) | 2.1.9 (including) |
Lftp | Alexander_v._lukyanov | 2.1.10 (including) | 2.1.10 (including) |
Lftp | Alexander_v._lukyanov | 2.2.0 (including) | 2.2.0 (including) |
Lftp | Alexander_v._lukyanov | 2.2.0a (including) | 2.2.0a (including) |
Lftp | Alexander_v._lukyanov | 2.2.1 (including) | 2.2.1 (including) |
Lftp | Alexander_v._lukyanov | 2.2.2 (including) | 2.2.2 (including) |
Lftp | Alexander_v._lukyanov | 2.2.3 (including) | 2.2.3 (including) |
Lftp | Alexander_v._lukyanov | 2.2.4 (including) | 2.2.4 (including) |
Lftp | Alexander_v._lukyanov | 2.2.5 (including) | 2.2.5 (including) |
Lftp | Alexander_v._lukyanov | 2.2.6 (including) | 2.2.6 (including) |
Lftp | Alexander_v._lukyanov | 2.3 (including) | 2.3 (including) |
Lftp | Alexander_v._lukyanov | 2.3.0 (including) | 2.3.0 (including) |
Lftp | Alexander_v._lukyanov | 2.3.1 (including) | 2.3.1 (including) |
Lftp | Alexander_v._lukyanov | 2.3.2 (including) | 2.3.2 (including) |
Lftp | Alexander_v._lukyanov | 2.3.3 (including) | 2.3.3 (including) |
Lftp | Alexander_v._lukyanov | 2.3.4 (including) | 2.3.4 (including) |
Lftp | Alexander_v._lukyanov | 2.3.5 (including) | 2.3.5 (including) |
Lftp | Alexander_v._lukyanov | 2.3.6 (including) | 2.3.6 (including) |
Lftp | Alexander_v._lukyanov | 2.3.7 (including) | 2.3.7 (including) |
Lftp | Alexander_v._lukyanov | 2.3.8 (including) | 2.3.8 (including) |
Lftp | Alexander_v._lukyanov | 2.3.9 (including) | 2.3.9 (including) |
Lftp | Alexander_v._lukyanov | 2.3.10 (including) | 2.3.10 (including) |
Lftp | Alexander_v._lukyanov | 2.3.11 (including) | 2.3.11 (including) |
Lftp | Alexander_v._lukyanov | 2.4.0 (including) | 2.4.0 (including) |
Lftp | Alexander_v._lukyanov | 2.4.1 (including) | 2.4.1 (including) |
Lftp | Alexander_v._lukyanov | 2.4.2 (including) | 2.4.2 (including) |
Lftp | Alexander_v._lukyanov | 2.4.3 (including) | 2.4.3 (including) |
Lftp | Alexander_v._lukyanov | 2.4.5 (including) | 2.4.5 (including) |
Lftp | Alexander_v._lukyanov | 2.4.6 (including) | 2.4.6 (including) |
Lftp | Alexander_v._lukyanov | 2.4.7 (including) | 2.4.7 (including) |
Lftp | Alexander_v._lukyanov | 2.4.8 (including) | 2.4.8 (including) |
Lftp | Alexander_v._lukyanov | 2.4.9 (including) | 2.4.9 (including) |
Lftp | Alexander_v._lukyanov | 2.4.10 (including) | 2.4.10 (including) |
Lftp | Alexander_v._lukyanov | 2.4.10a (including) | 2.4.10a (including) |
Lftp | Alexander_v._lukyanov | 2.5.0 (including) | 2.5.0 (including) |
Lftp | Alexander_v._lukyanov | 2.5.1 (including) | 2.5.1 (including) |
Lftp | Alexander_v._lukyanov | 2.5.2 (including) | 2.5.2 (including) |
Lftp | Alexander_v._lukyanov | 2.5.3 (including) | 2.5.3 (including) |
Lftp | Alexander_v._lukyanov | 2.5.4 (including) | 2.5.4 (including) |
Lftp | Alexander_v._lukyanov | 2.6.0 (including) | 2.6.0 (including) |
Lftp | Alexander_v._lukyanov | 2.6.1 (including) | 2.6.1 (including) |
Lftp | Alexander_v._lukyanov | 2.6.2 (including) | 2.6.2 (including) |
Lftp | Alexander_v._lukyanov | 2.6.3 (including) | 2.6.3 (including) |
Lftp | Alexander_v._lukyanov | 2.6.4 (including) | 2.6.4 (including) |
Lftp | Alexander_v._lukyanov | 2.6.5 (including) | 2.6.5 (including) |
Lftp | Alexander_v._lukyanov | 2.6.6 (including) | 2.6.6 (including) |
Lftp | Alexander_v._lukyanov | 2.6.7 (including) | 2.6.7 (including) |
Lftp | Alexander_v._lukyanov | 2.6.8 (including) | 2.6.8 (including) |
Lftp | Alexander_v._lukyanov | 2.6.9 (including) | 2.6.9 (including) |
Lftp | Alexander_v._lukyanov | 2.6.10 (including) | 2.6.10 (including) |
Lftp | Alexander_v._lukyanov | 2.6.11 (including) | 2.6.11 (including) |
Lftp | Alexander_v._lukyanov | 2.6.12 (including) | 2.6.12 (including) |
Lftp | Alexander_v._lukyanov | 3.0.0 (including) | 3.0.0 (including) |
Lftp | Alexander_v._lukyanov | 3.0.1 (including) | 3.0.1 (including) |
Lftp | Alexander_v._lukyanov | 3.0.2 (including) | 3.0.2 (including) |
Lftp | Alexander_v._lukyanov | 3.0.3 (including) | 3.0.3 (including) |
Lftp | Alexander_v._lukyanov | 3.0.4 (including) | 3.0.4 (including) |
Lftp | Alexander_v._lukyanov | 3.0.5 (including) | 3.0.5 (including) |
Lftp | Alexander_v._lukyanov | 3.0.6 (including) | 3.0.6 (including) |
Lftp | Alexander_v._lukyanov | 3.0.7 (including) | 3.0.7 (including) |
Lftp | Alexander_v._lukyanov | 3.0.8 (including) | 3.0.8 (including) |
Lftp | Alexander_v._lukyanov | 3.0.9 (including) | 3.0.9 (including) |
Lftp | Alexander_v._lukyanov | 3.0.10 (including) | 3.0.10 (including) |
Lftp | Alexander_v._lukyanov | 3.0.11 (including) | 3.0.11 (including) |
Lftp | Alexander_v._lukyanov | 3.0.12 (including) | 3.0.12 (including) |
Lftp | Alexander_v._lukyanov | 3.0.13 (including) | 3.0.13 (including) |
Lftp | Alexander_v._lukyanov | 3.1.0 (including) | 3.1.0 (including) |
Lftp | Alexander_v._lukyanov | 3.1.1 (including) | 3.1.1 (including) |
Lftp | Alexander_v._lukyanov | 3.1.2 (including) | 3.1.2 (including) |
Lftp | Alexander_v._lukyanov | 3.1.3 (including) | 3.1.3 (including) |
Lftp | Alexander_v._lukyanov | 3.2.0 (including) | 3.2.0 (including) |
Lftp | Alexander_v._lukyanov | 3.2.1 (including) | 3.2.1 (including) |
Lftp | Alexander_v._lukyanov | 3.3.0 (including) | 3.3.0 (including) |
Lftp | Alexander_v._lukyanov | 3.3.1 (including) | 3.3.1 (including) |
Lftp | Alexander_v._lukyanov | 3.3.2 (including) | 3.3.2 (including) |
Lftp | Alexander_v._lukyanov | 3.3.3 (including) | 3.3.3 (including) |
Lftp | Alexander_v._lukyanov | 3.3.4 (including) | 3.3.4 (including) |
Lftp | Alexander_v._lukyanov | 3.3.5 (including) | 3.3.5 (including) |
Lftp | Alexander_v._lukyanov | 3.4.0 (including) | 3.4.0 (including) |
Lftp | Alexander_v._lukyanov | 3.4.1 (including) | 3.4.1 (including) |
Lftp | Alexander_v._lukyanov | 3.4.2 (including) | 3.4.2 (including) |
Lftp | Alexander_v._lukyanov | 3.4.3 (including) | 3.4.3 (including) |
Lftp | Alexander_v._lukyanov | 3.4.4 (including) | 3.4.4 (including) |
Lftp | Alexander_v._lukyanov | 3.4.5 (including) | 3.4.5 (including) |
Lftp | Alexander_v._lukyanov | 3.4.6 (including) | 3.4.6 (including) |
Lftp | Alexander_v._lukyanov | 3.4.7 (including) | 3.4.7 (including) |
Lftp | Alexander_v._lukyanov | 3.5.0 (including) | 3.5.0 (including) |
Lftp | Alexander_v._lukyanov | 3.5.1 (including) | 3.5.1 (including) |
Lftp | Alexander_v._lukyanov | 3.5.2 (including) | 3.5.2 (including) |
Lftp | Alexander_v._lukyanov | 3.5.3 (including) | 3.5.3 (including) |
Lftp | Alexander_v._lukyanov | 3.5.4 (including) | 3.5.4 (including) |
Lftp | Alexander_v._lukyanov | 3.5.5 (including) | 3.5.5 (including) |
Lftp | Alexander_v._lukyanov | 3.5.6 (including) | 3.5.6 (including) |
Lftp | Alexander_v._lukyanov | 3.5.7 (including) | 3.5.7 (including) |
Lftp | Alexander_v._lukyanov | 3.5.8 (including) | 3.5.8 (including) |
Lftp | Alexander_v._lukyanov | 3.5.9 (including) | 3.5.9 (including) |
Lftp | Alexander_v._lukyanov | 3.5.10 (including) | 3.5.10 (including) |
Lftp | Alexander_v._lukyanov | 3.5.11 (including) | 3.5.11 (including) |
Lftp | Alexander_v._lukyanov | 3.5.12 (including) | 3.5.12 (including) |
Lftp | Alexander_v._lukyanov | 3.5.13 (including) | 3.5.13 (including) |
Lftp | Alexander_v._lukyanov | 3.5.14 (including) | 3.5.14 (including) |
Lftp | Alexander_v._lukyanov | 3.5.15 (including) | 3.5.15 (including) |
Lftp | Alexander_v._lukyanov | 3.6.0 (including) | 3.6.0 (including) |
Lftp | Alexander_v._lukyanov | 3.6.1 (including) | 3.6.1 (including) |
Lftp | Alexander_v._lukyanov | 3.6.2 (including) | 3.6.2 (including) |
Lftp | Alexander_v._lukyanov | 3.6.3 (including) | 3.6.3 (including) |
Lftp | Alexander_v._lukyanov | 3.7.0 (including) | 3.7.0 (including) |
Lftp | Alexander_v._lukyanov | 3.7.1 (including) | 3.7.1 (including) |
Lftp | Alexander_v._lukyanov | 3.7.2 (including) | 3.7.2 (including) |
Lftp | Alexander_v._lukyanov | 3.7.3 (including) | 3.7.3 (including) |
Lftp | Alexander_v._lukyanov | 3.7.4 (including) | 3.7.4 (including) |
Lftp | Alexander_v._lukyanov | 3.7.5 (including) | 3.7.5 (including) |
Lftp | Alexander_v._lukyanov | 3.7.6 (including) | 3.7.6 (including) |
Lftp | Alexander_v._lukyanov | 3.7.7 (including) | 3.7.7 (including) |
Lftp | Alexander_v._lukyanov | 3.7.8 (including) | 3.7.8 (including) |
Lftp | Alexander_v._lukyanov | 3.7.9 (including) | 3.7.9 (including) |
Lftp | Alexander_v._lukyanov | 3.7.10 (including) | 3.7.10 (including) |
Lftp | Alexander_v._lukyanov | 3.7.11 (including) | 3.7.11 (including) |
Lftp | Alexander_v._lukyanov | 3.7.12 (including) | 3.7.12 (including) |
Lftp | Alexander_v._lukyanov | 3.7.13 (including) | 3.7.13 (including) |
Lftp | Alexander_v._lukyanov | 3.7.14 (including) | 3.7.14 (including) |
Lftp | Alexander_v._lukyanov | 4.0.0 (including) | 4.0.0 (including) |
Lftp | Alexander_v._lukyanov | 4.0.1 (including) | 4.0.1 (including) |
Lftp | Alexander_v._lukyanov | 4.0.2 (including) | 4.0.2 (including) |
Lftp | Alexander_v._lukyanov | 4.0.3 (including) | 4.0.3 (including) |
Lftp | Alexander_v._lukyanov | 4.0.4 (including) | 4.0.4 (including) |
Red Hat Enterprise Linux 5 | RedHat | lftp-0:3.7.11-4.el5_5.3 | * |
Lftp | Ubuntu | hardy | * |
Lftp | Ubuntu | jaunty | * |
Lftp | Ubuntu | karmic | * |
Lftp | Ubuntu | lucid | * |
Lftp | Ubuntu | upstream | * |
Input validation is a frequently-used technique for checking potentially dangerous inputs in order to ensure that the inputs are safe for processing within the code, or when communicating with other components. Input can consist of:
Data can be simple or structured. Structured data can be composed of many nested layers, composed of combinations of metadata and raw data, with other simple or structured data. Many properties of raw data or metadata may need to be validated upon entry into the code, such as:
Implied or derived properties of data must often be calculated or inferred by the code itself. Errors in deriving properties may be considered a contributing factor to improper input validation.