Skip to content
KitploitKITPLOIT
StrumentiBlog
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-27621 — CVE-2026-27621 - Il core di TypiCMS presenta una vulnerabilità di Cross-Site Scripting (XSS) memorizzato tramite caricamento di file SVG. | Kitploit
Strumenti/GitHubGitHub/lukasz-rybak/cve-2026-27621
Analisi delle VulnerabilitàSfruttamento di Applicazioni WebSicurezza WebPaper e RicercaApprendimento e Formazione
GitHublukasz-rybak/cve-2026-27621

CVE-2026-27621

CVE-2026-27621 - Il core di TypiCMS presenta una vulnerabilità di Cross-Site Scripting (XSS) memorizzato tramite caricamento di file SVG.

Vedi Repository
15 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-27621: TypiCMS Core presenta Cross-Site Scripting (XSS) Memorizzato tramite Caricamento File SVG

Panoramica

CampoDettagli
ID CVECVE-2026-27621
GravitàMEDIA
AdvisoryVisualizza Advisory
Scoperto daLukasz Rybak

Prodotti Interessati

  • typicms/core (versioni: < 16.1.7)

Classificazione CWE

  • CWE-79: Neutralizzazione impropria dell'input durante la generazione di pagine web ('Cross-site Scripting')

Dettagli

I. Riepilogo

Nel modulo di caricamento file di TypiCMS esiste una vulnerabilità di Cross-Site Scripting (XSS) Memorizzato. L'applicazione consente agli utenti con permessi di caricamento file di caricare file SVG. Sebbene sia presente una validazione del tipo MIME, il contenuto del file SVG non viene sanificato. Un attaccante può caricare un file SVG appositamente predisposto contenente codice JavaScript malevolo. Quando un altro utente (come un amministratore) visualizza o accede a questo file tramite l'applicazione, lo script viene eseguito nel suo browser, portando alla compromissione della sessione dell'utente.

Il problema è aggravato da un bug nella logica di parsing SVG, che può causare un errore 500 se l'SVG caricato non contiene un attributo viewBox. Tuttavia, questo non mitiga la vulnerabilità XSS, poiché un attaccante può facilmente includere un attributo viewBox valido nel proprio payload malevolo.

II. Dettagli della Vulnerabilità

  • Tipo di Vulnerabilità: Cross-Site Scripting (XSS) Memorizzato (CWE-79)
  • Componente Interessato: TypiCMS\Modules\Core\Http\Requests\FileFormRequest.php e TypiCMS\Modules\Core\Services\FileUploader.php.
  • Versioni Interessate: <= 16.0.5

La vulnerabilità deriva da due punti principali:

  1. Validazione permissiva dei file: Il FileFormRequest inserisce esplicitamente svg nella whitelist dei tipi MIME consentiti per il caricamento.
  2. Mancanza di sanificazione del contenuto: Il servizio FileUploader salva il file SVG sul server senza analizzarne e sanificarne il contenuto per rimuovere elementi potenzialmente malevoli come i tag <script> o i gestori di eventi on*.

Quando il disco del filesystem predefinito è impostato su public, il file SVG caricato viene archiviato in una directory accessibile pubblicamente, rendendo banale l'accesso al file tramite un URL diretto e l'attivazione del payload XSS.

III. Prova di Concetto (PoC)

  1. Creare un file SVG malevolo: Creare un file denominato malicious.svg con il seguente contenuto. L'attributo viewBox è incluso per bypassare il bug di parsing dell'applicazione.

    root@kitploit:~
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
        <script>
            // A simple PoC to demonstrate the vulnerability
            alert('XSS in TypiCMS! Your session cookie is: ' + document.cookie);
        </script>
        <text x="10" y="50">If you see this, the script has run.</text>
    </svg>
    
  2. Caricare il file malevolo:

    • Accedere al pannello di amministrazione di TypiCMS come utente con permessi per caricare file.
    • Navigare al modulo "Files" (ad es., /admin/files).
    • Caricare il file malicious.svg. L'applicazione accetterà il file e lo archivierà. image
image
  1. Attivare l'XSS:
    • L'applicazione fornirà un URL pubblico per il file caricato, tipicamente nel formato http://<your-site>/storage/files/malicious.svg.
    • Chiunque navighi su questo URL vedrà eseguire il JavaScript incorporato nel proprio browser.
    • Un attaccante può inviare questo link a un utente privilegiato (ad es., un amministratore). Quando l'amministratore fa clic sul link, i cookie di sessione possono essere rubati, oppure l'attaccante può eseguire azioni per suo conto.
image
image

IV. Impatto

Lo sfruttamento riuscito di questa vulnerabilità consente a un attaccante di eseguire JavaScript arbitrario nel contesto del browser della vittima. Sebbene l'uso del flag HttpOnly sui cookie di sessione impedisca il furto diretto dell'ID di sessione tramite document.cookie, l'attaccante può comunque ottenere la compromissione completa dell'account della vittima eseguendo azioni per suo conto.

L'impatto include:

  • Compromissione dell'Account tramite Falsificazione di Azioni: Lo script dell'attaccante può effettuare richieste autenticate all'API dell'applicazione dal browser della vittima. Ciò consente all'attaccante di eseguire qualsiasi azione che la vittima è autorizzata a compiere, come:

    • Creare un nuovo account amministratore per l'attaccante.
    • Modificare l'indirizzo email e la password della vittima.
    • Eliminare o modificare tutti i contenuti, gli utenti e le impostazioni.
  • Divulgazione di Informazioni Sensibili: Lo script può leggere il contenuto di qualsiasi pagina visualizzata dalla vittima all'interno del pannello di amministrazione. Ciò include elenchi di utenti (con nomi ed email), impostazioni private dell'applicazione e altri dati sensibili, che possono poi essere esfiltrati verso un server controllato dall'attaccante.

  • Phishing e Ingegneria Sociale: Lo script può manipolare l'interfaccia del pannello di amministrazione per visualizzare moduli di login falsi, inducendo l'utente a reinserire le proprie credenziali, oppure reindirizzarlo a un sito web malevolo.

  • Registrazione dei tasti premuti: Lo script può catturare qualsiasi informazione che la vittima digita nei moduli della pagina compromessa.

Poiché l'attaccante può eseguire qualsiasi azione come amministratore autenticato, questa vulnerabilità porta effettivamente a una compromissione completa dell'applicazione, anche senza accesso diretto al cookie di sessione. Il rischio è Alto.

V. Patch e Mitigazioni Consigliate

Si consiglia di applicare un approccio di difesa in profondità per mitigare questa vulnerabilità.

  1. Correzione primaria: Sanificare il contenuto SVG: La soluzione più robusta è sanificare i file SVG al momento del caricamento. Prima di salvare il file, è necessario analizzarlo per rimuovere tutti gli elementi potenzialmente pericolosi, inclusi i tag <script>, <style>, <foreignObject> e tutti gli attributi di evento on*. Ciò può essere ottenuto utilizzando una libreria dedicata alla sanificazione SVG.

  2. Correzione secondaria: Disabilitare i caricamenti SVG: Se i caricamenti SVG non sono una funzionalità critica per l'applicazione, la soluzione più semplice e sicura è disabilitarli completamente. Ciò può essere fatto rimuovendo 'svg' dall'elenco dei tipi MIME consentiti in TypiCMS\Modules\Core\Http\Requests\FileFormRequest.php.

    root@kitploit:~
    // In FileFormRequest.php
    // BEFORE:
    $fileRule = 'mimes:jpeg,gif,png,...,svg,...|max:...';
    
    // AFTER:
    $fileRule = 'mimes:jpeg,gif,png,...,pdf,...|max:...'; // Removed 'svg'
    
  3. Hardening - Content-Security-Policy (CSP): Implementare un'intestazione Content-Security-Policy (CSP) rigorosa per l'applicazione. Una CSP ben configurata può impedire l'esecuzione di script inline, mitigando l'impatto di questa vulnerabilità XSS.

  4. Hardening - Servire i Contenuti Utente da un Dominio Separato: Servire tutti i file caricati dagli utenti da un dominio separato e senza cookie. Questa è una misura di sicurezza altamente efficace che isola i contenuti generati dagli utenti dall'applicazione principale, impedendo agli script di accedere ai cookie di sessione o di interagire con il DOM dell'applicazione.

Riferimenti

  • https://github.com/TypiCMS/Core/security/advisories/GHSA-xfvg-8v67-j7wp
  • https://nvd.nist.gov/vuln/detail/CVE-2026-27621
  • https://github.com/TypiCMS/Core/commit/d480a0be1e8e7c0600bb9a325bb11920ee66497d
  • https://github.com/advisories/GHSA-xfvg-8v67-j7wp

Disclaimer

Questa CVE è stata divulgata in modo responsabile seguendo le pratiche di divulgazione coordinata delle vulnerabilità. Le informazioni qui fornite hanno esclusivamente finalità educative e difensive.

Scarica lo strumento