Новости 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 Гость просматривают эту тему.
  • 5 Ответов
  • 1130 Просмотров
*

sesil

  • Захожу иногда
  • 82
  • 0 / 0
  • Учусь!
Здравствуйте, в редактировании профиля, есть дополнительные поля, в них через админку можно добавить классы, как добавить классы к уже имеющимся input формам таким как name, email, password? сразу говорю, CSS решения не предлагать, нужно добавить класс к полю.
« Последнее редактирование: 21.08.2019, 12:47:51 от sesil »
*

sivers

  • Живу я здесь
  • 2606
  • 361 / 0
Вариант 1:
дописать классы в XML соответствующей формы тут /components/com_users/models/forms/

Вариант 2:
плагин, событие подготовки формы

Вариант 3:
В макете редактирования профиля edit.php
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

sesil

  • Захожу иногда
  • 82
  • 0 / 0
  • Учусь!
Вариант 1:
дописать классы в XML соответствующей формы тут /components/com_users/models/forms/

Вариант 2:
плагин, событие подготовки формы

Вариант 3:
В макете редактирования профиля edit.php

В 1 вариант если добавить класс через XML в файле profile все ровно class не появляется в input jform_username. 2 способом не понятно что именно нужно сделать? можно пример? И третим способом тоже не получилось сделать.
*

sivers

  • Живу я здесь
  • 2606
  • 361 / 0
В 1 вариант если добавить класс через XML в файле profile все ровно class не появляется в input jform_username. 2 способом не понятно что именно нужно сделать? можно пример? И третим способом тоже не получилось сделать.

1. Попробуйте другие XML из той директории и убедитесь, что макет вывода формы не переопределен (иначе сразу в п.3). Проверил - способ рабочий.
2. Делаете плагин группы Content, в нем добавляете обработчик вот такого вида:
Код
    public function onContentPrepareForm($form, $data) {
        if (!($form instanceof JForm)) {
            $this->_subject->setError('JERROR_NOT_A_FORM');
            return false;
        }

        // Получаем название формы (текущего компонента)
        $name = $form->getName();
       
        switch($name){
            case 'com_users.login':
                $form->setFieldAttribute('username', 'class', 'myClassLogin');
            break;
            case 'com_users.profile':
                $form->setFieldAttribute('password', 'class', 'myClassPass');
            break;
        }

        return true;
    }
Здесь добавляется (замещается) класс для поля логина в форме логина и класс поля ввода пароля в форме профиля. Пример рабочий - проверил.
3. Третим способом проще. Сперва надо точно вычислить макет, который подключается. Потом скопировать его в свой шаблон и внести изменения там.

Если у вас нет эффекта после изменений, то скорее всего в вашем шаблоне уже переопределен этот макет. Поищите здесь: /templates/название_вашего_шаблона/html/com_users/profile
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

sesil

  • Захожу иногда
  • 82
  • 0 / 0
  • Учусь!
public function onContentPrepareForm($form, $data) {
        if (!($form instanceof JForm)) {
            $this->_subject->setError('JERROR_NOT_A_FORM');
            return false;
        }

        // Получаем название формы (текущего компонента)
        $name = $form->getName();
       
        switch($name){
            case 'com_users.login':
                $form->setFieldAttribute('username', 'class', 'myClassLogin');
            break;
            case 'com_users.profile':
                $form->setFieldAttribute('password', 'class', 'myClassPass');
            break;
        }

        return true;
    }

Сделал все как Вы сказали, распечатал $form

Код
 object(SimpleXMLElement)#578 (1) {
            ["@attributes"]=>
            array(8) {
              ["name"]=>
              string(8) "username"
              ["type"]=>
              string(4) "text"
              ["label"]=>
              string(32) "COM_USERS_PROFILE_USERNAME_LABEL"
              ["description"]=>
              string(26) "COM_USERS_DESIRED_USERNAME"
              ["filter"]=>
              string(8) "username"
              ["required"]=>
              string(4) "true"
              ["class"]=>
              string(18) " base-form__input "
              ["size"]=>
              string(2) "30"
            }
          }

По идее должен присваиваться class но он пустой.

Вот так выглядит HTML

Код
<input type="text" name="jform[username]" id="jform_username" value="Моё имя!" size="30" readonly="readonly">
*

sivers

  • Живу я здесь
  • 2606
  • 361 / 0
По идее должен присваиваться class но он пустой.
В моем коде поменяйте имя поля с password на username. Ведь там пример был. Или посмотртите появился ли класс в поле ввода пароля.

В дампе формы должно быть его видно. Если в дампе есть, а в самой форме (на фронте) класса нет, значит переопределен макет у вас.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как изменить lang=&quot;ru-ru&quot;?

Автор Maffo

Ответов: 0
Просмотров: 962
Последний ответ 07.04.2023, 16:07:22
от Maffo
Заменить текст - просмотров - на иконку (или свой текст)

Автор all_zer

Ответов: 2
Просмотров: 1074
Последний ответ 28.03.2023, 13:32:35
от all_zer
Как изменить лимит размера файла при загрузке обновлений?

Автор Besa

Ответов: 3
Просмотров: 1569
Последний ответ 15.12.2022, 11:23:09
от Besa
Обнаружена ошибка. Class 'JFormFieldPredefinedList' not found

Автор sevent45

Ответов: 14
Просмотров: 4891
Последний ответ 14.12.2022, 18:34:07
от peklor
Блок особенностей, как добавить в поле с информацией кнопку или ссылку Подробнее

Автор Alex from SPb

Ответов: 5
Просмотров: 1251
Последний ответ 28.11.2022, 19:54:42
от marksetter