Naar de inhoud

SmartAuth 2.0.54 : audit de sécurité et corrections

Project : SmartAuth Uitgever : CAP-REL Versie : 2.0.54 Datum : Dolibarr 18 tot 24

Veiligheid stabiel 11 dagen geleden aangekondigd verklaarde compatibiliteit in Français

Un audit complet, suivi de corrections

Tout le code de SmartAuth a été relu : pages Dolibarr, API, serveur OAuth2, moteur de synchronisation et mappers. Les fondations cryptographiques (jetons JWT, PKCE, rotation des jetons de rafraîchissement) étaient saines. Les faiblesses se trouvaient surtout dans les pages d'administration héritées du générateur de modules, et dans l'écart entre les règles appliquées par l'API REST et celles du moteur de synchronisation. Cette version les corrige.

Chacun ne voit que ce qui le concerne

Le tableau de bord, la liste des jetons, celle des appareils et les journaux exigent désormais le droit de lecture SmartAuth et se limitent à l'entité courante. Un utilisateur ne peut plus révoquer, renommer ou supprimer que ses propres jetons ; les opérations sur les jetons des autres sont réservées aux administrateurs. Les consentements OAuth, les appareils retrouvés par leur identifiant et les journaux de notifications push respectent eux aussi l'entité.

Les liens d'action (révocation, suppression, renommage, réglages de la page d'administration) vérifient le jeton CSRF : un lien piégé ouvert par un administrateur n'a plus d'effet. L'historique des jetons et les informations d'appareil affichés sur la fiche utilisateur sont échappés, ce qui ferme une faille XSS stockée.

La synchronisation suit les mêmes règles que l'API

Le moteur de synchronisation hors ligne applique maintenant les règles de visibilité des mappers, comme l'API REST : un utilisateur qui ne voit que ses projets ou ses événements n'en récupère pas d'autres par la synchronisation. Les conflits de synchronisation ne conservent ni ne renvoient plus les colonnes sensibles (mot de passe, clé d'API). Les documents listés ou téléchargés passent par les règles d'accès de Dolibarr.

Sessions et mots de passe

Une réinitialisation de mot de passe révoque désormais à coup sûr les sessions OAuth2, en plus des jetons mobiles. Pour un adhérent qui possède aussi un compte utilisateur, le nouveau mot de passe est écrit par l'objet Dolibarr, qui tient les deux identités en phase, et l'ancien mot de passe conservé en clair cesse d'être accepté.

Changer son mot de passe depuis la page de compte déconnecte les autres sessions. La suppression d'un compte en libre-service révoque les sessions mobiles et anonymise le contact et le tiers. Supprimer un appareil annule ses jetons. Les connexions SSO sont limitées par adresse et par identifiant, et toutes les empreintes de mot de passe gérées par Dolibarr sont reconnues.

Connexion unique au back-office Dolibarr

Le retour de la connexion SSO atteint enfin le gestionnaire de SmartAuth, et la page de connexion admet les utilisateurs internes, seuls acceptés par le back-office. La page de consentement affiche correctement les adhérents, et une application qui demande une nouvelle authentification ne provoque plus de boucle de connexion.

Autres corrections

  • les cibles de redirection que les navigateurs transforment en adresse externe sont refusées ;
  • un jeton de rafraîchissement perdu dans une course répond invalid_grant au lieu d'une erreur serveur ;
  • la liste des applications s'affiche de nouveau sous MySQL ;
  • plusieurs erreurs fatales sur certains types d'extrafields sont corrigées ;
  • les notifications push ciblent les destinataires selon leurs droits d'entité et de groupe, et le journal d'envoi peut être purgé ;
  • les accents français sont restaurés dans les traductions.