12.09.2014 в новостях VirtueMart.net появилась новая статья -
SECURITY RELEASE OF VM2.6.10 AND VM2.9.9BПолную версию новости можете прочесть по ссылке, здесь сообщу суть.Если вы используете версию VirueMart ниже, чем 2.6.10, вам необходимо срочно обновиться.Была обнаружена критическая уязвимость, которая была исправлена в рекордно короткие сроки.
Версии
2.6.10 (stable version) и
2.9.9b (in RC state) устраняют эту проблему.
Если вы не можете обновить VirtueMart, есть два способа устранения уязвимости:
1) Замените файл модели user.php
Самый простой способ – это скачать новые версии (2.6.10 или 2.9.9b), взять оттуда соответствующий файл и заменить свой по следующему пути:
/administrator/components/com_virtuemart/models/user.php
2) Изменение файла модели user.php
Если у вас в этот файл ранее были внесены изменения, и вы не можете его полностью заменить, внесите в него следующие изменения:
в файле /administrator/components/com_virtuemart/models/user.php
найдите function store(&$data,$checkToken = TRUE) и добавьте в начале функции следующие строки:
unset($data['isRoot']);
unset($data['groups']);
unset($data['_authGroups']);
Эта проблема относится не только к VirtueMart. Она может быть в любом стороннем расширении Joomla. Если разработчики используют модель Joomla без формы, в которой осуществляется фильтрация введенных данных, они должны позаботится о фильтрации самостоятельно, иначе есть возможность переопределить внутренние переменные объекта.
Как следует из контекста статьи, разработчики Joomla пока не прислушались к мнению разработчиков VM о том, что модель должна быть безопасна сама по себе, без использования вида или контроллера, и не согласны вносить изменения в JUser. Их аргументация: «Нет никаких проблем, пока вы используете Joomla Form.».