Contornando o PolymorphicTypeValidator no jackson-databind
Técnicas e Métodos de Ataque2026-11-06, 07:16
A vulnerabilidade CVE-2026-110879 é uma correção incompleta para o problema anterior CVE-2026-54512 na biblioteca jackson-databind.
O ataque explora um erro lógico na validação de tipos: o validador verifica a classe externa, mas não valida as classes especificadas em seus argumentos de tipo genérico ou como tipos de elementos de array. Como resultado, um atacante pode instanciar uma classe arbitrária que teria sido rejeitada se especificada diretamente.
Como funciona
- Ponto de entrada: A vulnerabilidade pode ser acionada quando uma aplicação desserializa JSON em objetos com base em nomes de classe — seja por meio da anotação
@JsonTypeInfo(use = Id.CLASS)ou quando a tipagem padrão está habilitada. - Bug no código: O método
DatabindContext._resolveAndValidateGeneric()verifica a classe externa em relação ao tipo base declarado e então passa os argumentos do ID de tipo de nome de classe para_validateTypeParameter(). Esse método valida cada argumento em relação ao tipo base externo, em vez de impor seu tipo genérico declarado correspondente. - Contornando o validador: Como resultado, uma classe perigosa pode ser passada «sob o disfarce» de outro tipo, contornando as verificações do validador. Se a regra
allowIfBaseType(...)aprovar o tipo externo, o Jackson substitui o validador configurado porLaissezFaireSubTypeValidator, que permite todos os subtipos.
Vulnerabilidades
Pesquisadores
Fornecedor
Produto