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

VetorAV: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

CVE-2024-28867
GHSA-X768-CVR2-345R

Produtos afetados

Swift Prometheus