В результате анализа, проведенного компанией «1С-Битрикс», были обнаружены потенциальные уязвимости в модулях sprint.*
Это было неделю назад.
На данный момент в маркетплейс выложены новые версии модулей с исправленными ошибками.
Предпочтительный способ обновления - штатное обновление через Маркетплейс 1С-Битрик
Альтернативный способ - скачать архив с модулем из гитхаба и заменить всю директорию.
sprint.migration - (берём архив начиная с 5.8.5 или ветку master)
sprint.editor - (берём архив начиная с 5.0.5 или ветку master)
Исправления в sprint.migration
Обратите внимание!
Особенность редактора sprint.editor в его глубокой кастомизации, поэтому в модуле был исправлен только собственный код, но не ваш
Если у вас есть кастомные блоки, то убедитесь в том что
1) ajax-запросы идут с передачей токена BX.bitrix_sessid(), а бекенд проверяет его через check_bitrix_sessid()
Пример, было:
Как нужно:
И вот что надо добавить на бекенде, в файле ajax.php, до выполения основного кода
2) В php-шаблонах блоков данные экранируются через htmlspecialcharsbx
Пример, было:
Как нужно:
P.S. Спасибо компании 1С-Битрикс за аудит, отличный способ отсеять уязвимые, устаревшие модули.
- sprint.migration - Миграции для разработчиков
- sprint.editor - Редактор для контент-менеджеров
Это было неделю назад.
На данный момент в маркетплейс выложены новые версии модулей с исправленными ошибками.
- sprint.migration - 5.8
- sprint.editor - 5.0
Предпочтительный способ обновления - штатное обновление через Маркетплейс 1С-Битрик
Альтернативный способ - скачать архив с модулем из гитхаба и заменить всю директорию.
sprint.migration - (берём архив начиная с 5.8.5 или ветку master)
sprint.editor - (берём архив начиная с 5.0.5 или ветку master)
Исправления в sprint.migration
- Название файла миграции теперь проверяется строгим регулярным выражением, совместимым с правилом именования php-классов
- Отключен детальный трейс исключений, раскрывающий чувствительные данные.
- В методы использующие unserialize добавлена опция ['allowed_classes' => false];
- В поля форм добавлено экранирование переменных через htmlspecialcharsbx, там где их не хватало
- Добавлена проверка сессии и авторизации для всех блоков запрашивающих данные с бекенда
- Добавлена более строгая валидация при скачивании\загрузке файлов
- Добавлено экранирование переменных через htmlspecialcharsbx в шаблонах блоков
- В блоке "компонент" убраны небезопасные параметры
- В блоке "сниппет" добавлена строгая проверка пути до файла
Обратите внимание!
Особенность редактора sprint.editor в его глубокой кастомизации, поэтому в модуле был исправлен только собственный код, но не ваш

Если у вас есть кастомные блоки, то убедитесь в том что
1) ajax-запросы идут с передачей токена BX.bitrix_sessid(), а бекенд проверяет его через check_bitrix_sessid()
Пример, было:
$.ajax({
url: '/ajax.php',
type: 'post',
data: {
url: '123',
},
dataType: 'json',
success: function (result) {
}
});
|
$.ajax({
url: '/ajax.php',
type: 'post',
data: {
url: '123',
sessid: BX.bitrix_sessid()
},
dataType: 'json',
success: function (result) {
}
});
|
if (!check_bitrix_sessid() || !$USER->IsAuthorized()) {
http_response_code(403);
die('Forbidden');
}
// основной код |
2) В php-шаблонах блоков данные экранируются через htmlspecialcharsbx
Пример, было:
<table class="sp-properties">
<?php foreach ($block['elements'] as $item) { ?>
<tr>
<td class="sp-properties_title"><?= $item['title'] ?></td>
<td class="sp-properties_text"><?= $item['text'] ?></td>
</tr>
<?php } ?>
</table>
|
Как нужно:
<table class="sp-properties">
<?php foreach ($block['elements'] as $item) { ?>
<tr>
<td class="sp-properties_title"><?= htmlspecialcharsbx($item['title']) ?></td>
<td class="sp-properties_text"><?= htmlspecialcharsbx($item['text']) ?></td>
</tr>
<?php } ?>
</table>
|
P.S. Спасибо компании 1С-Битрикс за аудит, отличный способ отсеять уязвимые, устаревшие модули.

