Resumo
# Geração de Mensagem de Erro Contendo Informações Sensíveis na Vulnerabilidade do Componente Undertow do Apache Camel
O consumidor do servidor HTTP camel-undertow expõe uma opção `muteException` que controla o que é retornado ao cliente quando ocorre um erro de processamento de rota. Esta opção tinha como padrão `false`, enquanto os outros componentes de servidor HTTP do Camel (camel-http / camel-jetty / camel-servlet e camel-platform-http) têm como padrão `true`. Com `muteException=false`, quando uma requisição dispara uma exceção durante o processamento da rota, o consumidor escreve o rastreamento de pilha (stack trace) completo do `Throwable` no corpo da resposta HTTP como `text/plain`, em vez de retornar um corpo vazio. Qualquer cliente não autenticado que consiga alcançar o endpoint e causar um erro de processamento — por exemplo, enviando um corpo de requisição malformado, um parâmetro inválido ou de outra forma disparando uma falha interna da rota — recebe, portanto, um rastreamento de pilha Java completo. Tal rastreamento de pilha pode divulgar informações internas sensíveis, incluindo credenciais incorporadas em mensagens de exceção, nomes de host internos e endereços IP, caminhos de sistema de arquivos, detalhes de dependências e versões, nomes de bancos de dados e classes, e a estrutura interna da aplicação, que um atacante pode usar para planejar novos ataques. Além disso, para consumidores do Rest DSL, a opção `muteException` não era respeitada de forma alguma: o `RestUndertowHttpBinding` era criado com um valor fixo `false`, então o rastreamento de pilha era retornado mesmo quando `muteException=true` havia sido configurado. Este problema afeta o Apache Camel: de 4.0.0 antes de 4.14.8, de 4.15.0 antes de 4.18.3, de 4.19.0 antes de 4.21.0. Recomenda-se que os usuários atualizem para a versão 4.21.0, que corrige o problema. Se os usuários estiverem no fluxo de versões LTS 4.14.x, sugere-se que atualizem para 4.14.8. Se os usuários estiverem no fluxo de versões 4.18.x, sugere-se que atualizem para 4.18.3. Para implantações que não podem atualizar imediatamente, defina `muteException=true` explicitamente no consumidor camel-undertow (por exemplo, `undertow: http://0.0.0.0:8080/api?muteException=true`, ou globalmente por meio da propriedade `camel.component.undertow.mute-exception=true`), para que erros de processamento não retornem mais o rastreamento de pilha ao cliente; observe que, nas versões afetadas, essa solução alternativa não cobre consumidores do Rest DSL, cujo binding ignora a opção até que a correção seja aplicada.