Audit de sécurité

Dernière mise à jour : 24 septembre 2026.

Capibara publie le résultat de ses audits de sécurité : ce qui a été cherché, ce qui a été trouvé, ce qui est corrigé et ce qui reste à faire. Chaque ligne décrit ce qui était possible et ce qui a changé, sans le détail qui permettrait de le reproduire.

Audit de septembre 2026

176 constats confirmés, 176 corrigés au 24 septembre 2026.

Ce qui a été examiné

  • Comptes, connexion, double authentification et sessions
  • Cloisonnement entre organisations et droits par rôle
  • Paiements, abonnements et facturation
  • Sites publics des organisations : membres, réservations, billetterie, partages
  • Fichiers et pièces jointes
  • Contenus injectés dans les pages (scripts, intégrations)
  • Requêtes émises par le serveur vers d'autres sites
  • Abus : force brute, envois en masse, épuisement de quotas
  • Secrets et jetons (invitation, réinitialisation, clés d'accès)
  • Console d'administration de la plateforme
  • Portail développeurs, applications tierces et connexion OAuth
  • Messagerie et webmail
  • Configuration du serveur web et des certificats
  • Données personnelles : export, effacement, durées de conservation

Méthode

  • Audit interne du code source complet, réalisé par l'équipe Capibara avec des outils d'analyse de code.
  • Chaque constat a été soumis à un second examen chargé de le réfuter ; seuls les constats qui y ont résisté sont comptés ci-dessous.
  • Les constats exploitables sans compte ont été confirmés sur le service en production par des requêtes en lecture seule, sans rien modifier.
  • Chaque correction est accompagnée de tests automatisés qui empêchent le défaut de revenir.
  • Cet audit ne remplace pas un test d'intrusion mené par un prestataire indépendant.

Résultats par gravité

GravitéConfirmésCorrigés
Critique44
Élevée1818
Moyenne5454
Faible100100

Le détail

GravitéDomaineCe qui était possible, et ce qui a changéÉtat
CritiqueComptes et connexionLe lien d'invitation d'un nouveau membre était visible par les autres membres, et pouvait servir à prendre un compte existant. Les liens sont désormais stockés sous forme d'empreinte, n'apparaissent plus dans aucune liste, et un compte déjà utilisé ne peut plus être réclamé par une invitation.Corrigé
CritiquePaiementsSur une réservation ou un achat en ligne, la carte enregistrée d'un client pouvait être proposée à quelqu'un qui avait simplement saisi son adresse e-mail. Les cartes enregistrées ne sont plus proposées qu'à un membre dont l'adresse est vérifiée.Corrigé
CritiqueMessagerieUne organisation pouvait créer un alias sur le domaine d'une autre, ou sur un domaine public, et capter ou détruire des boîtes ; un alias n'est plus accepté que sur un domaine que l'organisation possède et a vérifié.Corrigé
CritiqueMessagerieUn membre au rôle le plus bas pouvait ouvrir le webmail de n'importe quel collègue ; seuls le titulaire, les membres de l'équipe de la boîte et les gestionnaires des boîtes peuvent l'ouvrir, et l'ouverture par un gestionnaire est journalisée.Corrigé
ÉlevéeNoms de domaineUne organisation pouvait consulter et modifier la configuration DNS d'un domaine qu'elle avait seulement déclaré, sans en avoir prouvé la propriété. La preuve de propriété est désormais exigée.Corrigé
ÉlevéeConsole d'administrationUn « Administrateur » pouvait réinitialiser le mot de passe d'un compte Root et en prendre le contrôle ; seul un Root dépanne désormais un membre du staff, et jamais un Root depuis la console.Corrigé
ÉlevéeConsole d'administrationBannir un compte ou réinitialiser son mot de passe ne coupait pas ses sessions ouvertes ; elles sont désormais révoquées.Corrigé
ÉlevéeFichiersUne pièce jointe de projet pouvait se faire passer pour une image et exécuter du code dans la session de qui l'ouvrait ; le type d'un fichier est maintenant décidé par le serveur, et tout fichier déposé est servi sans possibilité de script.Corrigé
ÉlevéeAbonnementsChanger d'offre ouvrait un second abonnement sans arrêter le premier, et revenir au plan Gratuit n'arrêtait pas le prélèvement ; une organisation n'a désormais qu'un abonnement, qui est modifié ou arrêté en fin de période.Corrigé
ÉlevéeApplications tiercesUne application tierce pouvait enregistrer une adresse de retour piégée qui exécutait du code sur Capibara au moment du consentement ; seules les adresses https sont désormais acceptées, à l'enregistrement comme à chaque autorisation.Corrigé
ÉlevéeApplications tiercesLes webhooks d'une application installée recevaient les événements d'une organisation (paiements, contacts, et sur option le PDF de la facture et l'identité du client) sans que l'organisation ait accordé l'accès correspondant ; ils sont désormais limités aux données autorisées, vérifiées au moment de chaque envoi, et le lien du PDF expire.Corrigé
ÉlevéeSites publicsEn créant un compte sur le site d'un commerçant avec l'adresse e-mail d'un de ses clients, on pouvait voir ses demandes au support et son adresse postale ; ces informations ne sont plus rattachées à un compte qu'une fois l'adresse e-mail confirmée, et cette confirmation demande aussi le mot de passe du compte.Corrigé
ÉlevéeSites publicsUne requête forgée pouvait faire pointer le lien de réinitialisation du mot de passe d'un compte membre vers un site tiers, alors que l'e-mail partait bien de la vraie adresse du commerçant ; ces liens sont désormais toujours construits sur l'adresse officielle du site.Corrigé
ÉlevéeDroits et rôlesUn gestionnaire pouvait s'attribuer le rôle d'administrateur de son organisation ; on ne peut plus attribuer un rôle plus puissant que le sien, ni agir sur un membre qui a plus de droits que soi.Corrigé
ÉlevéeComptes et connexionUne session ouverte n'était jamais revérifiée : révoquer un appareil, changer ou réinitialiser son mot de passe, ou un bannissement ne coupaient pas l'accès ; ces gestes prennent désormais effet en moins d'une minute.Corrigé
ÉlevéeCloisonnementUn membre suspendu d'une organisation gardait l'accès à ses données ; la suspension est désormais vérifiée à chaque requête, dans l'application comme dans l'API.Corrigé
ÉlevéeComptes et connexionLa limite de tentatives de connexion pouvait être dépassée par des essais simultanés, et ne s'appliquait pas par compte ; chaque tentative est désormais comptée avant vérification, par adresse et par compte.Corrigé
ÉlevéeFichiersLes fichiers déposés par les utilisateurs (pièces jointes du support et des projets, justificatifs, documents RH) n'étaient pas tous servis dans un bac à sable ; ils le sont désormais, avec un type fixé par le serveur : un fichier piégé ouvert dans un onglet ne peut plus agir au nom de la personne qui l'ouvre.Corrigé
ÉlevéeDroits et rôlesUn délégué autorisé à gérer les rôles pouvait créer un rôle portant des droits qu'il n'avait pas (paie, export du fichier client) puis se l'attribuer ; on ne peut plus donner à un rôle ni à un membre plus de droits que les siens.Corrigé
ÉlevéePortail d'entrepriseRéinitialiser le mot de passe d'un utilisateur du portail d'entreprise en remettait le nouveau mot de passe à l'auteur, y compris pour un compte plus puissant que le sien ; c'est désormais refusé, et la réinitialisation coupe les sessions ouvertes.Corrigé
ÉlevéeAbusUne cinquantaine de formulaires publics lisaient le contenu d'une requête en entier avant tout contrôle de taille : un envoi démesuré pouvait saturer la mémoire du service ; la lecture est désormais plafonnée selon la nature du formulaire.Corrigé
ÉlevéePaiementsUn client qui payait par prélèvement SEPA sur la billetterie ou la boutique pouvait voir sa commande annulée, et sa place ou sa marchandise remise en vente, pendant que le prélèvement était en cours ; la réservation est désormais maintenue jusqu'à l'issue du prélèvement, 21 jours au plus.Corrigé
MoyenneMessagerieL'interface d'administration du serveur de messagerie était joignable depuis Internet (protégée par mot de passe). Elle ne l'est plus : seul le service d'auto-configuration des logiciels de messagerie reste public.Corrigé
MoyenneConsole d'administrationTout membre du staff, même en lecture seule, pouvait publier une actualité visible par tous les clients, sans trace ; cette porte a été supprimée.Corrigé
MoyenneDonnées personnellesLa suppression d'une organisation laissait ses index de recherche et une partie de ses données rattachées ; elles sont désormais effacées avec elle.Corrigé
MoyenneNoms de domaineLes domaines personnalisés des clients recevaient un en-tête qui imposait HTTPS à tous leurs sous-domaines, y compris ceux hébergés ailleurs ; cet engagement est désormais réservé aux domaines de Capibara.Corrigé
MoyenneNoms de domaineL'achat de nom de domaine, dont le parcours n'était pas terminé, restait déclenchable par l'API ; il est coupé côté serveur jusqu'à son achèvement.Corrigé
MoyenneNoms de domaineUne valeur par défaut pouvait publier une adresse locale dans la zone DNS du domaine d'un client ; elle est désormais refusée.Corrigé
MoyenneFichiersUne clé de fichier forgée permettait à un salarié de relire des fichiers de son organisation auxquels il n'avait pas droit, comme les pièces RH d'un collègue ; les clés sont désormais validées strictement, et le stockage refuse tout chemin détourné.Corrigé
MoyenneRessources humainesLe calendrier d'équipe révélait le motif des absences des collègues, par exemple un arrêt maladie ; seuls l'intéressé et les RH le voient désormais.Corrigé
MoyenneDocumentsUn lien de partage rapide restait actif après la suppression du document et ne pouvait pas être révoqué ; les nouveaux liens rapides sont révocables, et la corbeille coupe tous les liens.Corrigé
MoyenneRequêtes sortantesLe logo de l'organisation était téléchargé par le serveur sans garde, ce qui ouvrait une sonde du réseau interne et un risque de saturation mémoire ; il est désormais lu directement dans la médiathèque, sans aucune requête réseau.Corrigé
MoyenneComptes et connexionLa connexion avec OPUS pouvait ouvrir un compte Capibara existant sur la seule foi de l'adresse e-mail, sans demander la double authentification ; un compte existant n'est plus jamais rattaché automatiquement, et le code de double authentification est désormais exigé.Corrigé
MoyenneSecrets et jetonsDes jetons de récupération de la double authentification et de vérification d'adresse étaient conservés en clair, et le compte de lecture des tableaux de bord pouvait lire toute la base commune ; seule leur empreinte est conservée, et ce compte ne lit plus que les statistiques agrégées.Corrigé
MoyenneAbusDes requêtes envoyées en rafale pouvaient dépasser les limites de débit ; la décision est désormais atomique.Corrigé
MoyenneAbusLes limites de débit comptaient chaque adresse IPv6 séparément ; elles regroupent désormais les adresses d'un même réseau.Corrigé
MoyenneAbonnementsL'essai gratuit de 14 jours pouvait être rouvert à chaque réabonnement ; il n'est plus offert qu'une fois par organisation et par propriétaire.Corrigé
MoyenneBoutiqueUn code promo à usage limité pouvait être utilisé plusieurs fois par des commandes simultanées ; son usage est désormais réservé de façon atomique.Corrigé
MoyenneBoutiqueLes clés de licence générées par la boutique utilisaient un tirage prévisible ; elles sont désormais tirées de façon cryptographique.Corrigé
MoyenneRéservationsDeux visiteurs pouvaient réserver et payer le même créneau au même instant ; la réservation d'un créneau est désormais exclusive.Corrigé
MoyenneApplications tiercesUne application payante suspendue faute de paiement pouvait être réactivée par une simple mise à jour ; elle ne se réactive plus que par un nouvel achat.Corrigé
MoyenneApplications tiercesLe code d'une application hébergée pouvait joindre toute l'application interne et choisir l'adresse IP vue par les limites de débit ; sa sortie réseau est désormais limitée au seul service prévu, avec des en-têtes reconstruits.Corrigé
MoyenneMessagerieLe secret d'accès au webmail était partagé et permanent, donc un accès pouvait survivre au départ d'une personne ; chaque ouverture reçoit désormais son propre secret, qui expire et qui est révoqué quand la boîte change de mains.Corrigé
MoyenneMessagerieUn ancien écran pouvait afficher une signature HTML non filtrée ; cet écran et l'édition libre de la signature ont été supprimés.Corrigé
MoyenneDocuments partagésLe code à six chiffres d'un document partagé n'était limité qu'adresse IP par adresse IP ; les essais sont désormais comptés par partage, avec un verrouillage temporaire.Corrigé
MoyenneContenus des pagesLe code HTML collé dans un bloc Intégration pouvait s'afficher seul, sous l'adresse de l'application ou le domaine d'un autre client, et servir à imiter une page de connexion ; il ne s'affiche plus que dans son cadre, sur le site de son organisation.Corrigé
MoyenneAbusL'image de partage des sites et les tuiles de carte pouvaient être sollicitées en boucle jusqu'à ralentir le service ; l'image n'est plus recalculée à chaque demande et les tuiles ne sont servies que par petits morceaux.Corrigé
MoyenneIntelligence artificielleUn visiteur anonyme du chat pouvait épuiser le quota d'IA de l'organisation ; l'assistant du chat a désormais ses propres plafonds et n'entame plus la part de l'équipe.Corrigé
MoyenneIntelligence artificielleSeule la question envoyée à l'assistant d'aide était limitée en taille ; toute la requête l'est désormais, avec un plafond par connexion.Corrigé
MoyenneBilletterieUn billet payé dans les dernières minutes du paiement pouvait être encaissé sans être émis ; la réservation dure maintenant plus longtemps que le paiement, le prestataire de paiement est consulté avant de libérer des places, et un paiement tardif émet les billets ou alerte l'organisateur.Corrigé
MoyenneBilletterieUn visiteur pouvait bloquer les places d'un événement en multipliant les réservations ; le nombre de places par adresse e-mail et par connexion est désormais plafonné.Corrigé
MoyenneConstructeur de siteLes codes d'accès du site et des pages protégées étaient transmis en clair à tout membre ayant un accès en lecture au constructeur de site ; ils ne sont plus jamais renvoyés à l'écran.Corrigé
MoyenneOrganisationsN'importe quel membre pouvait lancer un transfert de propriété, et un transfert abouti laissait l'organisation sans propriétaire ; seul le propriétaire peut désormais le lancer, et le destinataire devient bien propriétaire.Corrigé
MoyenneDonnées personnellesLa suppression de compte demandée n'était jamais exécutée ; elle l'est désormais automatiquement à l'issue du délai de 30 jours annoncé.Corrigé
MoyenneAbusLes invitations pouvaient servir à envoyer des e-mails en masse ou à répétition depuis la plateforme ; elles sont désormais limitées en nombre, en fréquence et par les places du forfait.Corrigé
MoyenneComptes et connexionUn code de double authentification pouvait être rejoué ou deviné depuis de nombreuses adresses ; chaque code ne sert plus qu'une fois et les essais sont limités par compte.Corrigé
MoyenneComptes et connexionUne requête interne renvoyait au navigateur des données sensibles du compte ; elle ne renvoie plus que l'identifiant et l'adresse e-mail.Corrigé
MoyenneComptes et connexionUn jeton de connexion par portail d'entreprise ou OPUS pouvait servir plusieurs fois ; il ne sert plus qu'une fois.Corrigé
MoyenneComptabilitéLe justificatif d'une dépense pouvait désigner un autre fichier de l'organisation ; sa référence est désormais vérifiée strictement, à l'enregistrement comme à la lecture.Corrigé
MoyenneCloisonnementUn rôle limité à ses propres contacts voyait ceux de toute l'organisation dans la recherche rapide et via l'assistant ; la recherche applique désormais la même portée que la liste des contacts.Corrigé
MoyennePortail d'entrepriseLes invitations du portail d'entreprise échappaient aux limites des invitations ordinaires (droits, places du forfait, fréquence, volume d'envoi) ; elles y sont désormais soumises.Corrigé
MoyenneDonnées personnellesLes fichiers d'une organisation supprimée conservés sur le stockage objet n'étaient pas effacés, et les suppressions antérieures gardaient des données rattachées ; les fichiers partent désormais avec l'organisation, et une tâche de maintenance termine l'effacement des organisations déjà supprimées.Corrigé
MoyenneAvisQuiconque connaissait l'adresse e-mail d'un acheteur pouvait publier sans modération un avis marqué « Achat vérifié », et apprendre ainsi que cette personne avait acheté le produit ; la mention exige désormais un compte dont l'adresse a été confirmée.Corrigé
MoyenneSites publicsLe code d'une page protégée n'était freiné que par adresse IP ; les essais sont désormais aussi comptés par page, toutes connexions confondues, et le site d'une organisation suspendue ne se déverrouille plus.Corrigé
MoyenneAbusTrois formulaires d'envoi de fichiers chargeaient toute la requête en mémoire avant d'en vérifier la taille ; la lecture est désormais bornée, et la limite de fréquence s'applique avant.Corrigé
MoyenneDocuments partagésUn document partagé publiquement était renvoyé avec le type déclaré au moment de son dépôt ; il part désormais en téléchargement neutre, isolé du site.Corrigé
MoyenneApplications tiercesUn fichier enregistré par une application tierce était servi avec le type choisi par l'application ; ce type est désormais déduit du fichier lui-même, qui est isolé du reste de l'interface.Corrigé
MoyenneBoutiqueUn visiteur pouvait bloquer le stock d'un produit en multipliant les paniers ; le nombre d'unités réservées par connexion est désormais plafonné.Corrigé
MoyenneBilletterieLe filet qui vérifie auprès du prestataire de paiement avant de libérer des places de billetterie ou de formation n'était pas activé ; il l'est désormais.Corrigé
MoyenneBilletterieLe plafond de places réservables par connexion sur la billetterie n'était pas appliqué ; il l'est désormais.Corrigé
MoyenneRéservationsUn paiement de formation ou de réservation effectué dans les dernières minutes pouvait être encaissé alors que la place avait déjà été libérée ; la réservation dure maintenant plus longtemps que le paiement, et le prestataire est consulté avant de libérer.Corrigé
MoyenneCaisseUn paiement au terminal virtuel restait possible 24 heures, y compris après son annulation par le caissier ; il expire au bout de 30 minutes, et l'annulation ferme d'abord le paiement chez le prestataire.Corrigé
MoyenneFacturationUn client qui ouvrait le lien de paiement d'une facture dans deux onglets pouvait la payer deux fois ; le paiement déjà ouvert est désormais réutilisé.Corrigé
MoyennePaiementsLes paiements par prélèvement (SEPA) confirmés quelques jours après la commande n'étaient pas pris en compte ; ils le sont désormais, et un prélèvement en cours ne libère plus la place réservée.Corrigé
MoyennePortail d'entrepriseLa connexion du portail d'entreprise n'avait pas les protections de la connexion principale (limite de tentatives par compte, code de double authentification à usage unique, temps de réponse constant) ; elle les applique désormais.Corrigé
MoyenneAbusSur la plupart des formulaires et pages publics, l'adresse d'un visiteur pouvait être prise dans un en-tête qu'il écrit lui-même, ce qui permettait de contourner les limites anti-abus ; elle est désormais toujours prise dans la valeur posée par le serveur frontal de Capibara, et une adresse IPv6 est comptée par réseau.Corrigé
FaibleBibliothèquesLa bibliothèque d'affichage des cartes avait une faille connue dans une fonction que Capibara n'utilise pas. Elle a été mise à jour vers une version corrigée.Corrigé
FaibleConsole d'administrationUn rôle staff pouvait être donné à un compte dont l'adresse n'était pas vérifiée ; l'adresse doit maintenant l'être.Corrigé
FaibleModérationLa modération pouvait remettre en ligne une organisation suspendue par l'administration (fraude, bannissement) ; l'origine de chaque suspension est désormais enregistrée et respectée.Corrigé
FaibleSupportUn agent support pouvait effacer les sanctions consignées dans le dossier d'un client sans que le contenu soit conservé ; ce retrait exige maintenant le droit de sanctionner et reste tracé.Corrigé
FaibleConsole d'administrationUn « e-mail de test » officiel pouvait partir vers n'importe quelle adresse avec des liens libres ; il ne part plus qu'au staff.Corrigé
FaiblePaiementsL'écran de diagnostic des paiements pouvait afficher la clé secrète Stripe en clair quand son format n'était pas reconnu ; elle est toujours masquée.Corrigé
FaibleConsole d'administrationL'état technique détaillé de la plateforme était visible par les rôles support et modération ; il est réservé aux rôles d'administration technique.Corrigé
FaibleInfrastructureUne route interne de contrôle des certificats répondait au public et écrivait en base à chaque appel ; elle ne sert plus que l'infrastructure, répond pareil à tout refus et n'écrit qu'une fois par domaine.Corrigé
FaibleContenus des pagesLa politique de sécurité du contenu autorisait des scripts de n'importe quel paquet d'un CDN public ; elle est restreinte au seul chemin utilisé, sur la seule page qui en a besoin.Corrigé
FaibleExploitationLa documentation d'exploitation décrivait un changement du secret principal qui aurait rendu illisibles les secrets chiffrés et bloqué les comptes à double authentification ; elle est corrigée.Corrigé
FaibleNoms de domaineUne coupure réseau pendant une commande auprès du registraire pouvait la faire renvoyer ; ces requêtes ne sont plus rejouées et ont un délai d'abandon.Corrigé
FaibleRessources humainesSupprimer un salarié laissait ses pièces RH sur le disque ; elles sont maintenant effacées avec la fiche, comme les justificatifs de frais retirés.Corrigé
FaibleDocumentsLe droit « déposer des fichiers » permettait de remplacer le contenu d'un document existant ; il faut désormais le droit de modification, ou être propriétaire du document.Corrigé
FaibleDocumentsOn pouvait déposer un fichier dans le dossier d'une équipe dont on n'était pas membre ; la visibilité du dossier est maintenant vérifiée.Corrigé
FaibleMédiathèqueLes dossiers personnels ou d'équipe de la médiathèque pouvaient être renommés ou supprimés par d'autres membres ; seuls leur propriétaire, leur équipe ou la modération le peuvent désormais.Corrigé
FaibleMédiathèqueL'import d'images par l'assistant ignorait le quota de la formule et ne bornait pas le téléchargement ; le quota s'applique, et la durée comme la taille sont bornées.Corrigé
FaiblePerformancePlusieurs téléchargements chargeaient tout le fichier en mémoire ; ils sont servis en flux.Corrigé
FaibleComptes et connexionUn lien de connexion OPUS ou du portail d'entreprise pouvait connecter quelqu'un à son insu dans le compte d'un tiers ; le lien OPUS est désormais lié au navigateur qui a fait la connexion, et le portail demande une confirmation qui nomme le compte.Corrigé
FaibleComptes et connexionLes redirections de la connexion OPUS pouvaient repartir en http derrière le serveur mandataire ; elles sont construites sur l'adresse publique.Corrigé
FaibleComptes et connexionDésactiver la double authentification par e-mail ne coupait pas les sessions ouvertes ; elles le sont désormais.Corrigé
FaiblePaiementsUn paiement par prélèvement pouvait activer un achat avant que l'argent soit encaissé ; rien n'est plus accordé avant l'encaissement.Corrigé
FaiblePaiementsLe droit de facturation suffisait à rembourser une commande de billets sans les annuler ; ce remboursement passe désormais uniquement par la billetterie.Corrigé
FaibleFacturation électroniquePour les offres payantes, la facture d'usage de la facturation électronique pouvait partir sans moyen de paiement ; elle est désormais prélevée sur la carte de l'abonnement.Corrigé
FaibleFacturationUne facture annulée pouvait être marquée payée, et un double clic la comptait deux fois ; ce passage est désormais vérifié.Corrigé
FaiblePortail développeursSuspendre un développeur ne coupait pas ses clés d'API ni ses jetons, et un jeton restait valable jusqu'à une heure après la suppression de son client ; les deux sont désormais vérifiés à chaque appel.Corrigé
FaiblePortail développeursLa clé de ligne de commande d'un membre retiré d'une équipe restait utilisable ; elle est révoquée avec lui.Corrigé
FaiblePortail développeursL'adresse d'autorisation OAuth pouvait rediriger vers un site tiers, et renvoyait une erreur serveur sur une adresse mal formée ; elle répond désormais par une erreur, sans redirection, tant que l'application et son adresse ne sont pas vérifiées.Corrigé
FaiblePortail développeursD'autres jetons signés de la plateforme étaient acceptés comme jetons d'API ; chaque jeton porte désormais son usage, vérifié.Corrigé
FaiblePortail développeursUn même code d'autorisation pouvait être échangé deux fois en simultané ; l'échange est désormais atomique.Corrigé
FaiblePortail développeursLes écrans de revue et du portail recevaient les secrets chiffrés des développeurs ; ils ne quittent plus le serveur.Corrigé
FaiblePortail développeursLe webhook Git lisait tous les projets à chaque requête anonyme, sans limite de débit ; la recherche est désormais ciblée et limitée.Corrigé
FaibleMessagerieL'ouverture d'une boîte de la plateforme par l'équipe Capibara n'était pas journalisée ; elle l'est désormais.Corrigé
FaibleMessagerieCréer un alias d'équipe ou une adresse d'envoi pouvait supprimer une boîte existante du même nom ; c'est désormais refusé.Corrigé
FaibleMessagerieUne révocation ou une suppression pouvait s'afficher comme faite alors que le serveur mail ne l'avait pas appliquée ; l'écran n'affiche plus que ce qui est confirmé.Corrigé
FaibleMessagerieLes rebonds des adresses d'envoi par défaut n'étaient pas enregistrés ; ils le sont désormais, et les adresses mortes sont écartées.Corrigé
FaibleMessagerieUn outil de diagnostic de la plateforme était accessible aux administrateurs des organisations ; il est réservé à l'équipe Capibara.Corrigé
FaibleMessagerieDeux envois simultanés pouvaient dépasser ensemble le plafond d'envoi ; le plafond est désormais vérifié de façon atomique.Corrigé
FaibleSites publicsUne même adresse pouvait recevoir en rafale des e-mails de réinitialisation ; un délai par adresse est désormais appliqué.Corrigé
FaibleSupportLe formulaire de réponse au support lisait des envois de taille illimitée avant tout contrôle ; la taille est désormais bornée, et la limite de requêtes s'applique avant la lecture.Corrigé
FaibleCentre d'aideLes votes « article utile » du centre d'aide pouvaient être répétés sans limite ; un seul vote par article et par visiteur est désormais retenu.Corrigé
FaibleDonnées personnellesÀ la suppression d'un compte membre, son nom restait affiché sur ses avis et commentaires ; il est désormais remplacé par « Ancien membre ».Corrigé
FaibleSites publicsSur un site suspendu, la connexion, l'inscription et la réinitialisation des comptes membres restaient possibles ; elles suivent désormais la suspension.Corrigé
FaibleContenus des pagesLe contenu intégré d'une page réservée restait accessible par l'adresse de son cadre ; il applique désormais les mêmes règles d'accès que la page.Corrigé
FaiblePerformanceChaque affichage d'une intégration relisait toutes les pages du site ; seule la page concernée est désormais lue, avec une limite par visiteur.Corrigé
FaibleIntelligence artificielleEn cas d'erreur, l'assistant d'aide affichait le message technique du fournisseur d'IA ; il affiche désormais un message simple.Corrigé
FaibleBoutiqueLa page de confirmation de commande pouvait être rechargée en boucle pour multiplier les appels au prestataire de paiement ; ces appels sont désormais espacés et limités.Corrigé
FaibleNewsletterLa version web des anciennes campagnes de newsletter affichait leur HTML sans filtrage ; elle s'affiche désormais dans un cadre isolé.Corrigé
FaibleMessagerieLe nom d'une organisation n'était pas neutralisé dans les e-mails de transfert de propriété ; il l'est désormais comme partout ailleurs.Corrigé
FaibleAbusUn compte pouvait créer des organisations sans limite ; la création est désormais bornée.Corrigé
FaibleOrganisationsLe message affiché au dernier membre d'une organisation renvoyait vers un écran inexistant ; il oriente désormais vers le support.Corrigé
FaibleDroits et rôlesL'export des données d'une organisation contournait le droit d'exporter le fichier client ; chaque partie de l'export suit désormais le droit qui la protège.Corrigé
FaibleDroits et rôlesDes réglages internes, dont des taux financiers, étaient lisibles par tout membre ; seuls les réglages d'affichage le sont désormais.Corrigé
FaibleExportsDes champs saisis par des visiteurs pouvaient déclencher des formules à l'ouverture d'un export dans un tableur ; ils sont désormais neutralisés.Corrigé
FaibleDonnées personnellesLe droit à l'oubli d'un contact laissait des données personnelles dans son historique et ses inscriptions ; elles sont désormais effacées aussi.Corrigé
FaibleDonnées personnellesDes journaux techniques (connexions, adresses IP) étaient conservés sans limite ; ils sont désormais purgés au bout de 12 mois, comme annoncé.Corrigé
FaibleDonnées personnellesLa durée de conservation du journal d'activité pouvait être réduite à presque rien ; elle ne descend plus sous celle de la formule.Corrigé
FaiblePerformanceL'export des abonnés d'une liste n'avait aucune borne ; il en a désormais une.Corrigé
FaibleSecrets et jetonsL'empreinte stockée d'une invitation pouvait servir de lien à qui lisait la base ; elle est désormais refusée.Corrigé
FaibleSecrets et jetonsLes liens de réinitialisation de mot de passe étaient stockés en clair ; seule leur empreinte est conservée.Corrigé
FaibleComptes et connexionLa vérification du mot de passe actuel n'était pas limitée pour un compte connecté ; elle l'est désormais.Corrigé
FaibleComptes et connexionLe temps de réponse révélait si une adresse avait un compte, et un bannissement se révélait sans mot de passe ; les réponses sont désormais indiscernables.Corrigé
FaibleComptes et connexionUne adresse saisie avec des majuscules à l'inscription empêchait de réinitialiser son mot de passe ; les adresses sont désormais normalisées.Corrigé
FaibleComptes et connexionLes codes de secours de la double authentification étaient tirés de façon non uniforme ; ils le sont désormais.Corrigé
FaibleMédiathèqueUn membre pouvait déposer une image dans le dossier personnel d'un collègue ; un dossier personnel n'accepte plus que les fichiers de son propriétaire.Corrigé
FaibleApplications tiercesL'écran d'autorisation des applications tierces ne revérifiait pas lui-même l'adresse de retour ; il le fait désormais et ne redirige que vers une adresse web, même ouvert directement.Corrigé
FaibleApplications tiercesL'adresse publique qu'une application installée expose aux services extérieurs ne pouvait pas être révoquée ; un administrateur peut désormais la régénérer, et l'ancienne cesse aussitôt de fonctionner.Corrigé
FaibleApplications tiercesL'écran d'installation d'une application pouvait annoncer qu'aucune donnée ne quittait Capibara alors que son éditeur recevait des événements de l'organisation par webhook ; il le dit désormais.Corrigé
FaibleMessagerieLa signature HTML transmise au webmail n'était pas filtrée par le webmail lui-même ; elle l'est désormais avant d'être enregistrée.Corrigé
FaibleDonnées personnellesLe droit à l'oubli d'un contact laissait son nom dans le journal d'activité ; il n'y apparaît plus.Corrigé
FaibleMessagerieLe nom d'une organisation s'affichait mal dans l'objet de certains e-mails ; les objets sont désormais écrits en texte brut.Corrigé
FaibleOrganisationsL'écran des organisations proposait le transfert de propriété à des administrateurs qui ne pouvaient pas le faire, et décrivait mal son effet ; il est réservé au propriétaire et décrit fidèlement.Corrigé
FaibleDonnées personnellesLes formulaires publics conservaient une empreinte réversible de l'adresse IP des visiteurs ; elle n'est plus enregistrée.Corrigé
FaibleExportsUn export CSV réimporté ajoutait une apostrophe devant certaines valeurs à chaque aller-retour ; il redonne désormais les valeurs d'origine.Corrigé
FaiblePortail d'entrepriseUn membre suspendu puis réactivé depuis le portail d'entreprise pouvait rester bloqué ; la réactivation rouvre bien son accès et respecte les places du forfait.Corrigé
FaibleConsole d'administrationLe remboursement forcé depuis la console pouvait viser une commande de billets sans annuler les billets ; il passe désormais par la billetterie de l'organisation.Corrigé
FaibleMarketplaceL'essai gratuit d'une app payante du marketplace pouvait être rouvert à chaque réabonnement ; il n'est plus offert qu'une fois par organisation et par app.Corrigé
FaibleBanqueLa facture mensuelle des comptes bancaires supplémentaires pouvait partir sans moyen de paiement ; elle est désormais prélevée sur la carte de l'abonnement.Corrigé
FaibleAbonnementsUne organisation repassée au plan Gratuit par l'ancien parcours, dont l'abonnement était encore prélevé, n'avait plus de bouton pour l'arrêter ; elle peut désormais le résilier depuis sa page d'abonnement.Corrigé
FaibleRéservationsUne réservation saisie par l'équipe et une réservation en ligne pouvaient occuper le même créneau au même instant ; toute réservation, en ligne ou par l'équipe, réserve désormais le créneau de façon exclusive.Corrigé
FaibleConsole d'administrationCertains outils techniques de la console (métriques, description de l'API) et l'envoi d'images d'actualité étaient ouverts à tout membre du staff ; ils exigent désormais le rôle correspondant.Corrigé
FaibleFacturationFaute d'administrateur, les e-mails de facturation (échec de paiement, facture) pouvaient partir au premier membre venu ; ils ne vont plus qu'au propriétaire ou à un administrateur.Corrigé
FaibleBoutiqueUn gestionnaire de boutique pouvait désigner comme « fichier vendu » un fichier rangé hors du dossier prévu ; seuls les fichiers réellement déposés pour la vente sont acceptés.Corrigé
FaibleIntelligence artificielleLe plafond de réponses de l'assistant IA du chat par connexion n'était pas appliqué ; il l'est désormais.Corrigé
FaibleMarketplaceLes adresses des captures d'écran d'une fiche du marketplace n'étaient vérifiées que dans le navigateur ; elles le sont désormais par le serveur.Corrigé
FaibleSites publicsLors d'un incident de base de données, un site protégé par code ou réservé aux membres pouvait s'afficher comme public ; il affiche désormais une erreur.Corrigé
FaibleCloisonnementUn membre suspendu pouvait encore demander à basculer vers l'organisation dont il était suspendu ; la bascule vérifie désormais que son adhésion est active.Corrigé
FaibleComptes et connexionLes sessions de connexion expirées ou révoquées n'étaient jamais supprimées ; elles sont purgées chaque nuit.Corrigé
FaibleComptes et connexionDésactiver la double authentification ne demandait que le mot de passe ; un code de l'application ou de secours est désormais exigé.Corrigé
FaibleComptes et connexionLa page de connexion affichait « mot de passe incorrect » même quand le compte était temporairement verrouillé ; elle affiche désormais la vraie raison, sans en révéler davantage.Corrigé
FaibleSites publicsSur les sites clients, le temps de réponse de « mot de passe oublié » révélait si une adresse était inscrite ; la réponse est désormais indiscernable.Corrigé
FaibleMessagerieLes accès au webmail abandonnés n'expiraient qu'à la réouverture de la boîte ; ils sont désormais révoqués automatiquement toutes les heures.Corrigé
FaibleMessagerieRetirer un membre d'une équipe ou de l'organisation, ou le suspendre, ne coupait pas son webmail déjà ouvert ; ses sessions sont désormais révoquées immédiatement.Corrigé
FaibleAbusQuand le cache était indisponible, des requêtes envoyées en rafale pouvaient dépasser les limites de débit ; le comptage de secours est désormais sûr.Corrigé
FaibleAbonnementsSuspendre puis réactiver des membres permettait de dépasser le nombre de places du forfait ; la réactivation vérifie désormais les places.Corrigé
FaiblePaiementsQuand un paiement était déjà en cours ou que le prestataire de paiement ne répondait pas, la page de paiement affichait un message générique ; elle explique maintenant la situation.Corrigé
FaiblePaiementsLes remboursements de billets et d'inscriptions à une formation pouvaient passer par un circuit qui n'annulait ni les billets ni l'inscription ; ils ne passent plus que par leur module, qui libère aussi les places.Corrigé
FaibleApplications tiercesLes fichiers déposés par une app étaient lus ou supprimés sur la foi d'un simple début d'adresse ; l'emplacement doit désormais désigner exactement un fichier de cette installation.Corrigé
FaibleComptabilitéL'export groupé des justificatifs de dépenses n'appliquait pas la vérification stricte d'emplacement du téléchargement unitaire ; il l'applique désormais.Corrigé
FaibleComptes et connexionLa liste des sessions actives du compte affichait aussi des sessions déjà expirées ; elle ne montre plus que celles qui donnent encore accès.Corrigé
FaibleRechercheAprès la suppression d'une organisation, la recherche rapide pouvait croire ses index encore remplis ; ce comptage est désormais oublié immédiatement.Corrigé

Ce qui reste à faire

  • Retirer les scripts en ligne de la politique de sécurité du contenu (CSP à nonce).
  • Servir les sites des organisations depuis un domaine distinct de celui de l'application.
  • Rendre la double authentification obligatoire pour l'équipe Capibara.
  • Transmettre l'accès au webmail sans que le mot de passe de la boîte passe par le navigateur.
  • Permettre de changer le secret principal de la plateforme sans interruption.
  • Borner la taille des requêtes sur les derniers formulaires authentifiés et les webhooks.

Ce qui protège vos données au quotidien

Signaler une faille

Écrivez à contact@forgenet.fr en décrivant le chemin suivi. Ne testez jamais sur les données d'une autre organisation que la vôtre, et ne rendez rien public avant la correction. Les coordonnées sont aussi publiées au format standard dans /.well-known/security.txt.

Audit de sécurité · Capibara