- Рекомендации
- PHP 7.4.+
- Видимый копирайт
- Да
Исправление системы безопасности
Сегодня мы сообщаем всем пользователям, использующим XenForo, о том, что была обнаружена потенциальная уязвимость в системе безопасности. Всем затронутым пользователям следует перейти на XenForo 2.1.15 или XenForo 2.2.16.
Если вы являетесь клиентом XenForo Cloud, исправление было запущено автоматически, и никаких дальнейших действий для устранения этой проблемы не требуется.
Если вы используете предварительную версию XenForo 2.3, вам следует следовать инструкциям, приведенным в теме анонсов выпуска XenForo 2.3.0 Release Candidate 1.
Проблема связана с потенциальной уязвимостью при подделке межсайтовых запросов и внедрении кода, которая может привести к удаленному выполнению кода (RCE) или использованию межсайтовых сценариев (XSS).
XenForo расширяет возможности благодаря независимому исследователю безопасности Эджидио Романо (EgiX), работающему с SSD Secure Disclosure.
Мы рекомендуем выполнить полное обновление, чтобы устранить проблему, но исправление можно применить вручную к любой версии. Более подробную информацию смотрите ниже.
Применение исправления вручную
Чтобы устранить эту проблему вручную, вам нужно будет отредактировать один файл вручную и загрузить несколько измененных файлов.
Шаг 1: Редактирование
src/XF.php
Найдите в этом файле следующую строку:
PHP:
$parts = explode(':', $string, 3);
Замените эту строку следующей:
PHP:
if (!$string) return '';
if (strpos($string, ':') === false)
{
$pattern = '#^\\\?'
. str_replace('%s', '([A-Za-z0-9_\\\]+)', preg_quote(ltrim($formatter, '\\')))
. '$#';
if (!preg_match($pattern, $string, $matches))
{
throw new \InvalidArgumentException(sprintf(
'Class %s does not match formatter pattern %s',
$string,
$formatter
));
}
// already a class
return $string;
}
$parts = explode(':', $string, 3);
Примечание: Этот файл не может быть исправлен автоматически, поскольку он содержит данные, относящиеся к конкретной установке. Вы должны вручную применить это изменение к любой установке XenForo под управлением XenForo 2.1 или 2.2, чтобы эффективно устранить проблему.
Шаг 2: Загрузите XF-файлы
- Загрузите либо
2115-patch.zip
(для XenForo 2.1), либо2216-patch.zip
(для XenForo 2.2). - Извлеките zip-файл
- Загрузите содержимое каталога загрузки в корневой каталог вашей установки XenForo
Шаг 3: Загрузите файлы формата XFMG (только для пользователей XenForo Media Gallery)
- Загрузите либо
xfmg219-patch.zip
(для XenForo Media Gallery 2.1), либоxfmg226-patch.zip
(для XenForo Media Gallery 2.2). - Извлеките zip-файл.
- Загрузите содержимое каталога
upload
в корневой каталог вашей установки XenForo