Um bug de software introduzido na implementação da API IndexedDB do Apple Safari 15 pode ser abusado por um site malicioso para rastrear a atividade online dos usuários no navegador da web e, pior, até revelar sua identidade. Esta vulnerabilidade, apelidada de IndexedDB Leaks, foi divulgada pela empresa de software de proteção contra fraudes FingerprintJS, que relatou o problema ao fabricante do iPhone em novembro de 2021. A IndexedDB é uma interface de programação de aplicativos (API) JavaScript de baixo nível, fornecida por navegadores de Web para gerenciar bancos de dados NoSQL de dados estruturados, como arquivos e blobs. “Como a maioria das soluções de armazenamento na Web, o IndexedDB segue uma política de mesma origem”, segundo a documentação da API da Mozilla. “Assim, embora seja possível acessar dados armazenados num determinado domínio, não se pode ter acesso a dados em domínios diferentes.” A política da mesma origem é um mecanismo de segurança fundamental que garante que os recursos recuperados de origens distintas — ou seja, uma combinação do esquema (protocolo), host (domínio) e número da porta de uma URL — sejam isolados uns dos outros. Isso significa que “http[:]//example[.]com/” e “https[:]//example[.]com/” não são da mesma origem porque usam esquemas diferentes. Ao restringir a forma como um script carregado por uma origem pode interagir com um recurso de outra origem, a ideia passa por sequestrar scripts potencialmente maliciosos e reduzir possíveis vetores de ataque, impedindo que um site não autorizado execute código JavaScript arbitrário para ler dados de outro domínio, isto é, um serviço de e-mail. No entanto, este não é o caso de como o Safari lida com a API IndexedDB no iOS, iPadOS e macOS. “No Safari 15, no macOS, e em todos os navegadores no iOS e iPadOS 15, a API IndexedDB está a infringir a política de mesma origem”, disse Martin Bajanik num artigo. “Sempre que um site interage com um banco de dados, um novo banco de dados (vazio) com o mesmo nome é criado em todos os outros frames, guias e janelas ativas na mesma sessão do navegador.” Uma consequência desta violação de privacidade é que permite que os sites saibam quais outros sites um usuário que está a visitar, em diferentes guias ou janelas, concretamente, identificar com precisão os usuários nos serviços de serviços do Google, como YouTube e Google Agenda, pois esses sites criam bancos de dados IndexedDB que incluem o IDs de usuário do Google autenticados – um identificador interno que identifica exclusivamente uma única conta Google. “Isto não implica apenas que sites não confiáveis ou maliciosos podem conhecer a identidade de um usuário, mas também permite vincular várias contas separadas usadas pelo mesmo”, acrescentou Bajanik. Para piorar a situação, este leak também afeta o modo de navegação privada no Safari 15, caso um usuário visite vários sites diferentes na mesma guia na janela do navegador. “Este é um bug enorme”, twittou Jake Archibald, defensor do desenvolvedor do Google Chrome. “No OSX, os usuários do Safari podem (temporariamente) mudar para outro navegador para evitar que seus dados vazem entre as origens. Os usuários do iOS não têm essa escolha, porque a Apple impõe uma proibição a outros mecanismos de navegador.” O artigo original via The Hacker News pode ser lido em: https://thehackernews.com/2022/01/new-unpatched-apple-safari-browser-bug.html