Новости Joomla

‼️ 👩‍💻 Обновление безопасности для Tassos Framework!

‼️ 👩‍💻 Обновление безопасности для Tassos Framework!

7 января 2026 года греческому разработчику Тассосу Мариносу сообщили об уязвимости в системном плагине Tassos Framework, который входит в состав его расширений для Joomla.

⚠️ Проблема затрагивает следующие расширения:
- Convert Forms - конструктор форм обратной связи для Joomla
- EngageBox - конструктор всплывающих окон для Joomla
- Google Structured Data - пакет плагинов микроразметки для Joomla
- Advanced Custom Fields - пакет плагинов пользовательских полей (видео-сервисы, карты и иже с ними)
- Smile Pack - пакет расширений
- MailChimp Auto-Subscribe

Незамедлительно была проведена полная внутренняя проверка кода, внедрены дополнительные меры проверки и повышения безопасности, а также выпущены исправленные версии всех затронутых расширений. Проблема полностью решена.

👉 Суть уязвимости.
Уязвимость заключалась в том, как плагин Tassos Framework обрабатывал определенные AJAX-запросы через com_ajaxточку входа Joomla. При определенных условиях внутренняя функциональность фреймворка могла быть вызвана без надлежащих ограничений.

В худшем случае это могло позволить неавторизованному злоумышленнику читать файлы, доступные веб-серверу. Это также могло позволить удалять файлы с сервера при выполнении определенных условий.

При определенных обстоятельствах запросы к базе данных могли быть изменены для извлечения данных из базы данных Joomla. В совокупности эти возможности потенциально могли быть использованы для повышения уровня доступа и выполнения несанкционированного кода.

В настоящее время нет никаких доказательств того, что эта уязвимость была использована в реальных условиях.

Немедленно обновите расширения до безопасных версий (Joomla 4/5/6 | Joomla 3):
- Convert Forms - v5.1.1 / v.4.1.1
- EngageBox - v.7.1.1 / v,6,3,9
- Google Structured Data - v.6.1.1 / v.5.6.9
- Advanced Custom Fields - v.3.1.1 / v.2.8.10
- Smile Pack - v.2.1.1 / v.1.2.4.
- MailChimp Auto-Subscribe - v.5.1.1+ / v.5.0.4

Все указанные версии включают в себя релиз безопасности плагина Tassos Framework System Plugin v6.0.62.

Если у вас установлено несколько расширений Tassos, достаточно обновить только одно, чтобы применить патч. Однако всегда рекомендуется обновлять все расширения.

@joomlafeed

0 Пользователей и 1 Гость просматривают эту тему.
  • 1 Ответов
  • 945 Просмотров
*

Modis

  • Захожу иногда
  • 153
  • 0 / 0
Всем привет. На сайте используется магазин. Продажа ключей к программам. Изначально было так:
Есть товар. У товара есть два атрибута: Имя функции и Версия AutoCAD. И есть один свободный атрибут: Регистрационный ключ.
При покупке должен сформироваться ответный ключ, из строки "ВерсияАвтокад+РегКлюч+ИмяФункции" используя md5. Лично я не силен в php. У меня вся эта реализация есть на C#, поэтому я нанимал фрилансера и он мне реализовал мою задачу. Я поискал по файлам магазина и нашел реализацию в файле /com_jshopping/tables/order.php:
Код: php
function getAllItems(){
    if (!isset($this->items)){
        $jshopConfig = JSFactory::getConfig();
        $query = "SELECT OI.* FROM `#__jshopping_order_item` as OI WHERE OI.order_id = '".$this->_db->escape($this->order_id)."'";
        $this->_db->setQuery($query);
        $this->items = $this->_db->loadObjectList();

        $query = "SELECT * FROM `#__jshopping_attr_values`";
        $this->_db->setQuery($query);
        $attributes = $this->_db->loadObjectList();

        foreach($this->items as $k=>$v){
            $this->items[$k]->_qty_unit = '';
            $this->items[$k]->delivery_time = '';
            $depend_attr = unserialize($this->items[$k]->attributes);

            foreach ($attributes as $key => $val) {
                if (array_key_exists($val->attr_id, $depend_attr) && in_array($val->value_id, $depend_attr)) {
                    $this->items[$k]->attributes_values[$val->attr_id] = $val->{'name_ru-RU'};
                }
            }
            $key = unserialize($this->items[$k]->freeattributes);
            $key = $key[1];

            $this->items[$k]->product_hash = md5(
                $this->items[$k]->attributes_values[1] .
                $key .
                $this->items[$k]->attributes_values[2]
            );
        }

        if ($jshopConfig->display_delivery_time_for_product_in_order_mail){
            $deliverytimes = JSFactory::getAllDeliveryTime();
            foreach($this->items as $k=>$v){
                if (isset($deliverytimes[$v->delivery_times_id])) {
                    $this->items[$k]->delivery_time = $deliverytimes[$v->delivery_times_id];
                }
            }
        }
    }
Теперь у меня случились важные изменения на сайте и появился еще один атрибут - Версия Revit. Т.е. у каждого товара повторяются атрибуты Версия функции, Имя функции и Рег Ключ и на выбор один атрибут - либо Версия Автокада либо версия Ревита.
По логике я понимаю, что в случае товара для ревита генерация ответного ключа должна выглядеть так:
Код: php
$this->items[$k]->product_hash = md5(
    $this->items[$k]->attributes_values[3] .
    $key .
    $this->items[$k]->attributes_values[2]
);

Осталась одна проблема - сделать условный оператор if. Т.е. если attributes_values[1] == null (по типу C# пишу )) ), то использовать attributes_values[3]. К сожалению, в php я вообще не шарю, поэтому прошу помощи форумчан
*

Modis

  • Захожу иногда
  • 153
  • 0 / 0
В общем решил пойти методом банальной эрудиции и сделал так:
Код: php
if($this->items[$k]->attributes_values[3] != ''){
$this->items[$k]->product_hash = md5(
$this->items[$k]->attributes_values[3] .
$key .
$this->items[$k]->attributes_values[2]
);
}else {
$this->items[$k]->product_hash = md5(
$this->items[$k]->attributes_values[1] .
$key .
$this->items[$k]->attributes_values[2]
);
}
И вроде даже работает -)))
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Код товара - автоматическая генерация.

Автор AndreyUA

Ответов: 93
Просмотров: 15979
Последний ответ 17.03.2023, 11:28:47
от geral
Генерация алиасов в Unicode

Автор misterfalse

Ответов: 3
Просмотров: 1410
Последний ответ 15.07.2015, 19:00:11
от dmitry_stas