Pplware

O Android tem um problema sério

A descoberta do Stagefright e da forma simples como é possível atacar a quase totalidade dos equipamentos Android deixou a Internet e os utilizadores destes dispositivos alertados.

A Google e os fabricantes foram rápidos a reagir ao problema, com a disponibilização de uma correcção, mas afinal a solução pode não resolver nada e o problema ainda persistir.

Tudo parecia indicar que o problema do Stagefright ficaria resolvido de forma simples, com a Google e os fabricantes a lançarem actualizações de segurança a um ritmo que estava a espantar todos e a fazer ver que quando era necessário as marcas resolvem as situações problemáticas do Android.

Poucos dias depois de surgir o problema do Stagefright a Google conseguiu criar uma correcção que iria tratar desta situação, tendo-a passado de imediato para os fabricantes.

Aproveitando esta necessidade, as marcas e a Google comprometeram-se a lançar actualizações de segurança mensais, que iriam tratar de novas situações, garantindo assim ao Android uma melhor qualidade a este nível.

Com estas actualizações a serem lançadas, para já apenas para os Nexus, mas programadas para muito breve em fabricantes como a Samsung ou a LG, surge agora a notícia de que afinal o Stagefright não está totalmente corrigido e que ainda pode ser explorado.

Fix integer overflow when handling MPEG4 tx3g atom
  
When the sum of the 'size' and 'chunk_size' variables is larger than 2^32,
an integer overflow occurs. Using the result value to allocate memory
leads to an undersized buffer allocation and later a potentially
exploitable heap corruption condition. Ensure that integer overflow does
not occur.
 
Bug: 20923261
Change-Id: Id050a36b33196864bdd98b5ea24241f95a0b5d1f
diff --git a/media/libstagefright/MPEG4Extractor.cpp b/media/libstagefright/MPEG4Extractor.cpp
index 8e47fda..ab1dade 100644
--- a/media/libstagefright/MPEG4Extractor.cpp
+++ b/media/libstagefright/MPEG4Extractor.cpp
@@ -1897,6 +1897,10 @@
                size = 0;
            }
+           if (SIZE_MAX - chunk_size <= size) {
+               return ERROR_MALFORMED;
+           }
+
            uint8_t *buffer = new (std::nothrow) uint8_t[size + chunk_size];
            if (buffer == NULL) {
                return ERROR_MALFORMED;

Aparentemente as 4 linhas de código que a Google adicionou ao Android, na forma de um patch, para resolver uma das falhas do Stagefright não são suficientes e, segundo investigadores da Exodus Intelligence, esta falha pode ainda ser usada para conseguir executar código malicioso dentro do Android.

Para testar que a falha ainda estava presente os investigadores da Exodus enviaram um ficheiro mp4 através de um MMS e conseguiram depois explorá-la. Não ficou claro se o que conseguiram realizar foi a execução de código e o desligar do Android.

A Google foi já confrontada com esta situação e rapidamente lançou um novo patch para corrigir, espera-se que de forma definitiva, o problema. Também esta nova correcção foi enviada aos fabricantes, que em breve devem lançá-la para os seus equipamentos.

A chegada desta correcção aos equipamentos da Google acontecerá com o lançamento das correcções de segurança de Setembro. Até lá os utilizadores vão ficar expostos ao Stagefright.

OS restantes fabricantes devem aplicar uma medida similar de lançamento da correcção, esperando-se para o próximo mês a sua chegada aos equipamentos.

Algo importante que a Exodus revelou também foi que dificilmente teriam sido os únicos a detectar que a correcção tinha problemas e que provavelmente vão haver utilizações abusivas do problema, devendo os utilizadores manter as mesmas medidas que foram aconselhadas para mitigar o problema, até que uma solução final surja.

Exit mobile version