Attention aux mises à jour 4.1.1 et 3.10.7

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] Attention aux mises à jour 4.1.1 et 3.10.7




    Il y a eu un problème avec le correctif de sécurité qui a été ajouté.

    [ PROBLÈME RÉGLÉ LE 30/03/2022 avec les versions 4.1.2 et 3.10.8.
    Plus d'infos :
    https://www.joomla.fr/actualites/joomla-4-1-2-et-joomla-3-10-8-sont-disponibles-correction-de-bogues ]


    Selon Nicholas, l'auteur d'Akeeba backup et contributeur fortement impliqué dans la communauté, il faut éviter d'installer les mises à jour de Joomla 4.1.1 et 3.10.7

    Voici ce qu'il explique en français :


    Les mises à jour de Joomla 4.1.1 et 3.10.7 introduisent une fonctionnalité mal implémentée appelée "Méthode d'authentification préférée" qui bloque l'accès des utilisateurs à leurs sites. Nous avons déjà signalé ce problème pour Joomla 4 et Joomla 3. Nous attendons de Joomla qu'il règle ce problème rapidement. Ils feraient mieux. Il s'agit d'un problème majeur.

    Oui, nous sommes conscients que ces versions sont marquées comme des versions de "sécurité". Cependant, le bogue majeur qu'elles introduisent est bien plus grave que les problèmes de sécurité de faible priorité qu'elles traitent.

    Si vous voulez vraiment installer cette mise à jour de sécurité, faites ce qui suit :
    • Mettez votre site hors ligne
    • Mettez votre site à jour
    • Suivez les instructions ci-dessous sous "Corriger ce qui est cassé" pour votre version du CMS.

    Réparer ce qui est cassé

    Si vous avez déjà mis à jour votre site vers Joomla 3, vous constaterez que vous ne pouvez plus vous connecter au site à l'aide d'un mot de passe si votre première connexion après la mise à jour a eu lieu sans utiliser de mot de passe, par exemple :
    • Vous étiez connecté par le plugin Remember Me (alias authentification par cookie).
    • Vous avez utilisé SocialLogin ou toute autre méthode d'authentification tierce sans mot de passe.
    • Vous avez utilisé WebAuthn dans Joomla 4.
    • Vous avez été connecté par un logiciel tiers, par exemple dans le cadre du processus d'achat avec un composant de commerce électronique.
    • Vous vous êtes connecté avec un plugin d'authentification unique.
    • Vous vous êtes connecté avec un forum bridge ou tout autre plugin d'authentification fournissant un pont vers une autre application installée sur votre site ou à distance.
    • Vous vous êtes connecté à l'aide d'un plugin d'authentification Joomla autre que le plugin par défaut "Authentification - Joomla", tel que LDAP, Gmail, etc.
    • Cela s'applique également à tous les utilisateurs de votre site. Donc, oui, c'est sérieux. Si des personnes se sont connectées sur votre site et que leur session a expiré, elles seront à nouveau connectées par le plugin Remember Me. Une fois qu'ils se seront déconnectés, ils seront bloqués pour toujours sur votre site. Cela peut être préjudiciable pour tout site.

    Vous pouvez résoudre ce problème en supprimant chirurgicalement deux petits morceaux de code qui causent les problèmes de connexion. Heureusement, nous sommes très familiers avec Joomla, nous comprenons comment il fonctionne, nous avons repéré ce problème en premier et nous avons trouvé une solution assez simple.

    Malheureusement, elle nécessite l'édition de fichiers, ce qui est très pénible si vous avez des dizaines ou des centaines de sites à mettre à jour. C'est pourquoi nous avons signalé ce problème au projet Joomla avant de publier une solution de contournement. Oui, il y a un moyen de contourner ce problème avec un plugin assez alambiqué, mais nous préférons le voir corrigé dans Joomla lui-même plutôt que de créer un autre plugin pour contourner un autre bug de Joomla...

    Sans plus attendre, voyons comment résoudre ce problème.

    Correction de Joomla 4

    Modifier le fichier plugins/user/joomla/joomla.php

    Trouvez les lignes suivantes (lignes 408-419) :

    Code PHP:


    if ($id)
    {
    $instance->load($id);

    // Add auth provider constraint if not set yet
    if (!$instance->authProvider)
    {
    $instance->setAuthProvider($user['type']);
    }

    return 
    $instance;


    Remplacez-les par

    Code PHP:

    if ($id)
    {
    $instance->load($id);

    return 
    $instance;


    Modifiez le fichier libraries/src/Authentication/Authentication.php

    Trouvez les lignes suivantes (lignes 187-194) :

    Code PHP:

    // Check auth provider constraint
    if ($pluginConstraint
    && $plugin instanceof ProviderAwareAuthenticationPluginInterface
    && $plugin::isPrimaryProvider()
    && 
    $plugin::getProviderName() !== $pluginConstraint)
    {
    continue;


    Remplacez-les par

    Code PHP:

    // Check auth provider constraint
    if ($pluginConstraint
    && $plugin instanceof ProviderAwareAuthenticationPluginInterface
    && $plugin::isPrimaryProvider()
    && 
    $plugin::getProviderName() !== $pluginConstraint)
    {
    //continue;



    Joomla 3

    Editez le fichier plugins/user/joomla/joomla.php

    Trouvez les lignes suivantes (lignes 388-399) :

    Code PHP:

    if ($id)
    {
    $instance->load($id);

    // Add auth provider constraint if not set yet
    if (!$instance->authProvider)
    {
    $instance->setAuthProvider($user['type']);
    }

    return 
    $instance;

    Remplacez-les par

    Code PHP:

    if ($id)
    {
    $instance->load($id) ;

    return 
    $instance ;


    Modifiez le fichier libraries/src/Authentication/Authentication.php.
    Trouvez les lignes suivantes (lignes 304-310) :

    Code PHP:

    // Check auth provider constraint
    if ($pluginConstraint
    && $plugin instanceof ProviderAwareAuthenticationPluginInterface
    && $plugin::isPrimaryProvider()
    && 
    $plugin::getProviderName() !== $pluginConstraint)
    {
    continue;


    Remplacez-les par

    Code PHP:


    // Check auth provider constraint
    if ($pluginConstraint
    && $plugin instanceof ProviderAwareAuthenticationPluginInterface
    && $plugin::isPrimaryProvider()
    && 
    $plugin::getProviderName() !== $pluginConstraint)
    {
    //continue;


    Source : https://www.akeeba.com/news/1750-do-...7-updates.html
    Dernière édition par daneel à 30/03/2022, 18h04
    manu93fr, RobertG et 2 autres aiment ceci.
    Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

  • #2
    Merci !!!

    Commentaire


    • #3
      Merci Yann,

      C'est curieux que dans les milestones, cette "issue" ne soit pas présente.
      "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
      MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

      Commentaire


      • #4
        Envoyé par RobertG Voir le message
        Merci Yann,

        C'est curieux que dans les milestones, cette "issue" ne soit pas présente.
        Les discussions ont continué très tard dans la nuit et repris ce matin.

        Actuellement, on en est là....


        Supprimez le champ de liaison d'authentification et le code de vérification pour désactiver la fonctionnalité jusqu'à ce qu'une solution appropriée soit mise en œuvre.
        Donc dans l'urgence de supprimer le nouveau code qui pose problème de J4.1 et J3.10 puis de trouver une solution appropriée à plus ou moins long terme.

        De ce que j'ai pu lire, c'est l'équipe de sécurité qui a apporté un correctiif sans tenir compte de l'impact sur l'authentification.
        En voulant eviter que des hackers prennent connaissance des failles, le secret n'a pas permis aux experts d'alerter ou de collaborer donc dans le fond,
        c'est le développement mais aussi l'organisation qui sera peut être à revoir.





        Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

        Commentaire


        • #5
          Bonjour,
          J'ai effectué les modifications indiquées (Joomla4) mais j'ai toujours mon problème d'identification sur le backend
          Bonjour Après avoir fais la mise à jour vers la version 4.1.1, j'obtiens ce message d'erreur en e connectant au back Une erreur est survenue 1054 Unknown column 'authProvider' in 'field list'

          Commentaire


          • #6
            Bonjour,

            La version 4.1.2 fut publié spécifiquement hier pour corriger le problème (ainsi que la version 3.10.8 pour la série 3.x de Joomla,
            l'explication et lien de téléchargement sont dans l'article en français :

            https://www.joomla.fr/actualites/joo...tion-de-bogues

            Concernant les problèmes d'authentification, il y a bien l'article de Nicholas que j'ai traduit mais l'équipe a aussi donné une autre solution plus simple dans la faq officielle :
            https://docs.joomla.org/J3.x:After_g..._login_anymore


            Comment corriger le problème

            Si vous avez toujours un Superadmin qui peut se connecter au backend, veuillez aller dans : Utilisateurs -> Gérer -> "Nom d'utilisateur" -> Méthode d'authentification -> Définir à "Aucun".

            Si vous n'avez pas de Superadmin qui peut se connecter au backend, sous phpmyadmin allez dans la table #__users pour rechercher l'utilisateur et effacez la valeur définie dans la colonne "authProvider".

            Effectuez maintenant une mise à jour vers 3.10.8 ou 4.1.2 ou une version plus récente pour appliquer le correctif à tous les utilisateurs concernés et vous protéger contre ce problème.
            Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

            Commentaire


            • #7
              J'ai fait la mise à jour 3.10.7 et depuis pas possible de me connecter à l'admiistration...
              J'ai appliqué les modifications des deux fichiers Authentication.php et joomla.php.
              Toujours pas d'accès à l'admin, message d'erreur :


              erreur
              Il semble que ce soit lié à aeSecure, ce programme que j'ai installé il y a longtemps et qui apparemment n'est plus entretenu.

              Qu'en pensez-vous ?

              Comment retrouver l'accès à l'administration ?

              Merci de votre aide

              Olivier


              Commentaire


              • #8
                Envoyé par olivier92* Voir le message
                J'ai fait la mise à jour 3.10.7
                Bonjour
                c'est abusé olive92, car la réponse se trouve juste au-dessus expliqué par daneel

                alors pour info. Ce bug m'est totalement passé inaperçu. Aucun problème sur mes 2 sites en j3 et les même en j4 local idem.
                voilà voilà

                Commentaire


                • #9
                  Bonjour

                  Pour ce qui est de aeSecure, tu vois ce mot peut-être parce qu'il s'agit du premier module admin (par ordre alphabétique) qui est chargé.

                  aeSecure ne fait aucun accès base de données, il est donc totalement étranger au problème mentionné.

                  Bonne journée
                  Christophe (cavo789)
                  Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
                  Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

                  Commentaire

                  Annonce

                  Réduire
                  Aucune annonce pour le moment.

                  Partenaire de l'association

                  Réduire

                  Hébergeur Web PlanetHoster
                  Travaille ...
                  X