Um investigador de segurança descobriu uma vulnerabilidade no mecanismo de renderização do WebKit usado pelo Safari que bloqueia e reinicia o sistema operativo iOS usado por iPhones e iPads.
A vulnerabilidade pode ser explorada ao carregar uma página HTML que usa código CSS para devido propósito. O código CSS não é muito complexo, e tenta aplicar um efeito CSS conhecido como ” backdrop-filter” a uma série de segmentos de página aninhados (DIVs).
O Backdrop-filter é uma propriedade relativamente nova do CSS e funciona por desfoque ou mudança de cor para a área atrás de um elemento. Essa é uma tarefa pesada de processamento, e alguns engenheiros de software e developers especularam que a renderização desse efeito prejudica a biblioteca de processamento de gráficos do iOS, levando a uma queda completa do sistema operativo móvel.
Sabri Haddouche, engenheiro de software e investigador de segurança da app Wire, foi quem descobriu a vulnerabilidade e publicou o PoC no Twitter.
How to force restart any iOS device with just CSS? 💣
Source: https://t.co/Ib6dBDUOhn
IF YOU WANT TO TRY (DON’T BLAME ME IF YOU CLICK) : https://t.co/4Ql8uDYvY3
— Sabri (@pwnsdx) September 15, 2018
Este link irá bloquear seu dispositivo iOS, enquanto este link mostra o código-fonte por trás da vulnerabilidade. Haddouche também twittou um vídeo da vulnerabilidade que bloqueava o seu smartphone.
— Sabri (@pwnsdx) September 15, 2018
O ataque usa uma fraqueza na propriedade CSS -webkit-backdrop-filter, que usa a aceleração 3D para processar os elementos.
“By using nested divs with that property, we can quickly consume all graphic resources and freeze or kernel panic the OS.”
Haddouche disse que a vulnerabilidade também afeta os sistemas macOS e não apenas o iOS.
“With the current attack (CSS/HTML only), it will just freeze Safari for a minute then slow it down,” the researcher said. “You will be able to close the tab afterward.”
“To make it work on macOS, it requires a modified version containing Javascript,” he added. “The reason why I did not publish it is that it seems that Safari persists after a forced reboot and the browser is launched again, therefore bricking the user’s session as the malicious page is executed once again.”
O investigador disse que ele já notificou a Apple sobre o problema antes de publicar o código no Twitter.
“I contacted them using their security product email,” Haddouche said. “They confirmed they received the issue and are investigating it.”
Haddouche disse que descobriu a vulnerabilidade enquanto procurava bugs de negação de serviço (DoS) em vários navegadores de Internet. No início do mês, Haddouche também publicou outra exploração que bloqueava o Chrome e o Chrome OS com uma linha de JavaScript.
How to entirely freeze ChromeOS / Chrome in one line of JS? 💣
<script>for(let i=0;i<1/0;i++)document.location.href=”#”,window.history.back(),window.history.forward();</script>
IF YOU WANT TO TRY (DON’T BLAME ME IF YOU CLICK) : https://t.co/UhoUFWej4p
— Sabri (@pwnsdx) September 9, 2018