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

15.28K

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

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

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

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

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

Код PHP:
    1. <span style="color: #000088;">$orderto</span> <span style="color: #339933;">=</span> cmsCore<span style="color: #339933;">::</span><span style="color: #004000;">request</span><span style="color: #009900;">(</span><span style="color: #0000ff;">&#39;orderto&#39;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">(</span><span style="color: #0000ff;">&#39;asc&#39;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&#39;desc&#39;</span><span style="color: #009900;">)</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&#39;desc&#39;</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>

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

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

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

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

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

Best regards, InstantSoft Team.

Поддержите проект

Вы можете стать официальным спонсором или оказать другую поддержку. Вы также здорово поможете, если поставите звезду на GitHub.

+5
sotastroy sotastroy 8 лет назад #
Безопасность превыше всего, спасибо, обновляемся.
-1
Алексей Т Алексей Т 8 лет назад #
Спасибо Вам! Fuze и команде + v
+1
Су-27 Су-27 8 лет назад #
Спасибо за проделанную работу - обновился, всё ок.
0
akhasanov akhasanov 8 лет назад #
Уязвимость касается только 1.10.3 или всей линейки 1.10?
+4
Fuze Fuze 8 лет назад #

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

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

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

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

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

Спойлер
Т.к. я не силён в правке баз данных, я не понимаю как изменить этот самый "id". Подскажите, как это можно проделать?
ЗЫ - в остальном всё работает.
0
Raiden Raiden 8 лет назад #
Проблема исчезла сама собой, никакого решения не применял, просто перешёл в другую wifi-зону, меню редактировать можно. scratch
0
kirkr kirkr 8 лет назад #
подскажите какие различия по jquery между версиями 1.10.2 и 1.10.3 с последними обновлениями?
0
• Mike • • Mike • 8 лет назад #
«самые ужасные» с версии 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
+1
hummer7887 hummer7887 8 лет назад #
Спасибо, Долго ждал это обновление, пользователи очень жаловались на невозможность редактирования клубов! Спасибо!
0
Nemoi Nemoi 8 лет назад #
спасибо!
0
Юрий (Pizza Celentano) Юрий (Pizza Celentano) 8 лет назад #
" * при загрузке фотографий в общих альбомах названия формировались всегда в нижнем регистре без пробелов;"
однако цифры (номера фотографий), которые добавляются к названию фотографии в фотоальбоме так и остались без пробелов от основного названия, например если фото назвать "Вася", то будет так "Вася01" и т.д. Сейчас на сайте загружал фотографии с таким именем "День рождения - 9 лет", а получилось так "День рождения - 9 лет98" ))))
0
Крот Крот 8 лет назад #
Доброй ночи! В поисках чего-нибудь интересного набрел на удивительную возможность проникновения и получения полного доступа на любой сайт с InstantCMS
Все на самом деле очень просто - похоже, как-будто бы забыли сделать...
отписал Fuze`у

я бы настоятельно рекомендовал сделать токены безопасности ограниченными по времени и запретить открытие сайта на InstantCMS во вложенном фрейме(iframe)
+1
Fuze Fuze 8 лет назад #
Крот, не пугайте людей. Все не так просто, как вы описали мне в лс.
запретить открытие сайта на InstantCMS во вложенном фрейме(iframe)
достаточно там где необходимо запретить $_GET
0
Сергей Сергей 8 лет назад #
Крот:
я бы настоятельно рекомендовал сделать токены безопасности ограниченными по времени и запретить открытие сайта на InstantCMS во вложенном фрейме(iframe)
Код PHP:
  1. <IfModule mod_headers.c>
  2. # Разрешаем фреймы только на Вашем домене
  3. Header always append X-Frame-Options SAMEORIGIN
  4. </IfModule>
Это тоже поможет...
-1
Евгений Евгений 8 лет назад #
В дефолтном шаблоне, в styles.css исчез блок HORIZONTAL MENU - вложенное меню отрывается от основного.
0
БОРОДИСТ БОРОДИСТ 8 лет назад #
Отлично! Спасибо!
P.S. Хотя я думал, что вот-вот уже 2.0 выйдет :(
-1
No Name No Name 8 лет назад #
А вот у меня InstantCMS 1.10.2 - как мне правильно устранить уязвимости о которых сказано в этом посте?При переходе сюда"Для более младших версий: внести самостоятельно исправления, обозначенные в этом коммите." у меня нет большинства строк которые указано там поменять или удалит!как мне правильно поступить?
0
Владимир Владимир 8 лет назад #
перейти на 1.10.3
-1
No Name No Name 8 лет назад #
перейти к сожалению не могу - много модулей именно для 1,10,2 и шаблон,так что хотелось бы устранить эту уязвимость именно для моей версии,подскажите кто в этом разбирается,буду благодарен!
+1
Владимир Владимир 8 лет назад #
Спасибо Вам! Fuze и команде
0
traffs traffs 8 лет назад #
После обновления перестал работать слайдер в карточке товара Тупо открывает одно большое изображение. Перестала работать кнопка Вернуться в магазин на "инсташопе", жмёшь на неё а всё равно в корзине. Всё это произошло после обновления ((( Люди добрые помогите разобраться cry
0
traffs traffs 8 лет назад #
Корзина сама собой заработала, а слайдер в карточке так и не заработал
0
traffs traffs 8 лет назад #
Решил проблему в этой теме http://instantcms.ru/forum/thread16844.html
0
nedoriko nedoriko 8 лет назад #
после обновления начал выскакивать этот баннер
Спойлер
0
Евгений Фоменко Евгений Фоменко 8 лет назад #
У меня база banner hits растет безобразно быстро, cron я не использую, ее можно просто ручками очистить и все? Болеть нигде не будет после такой операции?
+2
Fuze Fuze 8 лет назад #
Друзья!
Т.к. в сети гуляет якобы "очень крутая xss уязвимость", сообщаю, что ничего сверх страшного в ней нет.
Исправление можно забрать тут.
Основной дистрибутив исправлен.

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

Код PHP:
  1. self::$jevix->cfgAllowTagParams('a', array('class' => '#text', 'title', 'href', 'style', 'rel' => '#text', 'name' => '#text'));
это сделано в целях безопасности?
+2
Fuze Fuze 8 лет назад #
это сделано в целях безопасности?
нет, просто пропустил этот момент, можете добавить самостоятельно:
Код PHP:
  1. self::$jevix->cfgAllowTagParams('a', array('class' => '#text', 'title', 'href', 'style', 'rel' => '#text', 'name' => '#text', 'target' => '#text'));
0
Евгений Фоменко Евгений Фоменко 8 лет назад #
При запросе страницы фида 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 лента, которая отдает последние записи или это она и есть? Как увеличить количество записей:
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.