Skip to content
KitploitKITPLOIT
FerramentasBlog
Log in
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
Cluster-Chaos-Exploiting-CVE-2025-59359-for-Kubernetes-Takeover — Uma análise forense prática da CVE-2025-59359, uma falha crítica de injeção de comandos do sistema operacional no Chaos-Mesh. Aprenda como invasores sequestram clusters Kubernetes por meio de mutações GraphQL e como detectar, analisar e relatar a violação usando ELK. | Kitploit
Ferramentas/GitHubGitHub/mrk336/cluster-chaos-exploiting-cve-2025-59359-for-kubernetes-takeover
Escalada de PrivilégiosSegurança de ContêineresAnálise de VulnerabilidadesExploraçãoMovimento LateralAnálise ForenseSegurança na NuvemComando e ControleAprendizado e Educação

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
Resposta a Incidentes
Análise de Logs
GitHubmrk336/cluster-chaos-exploiting-cve-2025-59359-for-kubernetes-takeover

Cluster-Chaos-Exploiting-CVE-2025-59359-for-Kubernetes-Takeover

Uma análise forense prática da CVE-2025-59359, uma falha crítica de injeção de comandos do sistema operacional no Chaos-Mesh. Aprenda como invasores sequestram clusters Kubernetes por meio de mutações GraphQL e como detectar, analisar e relatar a violação usando ELK.

Ver Repositório
13há 1 anoAinda não revisado

Cluster-Chaos-Exploiting-CVE-2025-59359-for-Kubernetes-Takeover

Um guia forense prático da CVE-2025-59359, uma falha crítica de injeção de comandos do sistema operacional no Chaos-Mesh. Aprenda como atacantes sequestram clusters Kubernetes por meio de mutações GraphQL e como detectar, analisar e reportar a violação usando ELK.

Por Mark Mallia


Resumo Executivo

A CVE-2025-59359 expõe uma falha crítica de injeção de comandos do sistema operacional no Controller Manager do Chaos-Mesh. Essa vulnerabilidade permite que atacantes executem comandos shell arbitrários nos pods do Kubernetes, o que pode levar ao comprometimento total do cluster. Este artigo simula o exploit, mapeia sua pegada forense e descreve estratégias de detecção e mitigação relevantes tanto para equipes técnicas quanto para stakeholders executivos.


Por Que Esta CVE se Destaca

No mundo em constante evolução da segurança do Kubernetes, a CVE-2025-59359 se destaca como um alerta contundente de como uma única entrada negligenciada pode desmoronar um cluster inteiro. Essa vulnerabilidade crítica (CVSS 9.8) afeta o Controller Manager do Chaos-Mesh, onde parâmetros fornecidos pelo usuário são concatenados de forma imprudente em comandos shell, sem verificações nem sanitização. O resultado? Um atacante não autenticado dentro do cluster pode executar comandos arbitrários nos pods, obtendo controle total com uma facilidade alarmante. É um caso clássico de escalada de privilégios por meio de injeção de comandos e um exemplo poderoso de por que os princípios de codificação segura em ambientes cloud-native são importantes.


Análise Técnica

A falha existe dentro da mutação cleanTcs. Essa mutação limpa as configurações de controle de tráfego (TC) do Linux após experimentos de caos e aceita parâmetros fornecidos pelo usuário nas especificações do experimento.
Quando um atacante fornece um valor malicioso para esses parâmetros, o comando shell resultante é construído por concatenação de strings. Nenhuma verificação defensiva é realizada antes de esse comando ser executado com privilégios do Controller Manager—o que significa que um usuário não autenticado pode injetar comandos arbitrários em qualquer pod ou namespace controlado pelo cluster.

Abaixo está um trecho do código-fonte da mutação (exibido no contexto de sua implementação em Go).

// cleanTcsMutation.go
func executeCleanTcs(ctx context.Context, payload Payload) error {
    // Build command string using user input directly
    cmd := fmt.Sprintf(
        "tc qdisc add dev %s root handle 1: htb rate %s ceil %s",
        payload.Device,
        payload.Rate,
        payload.Ceil,
    )
    log.Debugf("Running command: %s", cmd)
    if err := ctx.RunCommand(cmd); err != nil {
        return fmt.Errorf("tc clean mutation failed: %w", err)
    }
    return nil
}
  • A mutação aceita três parâmetros—Device, Rate e Ceil.
  • Eles são concatenados na string do comando sem nenhuma etapa de sanitização.
  • A chamada shell resultante é executada com os privilégios do Chaos Controller Manager, que normalmente tem acesso a todos os pods em todos os namespaces.

Como um Atacante Pode Explorá-la

Imagine um cluster Kubernetes executando o Chaos-Mesh, onde um atacante cria uma especificação de experimento aparentemente inofensiva. Mas, em vez de ajustar o controle de tráfego, ele insere um payload como ; rm -rf /tmp em campos como Device, Rate ou Ceil. Depois de enviado pela UI ou API, a mutação constrói e executa o comando às cegas—sem sanitização, sem salvaguardas. E, como é executado com privilégios do controller-manager, o código injetado se espalha pelos pods como fogo. Pior ainda: se o atacante também explorar a CVE-2025-59358 para acessar o endpoint GraphQL sem autenticação, ele nem precisa de credenciais.

Se explorada em produção, a CVE-2025-59359 pode permitir que atacantes interrompam serviços, acessem workloads sensíveis e façam pivot entre namespaces—representando um risco material para a continuidade dos negócios e a conformidade regulatória. Organizações que usam o Chaos-Mesh devem priorizar a aplicação de patches, a aplicação de RBAC e a auditoria do endpoint GraphQL.


Mapeamento MITRE ATT&CK

TáticaTécnica
ExecuçãoT1059 – Command and Scripting Interpreter
Escalação de PrivilégiosT1068 – Exploitation for Privilege Escalation
Movimento LateralT1021 – Remote Services
ImpactoT1499 – Endpoint Denial of Service

Estratégias de Detecção

  • Ação Imediata: Revise sua política em relação ao tratamento de entradas do usuário na mutação cleanTcs.
  • Recomendação de Mitigação: Adicione uma etapa de sanitização antes de construir a string do comando shell ou mude para uma consulta parametrizada que evite totalmente a concatenação.
  • Plano de Longo Prazo: Considere implementar controles de acesso baseados em funções (RBAC) para o Chaos Controller Manager, de modo que apenas usuários autorizados possam enviar especificações de experimentos.

Configuração do Pipeline Logstash

Crie um arquivo logstash-tcs.conf no diretório de configuração do Logstash.


input {
  beats {
    port => 5044
    codec => "json"
  }
}

filter {
  # The Python script will be referenced here.
  python {
    code => "/opt/elk/python/process_tcs.py"
    add_field => { "[tcs]" => "%{[message][device]}-%{[message][rate]}-%{[message][ceil]}" }
  }
}

output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "chaos-tcs"
    document_type => "experiment"
    codec => "json"
  }
}

Script de Filtro Python – process_tcs.py

#!/usr/bin/python3

def process(event):
    """
    Transforms the raw event from Logstash into a JSON document suitable for Elasticsearch.
    Expected input format (example):

      {
        "message": {
          "device": "eth0",
          "rate":   "100mbit/s",
          "ceil":   "200mbit/s",
          "timestamp": "2025‑09‑18T14:33:00Z"
        }
      }

    The script extracts the three key values, normalises them and returns a dictionary.
    """
    # 1. Grab nested fields
    device = event.get("message", {}).get("device", "")
    rate   = event.get("message", {}).get("rate", "")
    ceil   = event.get("message", {}).get("ceil", "")

    # 2. Normalise numeric values – remove unit suffixes and cast to float.
    def strip_unit(val, unit):
        return float(val.replace(unit, "").strip())

    rate_val = strip_unit(rate, "mbit/s")
    ceil_val = strip_unit(ceil, "mbit/s")

    # 3. Build output dict
    result = {
        "device": device,
        "rate_mbit_s": rate_val,
        "ceil_mbit_s": ceil_val,
        "ts": event.get("message", {}).get("timestamp", ""),
        "tcs_id": f"{device}-{rate_val}-{ceil_val}"
    }

    # 4. Return the dict
    return result

Mapeamento do Índice Elasticsearch

Crie um arquivo de mapeamento chaos-tcs-mapping.json:

{
  "mappings": {
    "_doc": {
      "properties": {
        "device":      { "type": "keyword" },
        "rate_mbit_s":{ "type":"float"   },
        "ceil_mbit_s":{ "type":"float"   },
        "ts":          { "type":"date",  "format":"yyyy-MM-dd'T'HH:mm:ssZ"},
        "tcs_id":      { "type":"keyword" }
      }
    }
  }
}

Dashboard Kibana – “Visão Geral da Injeção de Comandos”

Baixar ferramenta