| 제목 | uftpd 2.6-2.10 Buffer Overflow |
|---|
| 설명 | # Buffer Overflow
## Description
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('x.x.x.x') == 16`), but the format specifier `%d` allows more than 3 digits.

## Reproduction Steps
To reproduce this vulnerability, connect via `netcat <ip> <port>` and write to the FTP server socket the following and observe the child process spawned for the connection SIGABRT:
```
PORT 13371337,12341234,12345678,10102929,1,2
```

## Mitigation
Use `snprintf` and use the size of the buffer as the size input. Currently, it uses `inet_aton` to validate the IPv4 address, so if the user inputs an invalid address, it will be caught at that line anyway. |
|---|
| 원천 | ⚠️ https://aaronesau.com/blog/posts/6 |
|---|
| 사용자 | arinerron (UID 4337) |
|---|
| 제출 | 2019. 08. 31. PM 08:37 (7 연령 ago) |
|---|
| 모더레이션 | 2019. 09. 03. AM 07:11 (2 days later) |
|---|
| 상태 | 수락 |
|---|
| VulDB 항목 | 141192 [uftpd 2.6-2.10 ftpcmd.c handle_PORT 메모리 손상] |
|---|
| 포인트들 | 20 |
|---|