URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 37142
[ Назад ]

Исходное сообщение
"OpenNews: Новая уязвимость в PHP раскрывает двери спамерам"

Отправлено opennews , 08-Апр-07 14:48 
В PHP 5.2.1 и 5.2.0 обнаружена возможность (http://www.securityfocus.com/bid/23359) вставки символа новой строки через email адрес переданный в функцию отправки сообщения. Ошибка в regex выражении для проверки валидности email адреса в фильтре ext/filter (функция filter_var с параметром FILTER_VALIDATE_EMAIL), позволяет добавить дополнительные заголовки в тело письма, что может быть использовано для массовой рассылки спама через различные web-формы.


Проблема связана с отсутствием D модификатора в сочетании с символом проверки конца строки $ (если поставить \n - то выражение после \n не попадет в область видимости регулярного выражения) в PCRE выражениях используемых в ext/filter, также отмечается,  что ошибка типична для большого числа скриптов в которых используется функция preg_match().

URL: http://www.securityfocus.com/bid/23359
Новость: http://www.opennet.me/opennews/art.shtml?num=10401


Содержание

Сообщения в этом обсуждении
"Новая уязвимость в PHP раскрывает двери спамерам"
Отправлено Keeper , 08-Апр-07 19:04 
Уже даже не смешно.

"Как они уже заеб..ли уже со своими дырами, а."
Отправлено Dyr , 08-Апр-07 19:24 
Как они уже заеб..ли уже со своими дырами, а.

"Новая уязвимость в PHP раскрывает двери спамерам"
Отправлено Аноним , 08-Апр-07 20:21 
Хм.. для этой уязвимости необходимо чтобы выполнились условия

1. PHP 5.2.x
2. Использование фильтров для проверки email.

Зная это очень легко устранить эту уязвимость.

На сегодняшний день. Очень немногие используют эту версию.


"Новая уязвимость в PHP раскрывает двери спамерам"
Отправлено Spec , 09-Апр-07 06:36 
+1
Хотя, безусловно, новость - не из приятных.

"Новая уязвимость в PHP раскрывает двери спамерам"
Отправлено GraywinD , 08-Апр-07 20:22 
Супер. :-)

"Новая уязвимость в PHP раскрывает двери спамерам"
Отправлено aTz , 08-Апр-07 23:30 
Честно говоря я не очень понял в чём заключается уязвимость такая прям страшная. Ну да ... согласен:
<?
$var = "test@example.com\n";
var_dump(filter_var($var, FILTER_VALIDATE_EMAIL));
?>
Действительно не возвращает false - а ДОЛЖНО было бы. Но зато:
<?
$var = "test@example.com\nCc:test@example.com";
var_dump(filter_var($var, FILTER_VALIDATE_EMAIL));
?>
Уже возвращает false, да и вообще если после "\n" хоть что-то написать - возвращает false.

Так в чём заключается уязвимость, которая открывает такие широкие ворота спамерам? Объясните кто-нибудь? :)


"Новая уязвимость в PHP раскрывает двери спамерам"
Отправлено SubGun , 09-Апр-07 10:56 
Я так понял, что после \n можно скрипт хитрый напихать и он выполнится.

"Новая уязвимость в PHP раскрывает двери спамерам"
Отправлено bolk , 09-Апр-07 11:53 
О фильтрах ещё даже мало кто знает пока, не говоря уже об использовании.

"Новая уязвимость в PHP раскрывает двери спамерам"
Отправлено Iscander , 09-Апр-07 17:24 
А что мешает использовать собственный валидатор? Религия не позволяет? Как правило у любого нормального программиста через пару месяцев есть готовые валидаторы практичекси на всё к тому же отлаженые. Уязвимость для script-kidy программистов, своё писать надо, а не доверять существующему. В особо критичных случаях можно и нужно перепроверять получателя по SMTP.

"Новая уязвимость в PHP раскрывает двери спамерам"
Отправлено Anatoliy , 11-Апр-07 14:14 
А еще через пару месяцев, когда программист становится НОРМАЛЬНЫМ он прекращает использовать PHP (ака Basic for WEB) совсем.

"Новая уязвимость в PHP раскрывает двери спамерам"
Отправлено lopux , 09-Апр-07 18:08 
> А что мешает использовать собственный валидатор? Религия не позволяет?

Esli kazhdiy budet pisat' sobstvenniy validator mi daleko ne uidem v etom mire :)

> В особо критичных случаях можно и нужно перепроверять получателя по SMTP

A vot eto voobche durnoy ton. "перепроверять" nikogda nichego ne nuzhno. Nuzhno "proveryat'" odin raz, i navsegda :) Ne doveryaete biblioteke? Voz'mite druguyu.


"Новая уязвимость в PHP раскрывает двери спамерам"
Отправлено Аноним , 09-Апр-07 23:27 
Больше всего меня улыбает читая новости на опеннете, это очередные вести о дырках.  Прочитав в рссах заголовок новости, тут же кинулся посмотреть, что скажут пхписты. Первый коммент выразил я думаю всеобщее настроение))

"Новая уязвимость в PHP раскрывает двери спамерам"
Отправлено bugzilla , 10-Апр-07 10:53 
Коллеги, просвятите плз - это на mod_php как-то распостраняется?

"Новая уязвимость в PHP раскрывает двери спамерам"
Отправлено Аноним , 10-Апр-07 11:24 
Одним смешно, другим не смешно. :) :(
http://www.google.com/codesearch?q=FILTER_VALIDATE_EMAIL&hl=...
Проблема вообще мизерная. Проектов которые юзают jelix, мало. Сайтов написанных на Solar тоже. Домашние поделки по определению не используют эту фичу.

"Новая уязвимость в PHP раскрывает двери спамерам"
Отправлено Антон , 10-Апр-07 12:32 
А ты preg_match ищи: Results 1 - 10 of about 49,300.

FILTER_VALIDATE_EMAIL лишь одно проявление глобальной проблемы, которая больше с криворукостью связана, чем с PHP.

На perl тоже полно штучек, очень часто пишут /$user_var/ вместо /\Q$user_var\E/. Если в $user_var подставить "?{ system(qw(ls -al /)); }" будет "Ой".


"Новая уязвимость в PHP раскрывает двери спамерам"
Отправлено balex , 12-Апр-07 11:08 
>FILTER_VALIDATE_EMAIL лишь одно проявление глобальной проблемы, которая больше с криворукостью связана, чем с PHP.

Вполне согласен, достаточно просто от этого защититься:
filter_var(trim($var), FILTER_VALIDATE_EMAIL);

И все проблемы как рукой снимет.


"Новая уязвимость в PHP раскрывает двери спамерам"
Отправлено Apocalepse , 10-Апр-07 23:58 
filter_var это такое нововведение в PHP5?