Freerdp · Freerdp · CVE-2026-26965
**Nome do Software Vulnerável e Versões Afetadas**
Versões do FreeRDP anteriores à 3.23.0
**Descrição**
O FreeRDP é uma implementação gratuita do Protocolo de Área de Trabalho Remota. Existe uma falha no caminho de decodificação planar RLE dentro da função `planar decompress plane rle()`, onde é realizada a escrita em memória sem verificação adequada dos limites. Especificamente, é realizada a escrita em `pDstData` no endereço `((nYDst+y) * nDstStep) + (4*nXDst) + nChannel` sem verificar se `(nYDst+nSrcHeight)` cabe dentro da altura de destino ou se `(nXDst+nSrcWidth)` cabe dentro do stride de destino. Quando `TempFormat` não é igual a `DstFormat`, `pDstData` se torna `planar->pTempData`, e `nYDst` é validado apenas em relação à superfície por meio da função `is within surface()`. Um servidor RDP malicioso pode explorar isso para realizar uma escrita fora dos limites do heap com deslocamento e dados de pixel controlados pelo atacante em qualquer cliente FreeRDP que se conecte. A escrita fora dos limites pode alcançar até 132.096 bytes além do final do buffer temporário. Na heap brk, o ponteiro de função `decode` dentro de uma struct `NSC CONTEXT` adjacente pode ser sobrescrito com dados de pixel controlados pelo atacante, resultando em corrupção do fluxo de controle.
**Recomendações**
Versões do FreeRDP anteriores à 3.23.0 devem ser atualizadas para a versão 3.23.0 ou posterior.