Обновление безопасности для iCMS 1.10.3

21 ноября 2013 - Fuze

Благодаря High-Tech Bridge Security Research Lab и содействию The matrix была закрыта интерсная и сложно реализуемая уязвимость (blind SQL injection). Повода для паники нет, для использования этой уязвимости нужны хорошие знания sql запросов, и множество других зависимостей. Подробности мы, разумеется, раскрывать не будем.

Кроме этого мы включили в патч исправления известных нам ошибок:

  • не сохранялись параметры сортировки для рубрики каталога в админке;
  • для авторов, модераторов и администарторов клубов не показывались ссылки для редактирования постов блогов;
  • улучшена совместимость с php 5.4 и выше;
  • при загрузке фотографий в общих альбомах названия формировались всегда в нижнем регистре без пробелов;
  • при просмотре статьи некорректно обрабатывались colorbox изображения, обернутые в ссылку;
  • для шаблона по умолчанию исправлен css общего меню.

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

Информация для разработчиков: в метод request ядра добавлен функционал, позволяющий получать переменную из запроса только если она присутствует в сформированном вами списке, в противном случае присваивать значение по умолчанию, например,

Код PHP:
	
  1. $orderto = cmsCore::request('orderto', array('asc','desc'), 'desc');

Таким образом значение переменной может только одним из заданного вами списка.

Как обновиться

Для 1.10.3: скачать патч, распаковать его содержимое в корень вашей web директории с заменой файлов.

Для более младших версий: внести самостоятельно исправления, обозначенные в этом коммите.

Основной дистрибутив InstantCMS 1.10.3 в разделе скачать обновлен.

Best regards, InstantSoft Team.

sotastroy # 21 ноября 2013 в 22:22 +5
Безопасность превыше всего, спасибо, обновляемся.
Cтудия Sitestroi # 21 ноября 2013 в 22:54 +1
Спасибо Вам! Fuze и команде + v
Су-27 # 21 ноября 2013 в 23:06 +1
Спасибо за проделанную работу - обновился, всё ок.
akhasanov # 21 ноября 2013 в 23:36 0
Уязвимость касается только 1.10.3 или всей линейки 1.10?
Fuze # 21 ноября 2013 в 23:39 +3

всех версий InstantCMS, только в других версиях она может наблюдаться и/или в других местах.

letsgo # 22 ноября 2013 в 00:06 +1
Вчера на одном сайте сделал миграцию с 101 до 103 версии. Итог - все окей, а вот в УК исчезло все в описании записей, так и стоят пустые. Это с чем связано? Не пофиксено ли? Кто то еще писал о такой же проблеме помню.
lezginka.ru # 22 ноября 2013 в 00:12 0
на нескольких сайтах установил "старую" версию 1,10,3 проблем не было.
сейчас решил установить "новую", после установки модуль "нов.статьи" не вывод статьи из каталога, возможно это только у меня такое, но если что я предупредил :)
kirkr # 22 ноября 2013 в 13:49 0
Это нормально после обновления кэш надо почистить, если не выводить то просто пересохранить модуль и все пойдет. Это никак не связано с фиксом. Просто я заодно переехал тож на 1.10.3 пришлось править переменные которые переименовались в других компонентах. Единственное не понять почему модуль DT для ввода логина пароля не стал работать(не всплывает окно). Что-то в jquery поменялось?
Fuze # 22 ноября 2013 в 00:20 +1

перезалил архив, кто уже скачал перекачайте. не вложил один файл.

Это с чем связано?
я не знаю.
Не пофиксено ли?
не смог воспроизвести, сколько не пытался.
сейчас решил установить "новую", после установки модуль "нов.статьи" не вывод статьи из каталога
не очень понял, но в патче модули вообще не правились и не участвовали.
Dost # 22 ноября 2013 в 01:18 0
Спасибо!
Saw # 22 ноября 2013 в 12:38 0
Спасибо за работу. Будем обновляться.
m0skit # 22 ноября 2013 в 12:46 0
Этот патч как-нибудь влияет на работу instantmap? Если установлю компонент будет работать?
Евгений Фоменко # 22 ноября 2013 в 15:09 0
Старый вариант com_catalog_view.tpl и item можно оставить? Или есть серьезные изминения? У меня эти файлы переписаны (((
Fuze # 22 ноября 2013 в 15:21 0
да, конечно можно. там правки вообще несущественные, они в патче просто, чтобы с дистрибутивом не было различий. а вообще в таких случаях берется файл ДО и сравнивается с аналогичным ПОСЛЕ - и все сразу станет очевидно.
Евгений Фоменко # 22 ноября 2013 в 17:31 0
Да, спасибо большое. Я чуть правил в другом месте, потому решил просто спросить у тех, кто просто знает ответ в целях экономии времени. Вышло и правда быстро )
Роман Синицын # 22 ноября 2013 в 16:59 0
Благодарю!

Обновляемся.
Raiden # 22 ноября 2013 в 17:09 0
Помогите нубу. Не знаю связано ли с патчем, или это отдельная ошибка в бд, но при попытке править меню в админке выдаёт вот такой результат:

Спойлер
Т.к. я не силён в правке баз данных, я не понимаю как изменить этот самый "id". Подскажите, как это можно проделать?
ЗЫ - в остальном всё работает.
Raiden # 22 ноября 2013 в 23:11 0
Проблема исчезла сама собой, никакого решения не применял, просто перешёл в другую wifi-зону, меню редактировать можно. scratch
kirkr # 22 ноября 2013 в 19:49 0
подскажите какие различия по jquery между версиями 1.10.2 и 1.10.3 с последними обновлениями?
• Mike • # 22 ноября 2013 в 20:19 0
«самые ужасные» с версии jQuery 1.5.2 на версию 1.10.2 )

если коротко:

запрещены (удалены) live(); die(); — как замена delegate() для несуществующих на данный момент элементов
или on(); off(); one(); для существующих.
запрещен (удален) .browser()
.toggle() влияет теперь только на свойства hide и show и не поддерживает «дерево» функций;

.attr() теперь только для чтения атрибута, для удаления используем .removeAttr()
или пользуемся .prop() для «нативных» свойств (не атрибутов тегов также как в классическом js)
типа disabled, selected, checked; — использование .prop('disabled', true || false );

более подробно: jQuery Core 1.9 Upgrade Guide
hummer7887 # 22 ноября 2013 в 22:31 0
Спасибо, Долго ждал это обновление, пользователи очень жаловались на невозможность редактирования клубов! Спасибо!
Nemoi # 22 ноября 2013 в 23:25 0
спасибо!
Юрий (Pizza Celentano) # 23 ноября 2013 в 01:42 0
" * при загрузке фотографий в общих альбомах названия формировались всегда в нижнем регистре без пробелов;"
однако цифры (номера фотографий), которые добавляются к названию фотографии в фотоальбоме так и остались без пробелов от основного названия, например если фото назвать "Вася", то будет так "Вася01" и т.д. Сейчас на сайте загружал фотографии с таким именем "День рождения - 9 лет", а получилось так "День рождения - 9 лет98" ))))
Крот # 23 ноября 2013 в 02:58 0
Доброй ночи! В поисках чего-нибудь интересного набрел на удивительную возможность проникновения и получения полного доступа на любой сайт с InstantCMS
Все на самом деле очень просто - похоже, как-будто бы забыли сделать...
отписал Fuze`у

я бы настоятельно рекомендовал сделать токены безопасности ограниченными по времени и запретить открытие сайта на InstantCMS во вложенном фрейме(iframe)
Fuze # 23 ноября 2013 в 11:56 +1
Крот, не пугайте людей. Все не так просто, как вы описали мне в лс.
запретить открытие сайта на InstantCMS во вложенном фрейме(iframe)
достаточно там где необходимо запретить $_GET
Fuze # 23 ноября 2013 в 14:38 +2
Сергей # 1 декабря 2013 в 12:52 0
Крот:
я бы настоятельно рекомендовал сделать токены безопасности ограниченными по времени и запретить открытие сайта на InstantCMS во вложенном фрейме(iframe)
Код PHP:
  1. <IfModule mod_headers.c>
  2. # Разрешаем фреймы только на Вашем домене
  3. Header always append X-Frame-Options SAMEORIGIN
  4. </IfModule>
Это тоже поможет...
Евгений # 23 ноября 2013 в 14:38 -1
В дефолтном шаблоне, в styles.css исчез блок HORIZONTAL MENU - вложенное меню отрывается от основного.
БОРОДИСТ # 24 ноября 2013 в 01:55 0
Отлично! Спасибо!
P.S. Хотя я думал, что вот-вот уже 2.0 выйдет :(
vsemkrot # 24 ноября 2013 в 18:24 0
А вот у меня InstantCMS 1.10.2 - как мне правильно устранить уязвимости о которых сказано в этом посте?При переходе сюда"Для более младших версий: внести самостоятельно исправления, обозначенные в этом коммите." у меня нет большинства строк которые указано там поменять или удалит!как мне правильно поступить?
Владимир # 1 декабря 2013 в 16:19 0
перейти на 1.10.3
vsemkrot # 2 декабря 2013 в 15:42 0
перейти к сожалению не могу - много модулей именно для 1,10,2 и шаблон,так что хотелось бы устранить эту уязвимость именно для моей версии,подскажите кто в этом разбирается,буду благодарен!
Владимир # 1 декабря 2013 в 16:22 +1
Спасибо Вам! Fuze и команде
traffs # 2 декабря 2013 в 09:44 0
После обновления перестал работать слайдер в карточке товара Тупо открывает одно большое изображение. Перестала работать кнопка Вернуться в магазин на "инсташопе", жмёшь на неё а всё равно в корзине. Всё это произошло после обновления ((( Люди добрые помогите разобраться cry
traffs # 2 декабря 2013 в 10:41 0
Корзина сама собой заработала, а слайдер в карточке так и не заработал
traffs # 4 января 2014 в 21:29 0
Решил проблему в этой теме http://www.instantcms.ru/forum/thread16844.html
nedoriko # 5 декабря 2013 в 15:55 0
после обновления начал выскакивать этот баннер
Спойлер
Евгений Фоменко # 24 декабря 2013 в 02:15 0
У меня база banner hits растет безобразно быстро, cron я не использую, ее можно просто ручками очистить и все? Болеть нигде не будет после такой операции?
Fuze # 17 марта 2014 в 21:50 +2
Друзья!
Т.к. в сети гуляет якобы "очень крутая xss уязвимость", сообщаю, что ничего сверх страшного в ней нет.
Исправление можно забрать тут.
Основной дистрибутив исправлен.

Сообщил мне об уязвимости пользователь под ником "gaara", за что ему спасибо.
Max # 18 марта 2014 в 08:46 0
Спасибо.
Подскажите пожалуйста, в /core/cms.php (строка 2211) в теге a не включен параметр target

Код PHP:
  1. self::$jevix->cfgAllowTagParams('a', array('class' => '#text', 'title', 'href', 'style', 'rel' => '#text', 'name' => '#text'));
это сделано в целях безопасности?
Fuze # 18 марта 2014 в 10:35 +2
это сделано в целях безопасности?
нет, просто пропустил этот момент, можете добавить самостоятельно:
Код PHP:
  1. self::$jevix->cfgAllowTagParams('a', array('class' => '#text', 'title', 'href', 'style', 'rel' => '#text', 'name' => '#text', 'target' => '#text'));
Евгений Фоменко # 16 апреля 2014 в 16:30 0
При запросе страницы фида http://redcity.ru/rss/catalog/0/feed.rss
Одна строка смущает:

Код PHP:
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  3. <channel>
  4. <title>Новое в каталоге :: Йошкар-Ола: каталог предприятий, товаров и услуг!</title>
  5. <link>http://redcity.ru/catalog</link>
  6. <description><![CDATA[Новое в каталоге]]></description>
  7. <image>
  8. <title>Новое в каталоге :: Йошкар-Ола: каталог предприятий, товаров и услуг!</title>
  9. <url>http://icms/images/rss.png</url>
  10. <link>http://redcity.ru/catalog</link>
  11. </image>
  12. <item>
А именно адрес icms/images/rss.png, я полагаю это ошибка?
Кстати, может кто подскажет, есть у нас rss лента, которая отдает последние записи или это она и есть? Как увеличить количество записей: