Pull to refresh

CVE-2019-6111 и другие уязвимости в scp

Reading time1 min
Views11K

TL;DR;


Совсем недавно ( примерно с 1983 года ) оказалось, что OpenSSH, как наследник rsh, для команды scp ( ex. rcp ) позволяет серверу выбрать, какой файл и с какими параметрами вам передать. А уязвимости вывода позволяют скрыть, какой именно файл вам передали.
То есть просите вы file.txt, а получаете — exploit.bin
И фиксов пока нет, вот такие дела. Используйте sftp или rsync.

Подробности



CVE-2019-6109


Клиент scp не проверяет наличие лишних символов в имени файла, что позволяет скрывать реальное имя передаваемого файла ( например ASCII-кодами )

CVE-2019-6110


Клиент scp позволяет писать в stderr и переписывать данные в терминале, что позволяет скрывать реальное имя передаваемого файла ( например ASCII-кодами ).

CVE-2019-6111


Клиент scp не проверяет, какой именно файл ему отправляют и не сравнивает с тем, что он запрашивал. Злонамеренный сервер может залить на клиент все, что ему хочется, причем с любым mode.

Пример работы


$ rm -rf *
$ ls -la
итого 36
drwxr-xr-x  2 user user  4096 янв 25 15:11 .
drwx------ 99 user user 28672 янв 25 14:23 ..
$ scp test@localhost:x.txt .
x.txt                                                                                                                                    100%   32    0.3KB/s   00:00    
$ ./exploit.sh # откуда он взялся?!
You're hacked. Sorry for that
Please upgrade your OpenSSH client
$

В данном примере ( немного модифицированный эксплоит со ссылки выше ) вместе с x.txt подгружается файл exploit.sh с правами 755, а при помощи мусора в stderr затирается сам факт передачи.

Уязвимые клиенты


Если кратко, то все. OpenSSH включая 7.9p1, putty, winscp < 5.13.
Фиксы есть только у WinSCP ( 5.14+ )
Используйте sftp/rsync при работе с недоверенными серверами.
Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
Total votes 25: ↑25 and ↓0+25
Comments9

Articles