detalhes de uma vulnerabilidade crítica () no manipulador SLIRP, utilizado por padrão no QEMU para estabelecer uma conexão entre o adaptador de rede virtual no sistema convidado e o backend de rede no lado do QEMU. O problema também afeta sistemas de virtualização baseados em KVM (no modo ) e Virtualbox, que utilizam o backend slirp do QEMU, bem como aplicativos que utilizam a pilha de rede em espaço de usuário (emulador TCP/IP).
A vulnerabilidade permite a execução de código na máquina hospedando, com os direitos do processo de manipulador QEMU, ao enviar do sistema convidado um pacote de rede especialmente formatado e muito grande, que requer fragmentação. Devido a um erro na função ip_reass(), chamada ao reassemblar pacotes recebidos, o primeiro fragmento pode não caber no buffer alocado, e seu final será gravado em áreas de memória subsequentes ao buffer.
Para testar já um protótipo funcional de exploit, que prevê a contornagem de ASLR e a execução de código através da sobrescrição da memória do array main_loop_tlg, que inclui a lista QEMUTimerList com manipuladores chamados por timer.
A vulnerabilidade já foi corrigida em e , mas permanece não corrigida em , e . No e o problema não se manifesta devido à não utilização do slirp. A vulnerabilidade continua não corrigida na última versão de (a correção está disponível como ).
Fonte: opennet.ru
