PT-2024-22616 · Unknown · Swift Prometheus
Jonas Dörr
·
Publicado
2024-03-29
·
Atualizado
2024-04-01
·
CVE-2024-28867
CVSS v3.1
7.4
Alta
| Vetor | AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:H |
Nome do software vulnerável e versões afetadas
Versões do Swift Prometheus anteriores à 2.0.0-alpha.2
Descrição
O problema ocorre quando valores de string não sanitizados são utilizados em nomes de métricas ou rótulos, permitindo que um invasor envie um parâmetro de consulta
?lang contendo quebras de linha, } ou caracteres semelhantes. Isso pode levar o invasor a assumir o controle do formato exportado, incluindo a criação de um número ilimitado de métricas armazenadas, o aumento do uso de memória do servidor ou a geração de métricas “falsas”. Os desenvolvedores devem validar as entradas do usuário antes de usá-las como nomes de métricas, nomes de rótulos ou valores para evitar tais ataques.Recomendações
Para versões anteriores à 2.0.0-alpha.2, atualize para a versão 2.0.0-alpha.2 ou posterior para corrigir a vulnerabilidade. Como solução alternativa temporária, considere validar valores de rótulos e nomes de métricas para evitar entradas maliciosas. Os desenvolvedores podem configurar o
PrometheusSanitizer para aplicar uma lógica de validação personalizada. Por exemplo, crie um sanitizador personalizado:swift
let mySanitizer = PrometheusSanitizer { metricName, labels in
// ... sua lógica aqui ...
(metricName, labels)
}
Em seguida, use esse sanitizador ao criar um
PrometheusCollectorRegistry:swift
let registry = PrometheusCollectorRegistry(sanitizer: mySanitizer)
Exploit
Correção
Special Elements Injection
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Swift Prometheus