PT-2024-40174 · Derby · Derby

Publicado

2024-04-17

·

Atualizado

2024-04-17

Nenhuma

Não há classificações de severidade ou métricas disponíveis. Quando houver, atualizaremos as informações correspondentes na página.
Nome do software vulnerável e versões afetadas:
derby (versões afetadas não especificadas)
Descrição:
Um problema de contaminação de protótipo no derby pode causar a falha da aplicação se o autor da aplicação tiver modelos HTML atípicos que insiram entradas do usuário em uma chave de objeto. As chaves de atributos são normalmente controladas pelo desenvolvedor, e não pelo usuário final, o que minimiza o impacto prático para a maioria das aplicações. A função emit() é chamada sem sanitizar a variável this.lastSegment, permitindo que ela seja definida como proto e contamine o protótipo do objeto JavaScript.
Recomendações:
Para resolver este problema, adicione uma verificação em this.lastSegment para impedir o ataque. Modifique a função emit() da seguinte forma:

emit(context: Context, target: T) {

 const node = traverseAndCreate(context.controller, this.segments);

 if (this.lastSegment.includes(‘ proto ’) || this.lastSegment.includes(‘prototype’)) {

  throw new Error(‘Código inseguro detectado’);

 }

 node[this.lastSegment] = target;

 this.addListeners(target, node, this.lastSegment);

}

Prototype Pollution

Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾

Enumeração de Fraquezas

Identificadores relacionados

GHSA-82JV-9WJW-PQH6

Produtos afetados

Derby