interger overflow capa

Integer overflow levando ao heap corrompido enquanto unflattening GraphicBuffer no Android CVE-2015-1474)

Entenda o Integer overflow levando ao heap corrompido enquanto unflattening GraphicBuffer no Android CVE-2015-1474)

#############################################################################

#

#   QIHU 360 SOFTWARE CO. LIMITED http://www.360safe.com/

#

#############################################################################

#

# CVE ID:   CVE-2015-1474

# Produto:   Android

# Fornecedor:   Google

# Assunto:   Integer overflow levando ao heap corrompido enquanto unflattening GraphicBuffer

# Efeito:  Ganhar privilégios ou causar um denail no serviço

# Autor:  Guang Gong

# Data:     11 março 2015

#

#############################################################################

Introdução

Múltiplos integer overflows no GraficBuffer::unflatten em platform/frameworks/native/libs/ui/GraphicBuffer.cpp no Android até o 5.0 permite que atacantes ganhem privilégios ou causem um Denial of Service (memória corrompida) via vetores que ativam um grande número de (1) file descriptors ou (2) valores integer.

Versões do Android afetadas: todas as anteriores ao Lollipop 5.1

Patches

Android Bug id 18076253

Existem dois patches para esta vulnerabilidade, o primeiro está incompleto.

[1]https://android.googlesource.com/platform/frameworks/native/+/e6f7a44e835d320593fa33052f35ea52948ff0b2

[2]https://android.googlesource.com/platform/frameworks/native/+/796aaf7fb160fea12bddc8406d7f006ce811eb43

Descrição

Veja o código vulnerável.

interger overflow

Vetor de ataque

Um aplicativo normal pode corromper o heap do surfaceflinger e system_server através destas vulnerabilidades. Segue abaixo o PoC de como corromper o heap do surfaceflinger.

interger overflow 1

Como corromper o heap no system_server

Coloque um GraphicBuffer modificado no Bundle e o envie para o system_server via setApplicationRestrictions. É a mesma forma do CVE-2014-7911.

O crash backtrace

interger overflow 2

Milestones

interger overflow 3