Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-46558 — Il sottosistema asset V2 di Plane si fidava degli slug degli spazi di lavoro e degli UUID degli asset senza applicare i giusti controlli di appartenenza, consentendo a un utente autenticato di leggere, copiare, eliminare e sovrascrivere asset in altri spazi di lavoro. | Kitploit
Strumenti/GitHubGitHub/0xmrma/cve-2026-46558
Analisi delle VulnerabilitàSfruttamento di Applicazioni WebPenetration TestingPaper e RicercaApprendimento e FormazioneRisorse Curate
GitHub0xmrma/cve-2026-46558

CVE-2026-46558

Il sottosistema asset V2 di Plane si fidava degli slug degli spazi di lavoro e degli UUID degli asset senza applicare i giusti controlli di appartenenza, consentendo a un utente autenticato di leggere, copiare, eliminare e sovrascrivere asset in altri spazi di lavoro.

Vedi Repository
73 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-46558

Il sottosistema asset V2 di Plane si fidava degli slug dei workspace e degli UUID degli asset senza imporre i necessari controlli di appartenenza, consentendo a un utente autenticato di leggere, copiare, eliminare e sovrascrivere asset in altri workspace.

Introduzione

Ho trovato questo problema mentre analizzavo Plane, la piattaforma open-source di project management, con una domanda molto specifica in mente:

Gli endpoint asset V2 impongono effettivamente i confini tra workspace, o si fidano troppo degli slug dei workspace e degli ID degli asset forniti dall'attaccante?

In questo caso, la risposta è stata no.

Il sottosistema asset V2 di Plane esponeva due falle di autorizzazione correlate che rompevano l'isolamento dei workspace per qualsiasi utente autenticato:

  • l'endpoint asset a livello di workspace non imponeva l'appartenenza al workspace di destinazione prima delle operazioni sugli asset
  • il flusso di duplicazione degli asset autorizzava solo il workspace di destinazione e si fidava dell'UUID dell'asset sorgente senza verificare l'accesso al workspace sorgente

Ciò ha reso possibile l'abuso cross-workspace degli asset.

Nel mio PoC validato, un utente normale nel workspace Bravo è stato in grado di:

  • scaricare un asset privato caricato da Alpha
  • duplicare quell'asset nel proprio workspace Bravo
  • eliminare l'asset originale di Alpha
  • sovrascrivere il logo del workspace di Alpha con contenuto controllato dall'attaccante

A quel problema è stato successivamente assegnato CVE-2026-46558.

Plane: Plane su GitHub
CVE: CVE-2026-46558

Questo ha interessato Plane, che sul suo sito ufficiale viene presentato come utilizzato da oltre 50.000 team in tutto il mondo. Plane evidenzia anche una forte adozione open-source, tra cui oltre 46.000 stelle su GitHub e oltre 1.000.000 di pull Docker, e mostra organizzazioni come Tencent, Accenture, Microsoft e Amazon.

photo0

Catena di Attacco

attaccante autenticato nel workspace B → route asset V2 a livello di workspace si fida dello slug del workspace di destinazione e dell'UUID dell'asset senza controlli di appartenenza adeguati → lettura / patch / eliminazione presigned contro gli asset del workspace A + la ricerca dell'asset sorgente nella duplicazione si fida dell'UUID caricato → divulgazione, copia, eliminazione e sovrascrittura del branding cross-workspace


Cosa Fa Plane

Plane è una piattaforma open-source di project management utilizzata per gestire:

  • attività
  • issue
  • sprint
  • documenti
  • triage
  • branding e asset a livello di workspace

Ciò significa che il suo sottosistema asset si trova su un vero confine di fiducia.

La domanda importante qui non era se Plane supporti i caricamenti.

La vera domanda era:

Plane impone l'isolamento dei workspace quando un utente autenticato fa riferimento ad asset di proprietà di un altro workspace?

In questo caso, non lo faceva.


Perché Questo Bug Valeva La Pena Di Essere Esaminato

Molte revisioni di applicazioni multi-tenant si concentrano prima sugli endpoint admin evidenti o sugli aggiornamenti diretti delle impostazioni.

Così facendo si perde una classe di bug molto comune e reale:

accesso a oggetti secondari attraverso sottosistemi di file o asset condivisi

I sistemi di asset sono facili da sbagliare perché spesso combinano:

  • identificatori controllati dall'utente
  • indirezione a livello di storage
  • collegamento di oggetti basato su metadati
  • generazione di URL presigned
  • più tipi di entità dietro una route condivisa

Questo è esattamente il tipo di luogo in cui i confini tra tenant si indeboliscono silenziosamente.

Questo problema non riguardava la corruzione dello storage. Non riguardava S3 in sé. Non riguardava la gestione MIME dei caricamenti.

Era un fallimento del confine di autorizzazione:

  • identificatori controllati dall'attaccante hanno attraversato il confine
  • il server ha risolto oggetti cross-workspace
  • l'autorizzazione era incompleta o mancante
  • azioni privilegiate sugli asset sono comunque riuscite

Questo è sufficiente per creare una vulnerabilità reale.


Il Confine Su Cui Mi Sono Concentrato

Non ho affrontato Plane fuzzando ciecamente endpoint casuali o indovinando UUID senza alcun modello.

L'approccio più solido è stato identificare prima il confine di isolamento più promettente.

Per Plane, quello era il sottosistema asset V2.

Perché?

Perché un sistema di asset condiviso diventa pericoloso quando:

  • esistono più workspace
  • gli oggetti caricati sono referenziati da UUID
  • gli slug dei workspace sono input di route controllati dall'attaccante
  • l'applicazione trasforma poi ricerche riuscite in percorsi di download presigned o mutazione

Quello era il confine giusto da ispezionare.

Ed era esattamente dove viveva il bug.


Causa Principale

Si trattava in realtà di due fallimenti di autorizzazione correlati nello stesso sottosistema.

Causa principale 1: route degli asset del workspace prive di controllo di appartenenza

Le route degli asset a livello di workspace erano esposte attraverso:

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

I gestori vulnerabili erano in:

  • 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

Il problema era semplice.

WorkspaceFileAssetEndpoint accettava uno slug di workspace e un UUID di asset, quindi risolveva direttamente oggetti come:

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

e:

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

senza prima imporre che il chiamante fosse effettivamente un membro autorizzato di quel workspace di destinazione.

Ciò significava che l'endpoint poteva comunque:

  • creare asset
  • finalizzare asset
  • eliminare asset
  • restituire URL di download presigned

per oggetti di un altro workspace.

Causa principale 2: la duplicazione degli asset si fidava dell'UUID dell'asset sorgente

La route di duplicazione degli asset era mappata attraverso:

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

La logica vulnerabile era in:

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

Il workspace di destinazione aveva un decorator di autorizzazione. Ma la ricerca dell'asset sorgente no.

L'oggetto sorgente veniva caricato con:

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

Ciò significava che il chiamante necessitava solo:

  • di un accesso valido al workspace di destinazione
  • di un UUID di asset sorgente che fosse stato caricato

Non c'era alcun controllo che il chiamante appartenesse al workspace sorgente che possedeva effettivamente quell'asset.

Questa è l'intera seconda falla.


Perché Questo È Un Problema Di Sicurezza, Non Solo Una Logica Di Accesso Errata

La distinzione importante è l'impatto cross-workspace.

Molti bug di autorizzazione vengono minimizzati come:

"richiede comunque l'accesso"

Questo manca il punto.

La vera domanda non è:

"Il chiamante è autenticato?"

La vera domanda è:

"Il chiamante è autorizzato per lo specifico workspace e lo specifico asset su cui si sta operando?"

In Plane, la risposta era no.

Ciò trasforma quella che potrebbe sembrare una normale gestione di oggetti in un vero problema di sicurezza multi-tenant.

C'è una chiara differenza tra:

  • accesso autenticato all'interno del proprio workspace
  • e accesso autenticato che attraversa il confine di un altro tenant

Questo problema era saldamente nel secondo caso.


PoC

Scarica lo strumento