Фикс безопасности в LiveStreet 0.5.1

В LiveStreet 0.5.1 (и в 0.4 ) обнаружены уязвимости.

Для версии LS 1.0 патч на гитхабе — github.com/livestreet/livestreet/commit/a5b7cd5979a9a20fe100a5cd1a748603b1159680

Для версии LS 0.5.1 в файле /classes/modules/user/User.class.php заменить метод (строки с 447 по 458):
Было:
protected function AutoLogin() {
	if ($this->oUserCurrent) {
		return;
	}
	if (isset($_COOKIE['key']) and $sKey=$_COOKIE['key']) {
		if ($oUser=$this->GetUserBySessionKey($sKey)) {
			$this->Authorization($oUser);
		} else {
			$this->Logout();
		}
	}
}
Стало:
protected function AutoLogin() {
	if ($this->oUserCurrent) {
		return;
	}
	if (isset($_COOKIE['key']) and $sKey=(string)$_COOKIE['key']) {
		if ($oUser=$this->GetUserBySessionKey($sKey)) {
			$this->Authorization($oUser);
		} else {
			$this->Logout();
		}
	}
}
Если используете MooTools шаблоны, то необходимо в конец файла engine/lib/external/MooTools_1.2/plugs/vlaCal-v2.1/inc/vars.php дописать код:
Было:
<?php
/* If you want to comply with E_STRICT php standards set a default timezone
* You can find default timezones here: http://us2.php.net/manual/en/timezones.php
*/
//date_default_timezone_set('Europe/Amsterdam');

$wdays_labels	= array('Пн','Вт','Ср','Чт','Пт','Сб','Вс');
$month_labels	= array("Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь");
$month_s_labels	= array("Янв", "Февр", "Март", "Апр", "Май", "Июнь", "Июль", "Авг", "Сент", "Окт", "Нояб", "Дек");
?>
Стало:
<?php
/* If you want to comply with E_STRICT php standards set a default timezone
* You can find default timezones here: http://us2.php.net/manual/en/timezones.php
*/
//date_default_timezone_set('Europe/Amsterdam');

$wdays_labels	= array('Пн','Вт','Ср','Чт','Пт','Сб','Вс');
$month_labels	= array("Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь");
$month_s_labels	= array("Янв", "Февр", "Март", "Апр", "Май", "Июнь", "Июль", "Авг", "Сент", "Окт", "Нояб", "Дек");

if (isset($_POST['ts'])) {
	$_POST['ts']=strip_tags((string)$_POST['ts']);
}
?>
Если используете jQuery шаблон, то достаточно просто удалить каталог engine/lib/external/MooTools_1.2/plugs/vlaCal-v2.1.

Для версии LS 0.4 проделать все тоже самое, что и для LS 0.5.1, только строки будут с 434 по 445.

Настоятельно рекомендуем выполнить обновление.

19 комментариев

avatar
А не проще было выложить архив с новыми версиями этих файлов?(только два этих файлы) Когда одна инсталляция ls еще можно руками поправить, а когда много уже не удобно, это могут конечно и пользователи сделать, но от конторы было бы правильней и надежней.
avatar
спасибо. исправили.
avatar
это такая злая шутка?
не понимаю сложно в любом IDE (благо многие современные это поддерживают) поиск в директории по определенному слову ($_COOKIE, $_GET, $_POST, $_REQUEST, $_FILES и тд) сделать и найти все вхождения не экранированных и тд. облегчите работу как себе, так и пользователям вашей системы.
avatar
$sKey=$_COOKIE['key']
avatar
И где тут уязвимость? Какой тип, вместо строкового, необходимо передать, чтобы сработала эта уязвимость?
avatar
все вам расскажи :)
avatar
Ну я сделал трейс до обращения к БД через PDO, там экранируется все. Максимум нотис, но они, как правило, на продакшене отключены.
avatar
Описание лучше тут прочесть livestreet.ru/blog/11096.html и тогда меньше вопросов будет
avatar
avatar
хм… а для 0.3.1?

PS даже секлаб про уязвимость написал — www.securitylab.ru/vulnerability/426181.php — это и не популярность? :)
avatar
Наличие исправления: Нет
Секлаб до сих пор в кусре, что есть багфиксы :)
avatar
*не в курсе
avatar
хм… а для 0.3.1?
с методом AutoLogin тоже самое, а либы для mootools в 0.3.1 еще не было
avatar
так и понял :)
avatar
Не только они. Даже вот тут есть cxsecurity.com/issue/WLB-2012060260
avatar
Заслуга в этом исключительно HiMiC , которым написал о баге везде, где только можно
avatar
мне вот интересно. фиксы безопасности фиксятся в том дистре, что скачивают новые пользователи с сайта или нет?
avatar
да
с версии 1.0 они будут инкрементировать свою версию, чтобы пользователи не запутывались
avatar
То есть можно закачать Версию 0.5.1 и переставить, там все уже пофиксили?
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.