Jonas Dörr

#37953de 53,635
7.4CVSS total
Vulnerabilidades · 1
PT-2024-22616
7.4
2024-03-29
Unknown · Swift Prometheus · CVE-2024-28867
**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) ```