In uftpd before 2.11, there is a buffer overflow vulnerability in handle_PORT in ftpcmd.c that is caused by a buffer that is 16 bytes large being filled via sprintf() with user input based on the format specifier string %d.%d.%d.%d. The 16 byte size is correct for valid IPv4 addresses (len('255.255.255.255') == 16), but the format specifier %d allows more than 3 digits. This has been fixed in version 2.11
[
{
"id": "CVE-2020-5204-a2bfc361",
"source": "https://github.com/troglobit/uftpd/commit/0fb2c031ce0ace07cc19cd2cb2143c4b5a63c9dd",
"deprecated": false,
"signature_version": "v1",
"target": {
"file": "src/ftpcmd.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"305627866150381828683865241657895014322",
"12937131316666879073544403319990601086",
"173866264394877993175631420443797992491",
"250823014807152732547613692800473923267"
]
},
"signature_type": "Line"
},
{
"id": "CVE-2020-5204-d12c122b",
"source": "https://github.com/troglobit/uftpd/commit/0fb2c031ce0ace07cc19cd2cb2143c4b5a63c9dd",
"deprecated": false,
"signature_version": "v1",
"target": {
"function": "handle_PORT",
"file": "src/ftpcmd.c"
},
"digest": {
"length": 898.0,
"function_hash": "73284893654735530245356761491877463198"
},
"signature_type": "Function"
}
]