Não são anormais as falhas no Android, em especial nas apps que o rodeiam. O próprio sistema está por vezes vulnerável, mas muito mais raras são as falhas de hardware, quase sempre de um fabricante de topo e presente em muitos equipamentos.
Com o controlo de grande parte dos componentes nas mãos de alguns fabricantes, estas situações são muito perigosas. Neste contexto, há um novo problema detetado e que afeta milhões de smartphones Android. É uma falha da Qualcomm e de um dos seus componentes.
Surge uma nova falha no Android
Foi a própria Google que veio a público revelar esta nova falha que afeta os smartphones Android. Enquadrado no seu Project Zero, a equipa de investigadores de segurança da Google descobriu e revelou detalhes sobre este problema.
Do que pode ser lido na descrição, a falha afeta milhões de smartphones Android, tudo devido ao hardware que têm presente. O problema está no GPU Adreno da Qualcomm, que como se sabe está disseminado no universo dos smartphones com o sistema da Google.
Problema está no GPU Adreno da Qualcomm
A revelação desta situação seguiu os planos normais do Project Zero e foi revelada 90 dias após ser encontrada. O seu grau está marcado como se elevada severidade, mostrando bem a sua importância e a disseminação que terá nestes equipamentos.
Descrição da falha pela Google
The Adreno GPU driver associates a private device structure (“process_priv”) with each KGSL file descriptor. The process_priv private structure holds the page tables that are used for GPU context switching. This process_priv structure is tied to the PID of the calling process, and can be reused multiple times by additional KGSL file descriptors in the same process (presumably to save the cost of performing a GPU context switch between draw contexts in the same process).
When a process forks, the child inherits the parent’s KGSL file descriptors along with the private structure associated with the parent’s PID. If a child process holds a KGSL file descriptor that was originally opened in a parent process, and if that parent process exits, then the child still holds a reference to the private structure associated with the parent’s PID.
However if the parent’s PID is reused by a victim process, then the victim will reuse the existing private structure rather than creating a new one. In practice this gives the child process (an attacker) the ability to read any subsequent GPU shared mappings that the victim process creates, since their draw contexts are considered to be running in the same GPU context.
Ao explorar a forma como a criação dos processos filho é feita, os atacantes podem ler todos os dados que os presentes no resto dos processos associados. Isto claro, porque estes mantêm os descritores de ficheiros privados associados ao KGSL (kernel graphics support layer).
Foi a 15 de setembro que a Google relatou a falha à Qualcomm, com uma sugestão para a sua resolução no Android. Esta terminaria a 14 de dezembro, mas a solução surgiu uma semana antes, tendo sido informados os fabricantes de smartphones afetados.
Estará a atingir milhões de smartphones
O problema aqui, e a Google é particularmente boa nestas situações, é que a solução aparentemente vem trazer novos problemas. A Qualcomm ainda não lançou a correção para esta nova falha e como tal os smartphones Android voltam a expostos.
Este é mais um problema que pode eventualmente passar sem qualquer solução nos smartphones Android. A sua disseminação será muito grande, com milhões de dispositivos afetados, graças à presença do GPU Adreno da Qualcomm. Resta apenas aguardar e ver se a correção surge em breve.