... les détails ... car le serveur cmsmadesimple.fr/forum a quelques fois des interruptions momentanées
Pour information la version de Smarty utlisée sur CMSMS est la 3.1.31 qui date du 14/12/2016 ( Smarty.class.php => const SMARTY_VERSION = '3.1.31';)
Il existe depuis cette date des alertes de sécurité (
Security)
For information the version of Smarty used on CMSMS is 3.1.31 which dates from 14/12/2016 ( Smarty.class.php => const SMARTY_VERSION = '3.1.31';) There are since this date security alerts (Security)
[3.1.43] - 2022-01-10
Security
Prevent evasion of the static_classes security policy. This addresses CVE-2021-21408
[3.1.42] - 2022-01-10
Security
Prevent arbitrary PHP code execution through maliciously crafted expression for the math function. This addresses CVE-2021-29454
[3.1.39] - 2021-02-17
Security
Prevent access to $smarty.template_object in sandbox mode. This addresses CVE-2021-26119.
Fixed code injection vulnerability by using illegal function names in {function name='blah'}{/function}. This addresses CVE-2021-26120.
3.1.33-dev-4 -
bugfix regarding Security Vulnerability did not solve the problem under Linux. Security issue CVE-2018-16831
la dernière version de Smarty est la
3.1.44 du 18/01/2022
the latest version of Smarty is 3.1.44 dated 18/01/2022
qui corrige ces failles et aussi d'autres bugs
Avant la sortie de le 2.2.16 j'avais poser la question à un développeur sur ce soucis de mise à jour (pas prévue)
Donc voila comme il y a des membres de la Team qui lisent ce forum j'informe
les détails de la correction
---------------------------------
- pour intégrer le paquet Smarty 3.1.44 sur la version CMSMS 2.2.16 c'est possible sans trop de difficultés
enfin sur mes tests aussi bien en local en PHP 7.4.28 et 8.0.16 que sur un serveur PHP 8.0.15
La cause &$smarty) // passed by reference
- en local sur une version brute d'installation modules standard ET sans modules externes
- sur le serveur une version de production multilangues avec modules standard + modules externe ( SmartyExt + DownCnt)
Pour mettre à jour :
* Il suffit de renommer le dossier /lib/smarty existant en smarty3131 et d'ajouter le nouveau dossier smarty (3.1.44)
* Mais il faudra corriger quelques fichier
Pour la partie Admin modification des fichiers
/admin/systeminfo.php ligne 47
function systeminfo_lang($params,$smarty) // -& de ,&$smarty) OK smarty-3.1.44
/admin/checksum.php ligne 40
function checksum_lang($params,$smarty) // -& de ,&$smarty) OK smarty-3.1.44
Pour la partie site Web modification des fichiers
/lib/classes/internal/class.CMS_Content_Block.php ligne 324
public static function smarty_fetch_pagedata($params,$smarty) // -& de ,&$smarty) OK smarty-3.1.44
/lib/classes/class.usertagoperations.inc.php ligne 305 (cause balise utilisateur {cookies} pour afficher une popup d'information)
$code = 'function '.$functionname.'($params,$smarty) {'.$row['code']."\n}"; // -& de ,&$smarty) OK smarty-3.1.44
UPDATE 24/02/22 (à cause d'un plugin de téléchargement (DownCnt)
ajout de /lib/classes/class.CMSModule.php ligne 249
final static public function function_plugin($params,$template) // -& de ,&$template) OK smarty-3.1.44
A vous de tester et de donner vos résultats en fonction de modules installées
Si besoin du paquet Smarty 3.1.44 et des fichiers modifiés -> envoyer moi un mail
NOTA PHP 8.1.x c'est inutile trop de correction de code à faire des warnings et plus ..
- Addition -
Ha tiens encore un truc pour ... ou erreur de nommage plutôt
dans les fichiers du cms le dossier /lib/smarty (smarty) est tout en minuscules alors que dans le dossier /phar_installer/lib/ il est Nommé Smarty avec un S majuscule