Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-46558 — Le sous-système d'actifs V2 de Plane faisait confiance aux slugs d'espace de travail et aux UUIDs d'actifs sans appliquer les vérifications d'appartenance appropriées, ce qui permettait à un utilisateur authentifié de lire, copier, supprimer et écraser des actifs dans d'autres espaces de travail. | Kitploit
Outils/GitHubGitHub/0xmrma/cve-2026-46558
Analyse des VulnérabilitésExploitation d'Applications WebTests d'IntrusionArticles et RechercheApprentissage et ÉducationRessources Organisées
GitHub0xmrma/cve-2026-46558

CVE-2026-46558

Voir le dépôt
8il y a 3 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →

À propos

Le sous-système d'actifs V2 de Plane faisait confiance aux slugs d'espace de travail et aux UUIDs d'actifs sans appliquer les vérifications d'appartenance appropriées, ce qui permettait à un utilisateur authentifié de lire, copier, supprimer et écraser des actifs dans d'autres espaces de travail.

Partager

CVE-2026-46558

Le sous-système d'actifs V2 de Plane faisait confiance aux slugs d'espaces de travail et aux UUID d'actifs sans appliquer les vérifications d'appartenance appropriées, ce qui permettait à un utilisateur authentifié de lire, copier, supprimer et écraser des actifs dans d'autres espaces de travail.

Introduction

J'ai découvert ce problème en examinant Plane, la plateforme de gestion de projet open source, avec une question très précise en tête :

Les points de terminaison d'actifs V2 appliquent-ils réellement les limites des espaces de travail, ou font-ils trop confiance aux slugs d'espaces de travail et aux IDs d'actifs fournis par l'attaquant ?

Dans ce cas, la réponse était non.

Le sous-système d'actifs V2 de Plane exposait deux failles d'autorisation liées qui brisaient l'isolation des espaces de travail pour tout utilisateur authentifié :

  • le point de terminaison d'actifs au niveau de l'espace de travail n'appliquait pas l'appartenance à l'espace de travail cible avant les opérations sur les actifs
  • le flux de duplication d'actifs autorisait uniquement l'espace de travail de destination et faisait confiance à l'UUID de l'actif source sans vérifier l'accès à l'espace de travail source

Cela rendait possible l'exploitation abusive des actifs entre espaces de travail.

Dans ma preuve de concept validée, un utilisateur normal dans l'espace de travail Bravo était capable de :

  • télécharger un actif privé téléversé de l'espace Alpha
  • dupliquer cet actif dans son propre espace de travail Bravo
  • supprimer l'actif original d'Alpha
  • écraser le logo de l'espace de travail d'Alpha avec un contenu contrôlé par l'attaquant

Ce problème a ensuite été attribué à CVE-2026-46558.

Plane : Plane sur GitHub
CVE : CVE-2026-46558

Cela affectait Plane, qui sur son site officiel est présenté comme étant utilisé par plus de 50 000 équipes dans le monde. Plane met également en avant une forte adoption open source, avec plus de 46 000 étoiles GitHub et plus d'1 000 000 de téléchargements Docker, et présente des organisations telles que Tencent, Accenture, Microsoft et Amazon.

photo0

Chaîne d'attaque

attaquant authentifié dans l'espace de travail B → la route d'actifs V2 au niveau de l'espace de travail fait confiance au slug de l'espace de travail cible et à l'UUID de l'actif sans vérifications d'appartenance appropriées → lecture / patch / suppression pré-signée contre les actifs de l'espace A + la recherche de source de duplication d'actifs fait confiance à l'UUID source téléversé → divulgation, copie, suppression et écrasement de marque entre espaces de travail


Ce que fait Plane

Plane est une plateforme de gestion de projet open source utilisée pour gérer :

  • les tâches
  • les problèmes
  • les sprints
  • les documents
  • le triage
  • la marque et les actifs au niveau de l'espace de travail

Cela signifie que son sous-système d'actifs se trouve sur une véritable frontière de confiance.

La question importante ici n'était pas de savoir si Plane prend en charge les téléversements.

La vraie question était :

Plane applique-t-il l'isolation des espaces de travail lorsqu'un utilisateur authentifié fait référence à des actifs appartenant à un autre espace de travail ?

Dans ce cas, ce n'était pas le cas.


Pourquoi ce bug méritait d'être examiné

Beaucoup de revues d'applications multi-locataires se concentrent d'abord sur les points de terminaison d'administration évidents ou les mises à jour directes des paramètres.

Cela passe à côté d'une classe de bugs très courante et très réelle :

l'accès secondaire aux objets via des sous-systèmes de fichiers ou d'actifs partagés

Les systèmes d'actifs sont faciles à mal faire car ils combinent souvent :

  • des identifiants contrôlés par l'utilisateur
  • une indirection au niveau du stockage
  • une liaison d'objets basée sur les métadonnées
  • la génération d'URL pré-signées
  • plusieurs types d'entités derrière une route partagée

C'est exactement le genre d'endroit où les limites des locataires s'affaiblissent silencieusement.

Ce problème n'était pas lié à la corruption du stockage. Il ne s'agissait pas de S3 lui-même. Il ne s'agissait pas du traitement MIME des téléversements.

C'était une défaillance de la frontière d'autorisation :

  • des identifiants contrôlés par l'attaquant ont franchi la frontière
  • le serveur a résolu des objets d'espaces de travail croisés
  • l'autorisation était incomplète ou absente
  • des actions privilégiées sur les actifs ont tout de même réussi

C'est suffisant pour créer une véritable vulnérabilité.


La frontière sur laquelle je me suis concentré

Je n'ai pas abordé Plane en fuzzing aveuglément des points de terminaison aléatoires ou en devinant des UUID sans modèle.

L'approche la plus solide était d'identifier d'abord la frontière d'isolation la plus prometteuse.

Pour Plane, c'était le sous-système d'actifs V2.

Pourquoi ?

Parce qu'un système d'actifs partagé devient dangereux lorsque :

  • plusieurs espaces de travail existent
  • les objets téléversés sont référencés par UUID
  • les slugs d'espaces de travail sont des entrées de route contrôlées par l'attaquant
  • l'application transforme ensuite des recherches réussies en chemins de téléchargement ou de mutation pré-signés

C'était la bonne frontière à inspecter.

Et c'était exactement là où vivait le bug.


Cause profonde

Il s'agissait en réalité de deux défaillances d'autorisation liées dans le même sous-système.

Cause profonde 1 : routes d'actifs d'espace de travail sans application de l'appartenance

Les routes d'actifs au niveau de l'espace de travail étaient exposées via :

  • apps/api/plane/app/urls/asset.py:50-56

Les gestionnaires vulnérables se trouvaient dans :

  • apps/api/plane/app/views/asset/v2.py:314
  • apps/api/plane/app/views/asset/v2.py:379
  • apps/api/plane/app/views/asset/v2.py:400
  • apps/api/plane/app/views/asset/v2.py:409

Le problème était simple.

WorkspaceFileAssetEndpoint acceptait un slug d'espace de travail et un UUID d'actif, puis résolvait directement des objets comme :

workspace = Workspace.objects.get(slug=slug)

et :

asset = FileAsset.objects.get(id=asset_id, workspace__slug=slug)

sans d'abord appliquer que l'appelant était effectivement un membre autorisé de cet espace de travail cible.

Cela signifiait que le point de terminaison pouvait encore :

  • créer des actifs
  • finaliser des actifs
  • supprimer des actifs
  • renvoyer des URL de téléchargement pré-signées

pour les objets d'un autre espace de travail.

Cause profonde 2 : duplication d'actifs faisant confiance à l'UUID source

La route de duplication d'actifs était mappée via :

  • apps/api/plane/app/urls/asset.py:100-101

La logique vulnérable se trouvait dans :

  • apps/api/plane/app/views/asset/v2.py:736-780

L'espace de travail de destination avait un décorateur d'autorisation. Mais la recherche de l'actif source n'en avait pas.

L'objet source était chargé avec :

original_asset = FileAsset.objects.filter(id=asset_id, is_uploaded=True).first()

Cela signifiait que l'appelant avait seulement besoin :

  • d'un accès valide à l'espace de travail de destination
  • d'un UUID d'actif source qui avait été téléversé

Il n'y avait aucune vérification que l'appelant appartenait à l'espace de travail source propriétaire de cet actif.

C'est tout le second bug.


Pourquoi c'est un problème de sécurité, pas juste une logique d'accès défaillante

La distinction importante est l'impact entre espaces de travail.

Beaucoup de bugs d'autorisation sont minimisés comme :

"il nécessite quand même une connexion"

Cela passe à côté du sujet.

Télécharger l’outil