Новости 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

👩‍💻 Joomla включена в программу Google Summer of Code 2026.

👩‍💻 Joomla включена в программу Google Summer of Code 2026.

Google Summer of Code (GSoC) - программа компании Google, которая позволяет участникам программы под руководством опытных наставников писать код для организаций, занимающейся открытым исходным кодом. Joomla принимает участие в этой программе не в первый раз и в 2026 году снова включена в список GSoC. Для программы утверждается список "идей", воплотить которые должны участники под руководством наставников.

Проекты Joomla в рамках программы GSoC 2026.

Проект I: Ajax-бэкенд.
- Действия в административной панели без необходимости обновлять страницу.
- Автоматическое сохранение содержимого во время редактирования.
- Расширенный фильтр - поиск и фильтрация по пользовательским полям.

Проект II: Автоматизация рабочих процессов (workflow + task scheduler).
Joomla имеет функцию процессов и планировщика задач. Теперь эти две функции следует объединить, чтобы пользователь мог настраивать назначенные рабочие процессы таким образом, чтобы переходы выполнялись автоматически, с возможностью точного определения времени. Должна быть возможность создавать циклы или прямые запланированные рабочие процессы. Предполагается, что интерфейс должен учитывать хороший пользовательский опыт, удобство использования и современные стандарты доступности. Ожидается, что будет добавлен интерфейс для управления процессами и их расписанием на страницах категорий и материалов. Так же ожидается, что сторонние компоненты также смогут воспользоваться этим функционалом.

Проект III: Мультикатегории.
В настоящее время Joomla! не позволяет назначать один элемент нескольким категориям. Хотя система тегов часто используется в качестве замены, существует острая потребность в нативной поддержке нескольких категорий, чтобы привести Joomla! в соответствие с другими современными системами управления контентом.

Проект IV: Обучение с подкреплением на основе отзывов переводчиков.
Joomla собирается использовать автоматический перевод документации. В каждом языке есть свои специфические слова, характерные для Joomla. Предполагается обучать языковые модели, используя обратную связь от переводчиков, чтобы постоянно улучшать качество переводов и учитывать специфические языковые особенности Joomla.

Принять участие GSoC 2026
Подробнее о проектах Joomla GSoC 2026
Чат GSoC в Mattermost (международное сообщество Joomla)

Вышли релизы Joomla 6.0.3 и Joomla 5.4.3

Релиз Joomla 6.0.3 и Joomla 5.4.3

Проект Joomla рад сообщить о выпуске Joomla 6.0.3 и Joomla 5.4.3. Это релиз исправлений ошибок и улучшений для серии Joomla 6.0 и Joomla 5.4.

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

co11ter

  • Захожу иногда
  • 151
  • 8 / 0
JW Player Plugin
« : 27.04.2011, 17:40:59 »
После установки плагина по всему сайту появилась надпись:

Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/c/cl46839/public_html/plugins/content/jw_player.php on line 41
Warning: implode() [function.implode]: Invalid arguments passed in /home/c/cl46839/public_html/plugins/content/jw_player.php on line 41


Что это за ошибка и как ее устранить?
*

dblanes07

  • Новичок
  • 3
  • 0 / 0
Re: JW Player Plugin
« Ответ #1 : 04.06.2011, 16:41:00 »
Такая же проблема
*

co11ter

  • Захожу иногда
  • 151
  • 8 / 0
Re: JW Player Plugin
« Ответ #2 : 05.06.2011, 14:54:24 »
dblanes07 мой пост висит уже два месяца и никто не ответил, так что проще найти себе другое расширение.
Я пользуюсь AllVideos Reloaded
*

katerina

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Re: JW Player Plugin
« Ответ #3 : 22.12.2011, 05:32:54 »
Такая же проблема недавно появилась. Кто знает как исправить? Вот ссылка на сайт с ошибкой: http://kandadzia.ru/news.html
Код jw_player.php
Код
<?php
/*
 * JW Player for Joomla! 1.5
 * Author: Max
 * Version: 1.1
 * Last Update: 26/02/2010
 *
 * JW Player
 * Author: Jeroen Wijering
 * ULR: http://www.longtailvideo.com/players/jw-flv-player/
 * Version: 4.7.811
*/

// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

jimport( 'joomla.plugin.plugin' );

class plgContentJw_player extends JPlugin {

   function plgContentJw_player( &$subject, $params ) {
      parent::__construct( $subject, $params );
   }

   function onPrepareContent( &$article, &$params ) {

      // API
      $mainframe= &JFactory::getApplication();

      // Assign paths
      $sitePath = JPATH_SITE;
      $siteUrl  = substr(JURI::root(), 0, -1);

      // Check if plugin is enabled
      if(JPluginHelper::isEnabled('content','jw_player')==false) return;

      // ------------------------------------ Prepare elements -------------------------------------
      // Includes
      require_once($sitePath.DS.'plugins'.DS.'content'.DS.'jw_player'.DS.'sources.php');
      // Simple performance check to determine whether plugin should process further
      $grabTags = str_replace("(","",str_replace(")","",implode(array_keys($tagReplace),"|")));
      if(preg_match("#{(".$grabTags.")}#s",$article->text)==false) return;


      // ---------------------------------- Get plugin parameters ----------------------------------
      // Outside Parameters
      if(!$params) $params = new JParameter(null);

      $plugin = & JPluginHelper::getPlugin('content','jw_player');
      $pluginParams = new JParameter( $plugin->params );

      /* Video */
      $videofolder             = ($params->get('videofolder'))? $params->get('videofolder') : $pluginParams->get('videofolder','media/videos');
      $videowidth              = ($params->get('videowidth'))? $params->get('videowidth') : $pluginParams->get('videowidth',400);
      $videoheight             = ($params->get('videoheight'))? $params->get('videoheight') : $pluginParams->get('videoheight',300);
      $transparency            = $pluginParams->get('transparency','transparent');
      $background              = $pluginParams->get('background','#010101');
      /* Audio */
      $audiofolder             = $pluginParams->get('audiofolder','media/audio');
      $audiowidth              = $pluginParams->get('audiowidth',300);
      $audioheight             = $pluginParams->get('audioheight',20);
      /* Playlist */
      $playlistsize            = $pluginParams->get('playlistsize',350);
      $shuffle                 = $pluginParams->get('shuffle',0);
      /* General */
      $fullscreen              = ($pluginParams->get('fullscreen',0))? 'true' : 'false';
      $autoplay                = ($pluginParams->get('autoplay',0))? 'true' : 'false';
      $downloadLink            = ($params->get('downloadLink'))? $params->get('downloadLink') : $pluginParams->get('downloadLink',1);
      $skin                    = $pluginParams->get('skin','');
      $logo                    = $pluginParams->get('logo','');
      /* Advanced */
      $debugMode               = $pluginParams->get('debugMode',0);
      if($debugMode==0) error_reporting(0); // Turn off all error reporting

      if($shuffle==1) {
         $shuffle="&shuffle=true";
      }
      else {
         $shuffle="";
      }
      if($skin!="") {
         $skin="&skin=".$siteUrl."/plugins/content/jw_player/skins/".$skin;
      }
      if($logo!="") {
         $logo="&logo=".$siteUrl."/".$logo;
      }

      $document = & JFactory::getDocument();
      $document->addStyleSheet('plugins/content/jw_player/style.css');

      // ------------------------------------ Render the output ------------------------------------
      foreach($tagReplace as $plg_tag => $value) {
         // expression to search for
         $regex = "#{".$plg_tag."}(.*?){/".$plg_tag."}#s";
         // process tags
         if(preg_match_all($regex, $article->text, $matches, PREG_PATTERN_ORDER) > 0) {
            // start the replace loop
            foreach ($matches[0] as $key => $match) {
               $tagcontent = preg_replace("/{.+?}/", "", $match);
               $tagparams  = explode('|',$tagcontent);
               $tagsource  = trim(strip_tags($tagparams[0]));

               // source elements
               $findAVparams = array(
                  "{SOURCE}",
                  "{FOLDER}",
                  "{WIDTH}",
                  "{HEIGHT}",
                  "{TRANSPARENCY}",
                  "{BACKGROUND}",
                  "{FULLSCREEN}",
                  "{AUTOPLAY}",
                  "{PLAYLISTSIZE}",
                  "{SHUFFLE}",
                  "{SKIN}",
                  "{LOGO}",
                  "{SITEURL}",
               );

               // Prepare the HTML
               $output = new JObject;

               // replacement elements
               if(in_array($plg_tag, array("mp3","mp3remote","mp3playlist"))) {

                  $final_width    = (@$tagparams[1])? $tagparams[1] : $audiowidth;
                  $final_height   = (@$tagparams[2])? $tagparams[2] : $audioheight;
                  $final_autoplay = (@$tagparams[3])? $tagparams[3] : $autoplay;
                  $final_folder   = $audiofolder;

                  if($plg_tag=="mp3playlist") {
                     $final_height=$final_height+$playlistsize;
                  }
                 
                  $output->playerWidth  = $audiowidth;
                  $output->playerHeight = $audioheight;

               } else {

                  $final_width    = (@$tagparams[1])? $tagparams[1] : $videowidth;
                  $final_height   = (@$tagparams[2])? $tagparams[2] : $videoheight;
                  $final_autoplay = (@$tagparams[3])? $tagparams[3] : $autoplay;
                  $final_folder   = $videofolder;

                  if($plg_tag=="videoplaylist") {
                     $final_height=$final_height+$playlistsize;
                  }
                 
                  $output->playerWidth  = $final_width;
                  $output->playerHeight = $final_height;

               }

               $replaceAVparams = array(
                  $tagsource,
                  $final_folder,
                  $final_width,
                  $final_height,
                  $transparency,
                  $background,
                  $fullscreen,
                  $final_autoplay,
                  $playlistsize,
                  $shuffle,
                  $skin,
                  $logo,
                  $siteUrl,
               );

               $output->player = JFilterOutput::ampReplace(str_replace($findAVparams, $replaceAVparams, $tagReplace[$plg_tag]));

               if($downloadLink && (in_array($plg_tag, array("flv","mp3","mp4"))) ) {

                  $filesize = filesize($sitePath.'/'.$final_folder.'/'.$tagsource.'.'.$plg_tag);
                  $units       = array('B', 'kB', 'MB', 'GB', 'TB', 'PB');
                  $i           = 0;
                  while($filesize>=1024) {
                     $filesize = $filesize/1024;
                     $i++;
                  }
                  $filesize = round($filesize, 2)."".$units[$i];
                  $output->downloadLink = '<a href="'.$siteUrl.'/'.$final_folder.'/'.$tagsource.'.'.$plg_tag.'" title="Download">Click</a> to download in '.strtoupper($plg_tag).' format ('.$filesize.')';

               } else {
                  $output->downloadLink = '';
               }

               $getTemplate = '
<!-- JW Player Plugin (start) -->
<div class="player">
<div class="player-box">'.$output->player.'</div>
<div class="player-text">
'.$output->downloadLink.'
</div>
</div>
<!-- JW Player Plugin (end) -->
';

               // Do the replace
               $article->text = preg_replace("#{".$plg_tag."}".preg_quote($tagcontent)."{/".$plg_tag."}#s", $getTemplate , $article->text);

            } // end foreach
         } // end if
      }
   }

}
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Фатальная ошибка после включения плагина MP3 Browser Plugin

Автор tinka

Ответов: 7
Просмотров: 2580
Последний ответ 04.03.2020, 20:00:10
от glushilka
[РЕШЕНО]smooth scroll plugin

Автор lexxbry

Ответов: 5
Просмотров: 2619
Последний ответ 19.06.2018, 11:39:48
от dmitry_stas
Extra News Plugin не корректно работает в Joomla 3.7.5

Автор kosopuzik

Ответов: 0
Просмотров: 1245
Последний ответ 15.09.2017, 23:13:13
от kosopuzik
JW Player

Автор FloRes

Ответов: 2
Просмотров: 1560
Последний ответ 17.01.2015, 21:27:33
от mr.shusty
Very Simple Image Gallery Plugin

Автор JDV

Ответов: 1
Просмотров: 1327
Последний ответ 19.02.2014, 16:31:53
от JDV