IgAlex
25.06.2009, 16:20
Добрый день.
Во время просмотра NVD, нашел уязвимость на SquirrelMail.
ссылка на уязвимость (http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2009-1381)
Решил провести небольшое исследование и посмотреть причину присвоения ей рейтинга 6.8
В описании сказано что атакующий может выполнять произвольные команды через оболочку metacharacters в строке имени пользователя.
Поставил себе SquirrelMail 4.10 на виртуалку. Полез посмотреть функцию map_yp_alias в скрипте functions/imap_general.php
/**
* This is an example that gets IMAP servers from yellowpages (NIS).
* you can simple put map:map_yp_alias in your $imap_server_address
* in config.php use your own function instead map_yp_alias to map your
* LDAP whatever way to find the users IMAP server.
*/
function map_yp_alias($username) {
$yp = `ypmatch $username aliases`;
return chop(substr($yp, strlen($username)+1));
}
В чём ошибка понятно. Но как через неё можно выполнять команды?
Попробовал найти место где вызывается функция, не нашел. Так же не бывает что бы функция была описана, но не использовалась.
Просьба объяснить подробнее, как может быть реализована атака через эту ошибку. Потому как не понятно почему Exploitability Subscore выставлен 8.6
Во время просмотра NVD, нашел уязвимость на SquirrelMail.
ссылка на уязвимость (http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2009-1381)
Решил провести небольшое исследование и посмотреть причину присвоения ей рейтинга 6.8
В описании сказано что атакующий может выполнять произвольные команды через оболочку metacharacters в строке имени пользователя.
Поставил себе SquirrelMail 4.10 на виртуалку. Полез посмотреть функцию map_yp_alias в скрипте functions/imap_general.php
/**
* This is an example that gets IMAP servers from yellowpages (NIS).
* you can simple put map:map_yp_alias in your $imap_server_address
* in config.php use your own function instead map_yp_alias to map your
* LDAP whatever way to find the users IMAP server.
*/
function map_yp_alias($username) {
$yp = `ypmatch $username aliases`;
return chop(substr($yp, strlen($username)+1));
}
В чём ошибка понятно. Но как через неё можно выполнять команды?
Попробовал найти место где вызывается функция, не нашел. Так же не бывает что бы функция была описана, но не использовалась.
Просьба объяснить подробнее, как может быть реализована атака через эту ошибку. Потому как не понятно почему Exploitability Subscore выставлен 8.6