Pesquisadores do grupo de segurança Segurança da Informação EVA conjunto que uma série de vulnerabilidades deixou expostos centenas ou milhares de pacotes do CocoaPods — gerenciador popular de dependências para projetos entre desenvolvedores de aplicativos para iOS, iPadOS, macOS e outros — a ataques maliciosos.

Em síntese, o CocoaPods é uma plataforma de código aberta que serve para gerenciar bibliotecas ou pacotes que podem ser usados ​​para desenvolver softwares, denominados vagens. Ela possui medidas de segurança, como assinatura de pacotes com criptografia para permitir que os desenvolvedores verifiquem a integridade e a autenticidade dos componentes usados.

Um outro conceito importante na CocoaPods é o de Podspecum arquivo de especificação que descreve um pacote (vagem), com dados como nome, versão, arquivos de origem, dependências e outras informações. A CocoaPods exige que os autores tanto de vagens quanto de Especificações do Pod registre uma conta, para que você possa fazer o upload de novos pacotes ou atualizar os já existentes.

Vulnerabilidade CVE-2024-38368

Tendo usado desde o início como método para identificação de contas dos autores uma associação com o perfil deles no GitHub, o CocoaPods anunciou, em 2014, uma migração para o servidor Tronco — o que agora atuaria como um repositório centralizado e passaria a ser responsável por coisas como gerenciamento de repositórios/vagensautenticação/autorização e publicação de bibliotecas.

Como o novo método inclui validação de e-mail para autores, ele provavelmente foi criado para melhorar a segurança dos usuários. Porém, essa migração requer que os autores de pacotes originais já estejam disponíveis na plataforma reivindicando a propriedade de seus vagens para manter ou controlar eles. Muitos deles não o fizeram — o que aconteceu no que o EVA chamou de vagens órfãos (isto é, não reivindicados).

Ao analisar o código-fonte do servidor Trunk, os pesquisadores da EVA descobrem que todos os vagens órfãos estavam associados a um único padrão privado do CocoaPods, até que fossem reivindicados. A API pública para reivindicar um pacote, instalada em 2014, ainda estava disponível e permitia, pasmem, que qualquer pessoa reivindicasse vagens órfãos sem a necessidade de verificação de propriedade.

Um potencial invasor, portanto, poderia facilmente reivindicar qualquer um ou todos esses vagens órfãos como sendo seus — o que abriria o caminho para que ele manipulasse facilmente o código-fonte ou inserisse conteúdos perigosos para infectar dependências inferiores, chegando a aplicativos populares e, portanto, atingindo uma grande porcentagem de dispositivos da Apple atualmente em uso.

Segundo os pesquisadores, muitos vagens não reivindicados ainda são amplamente utilizados — inclusive como dependências de outros pacotes atualmente disponíveis oficialmente no CocoaPods. Foram encontradas menções a vagens órfãos na documentação de aplicativos de empresas como Meta, Microsoft, Amazonas e até mesmo da própria Maçã (sem Safari, sem Apple TV e sem Xcode).

No total, encontramos 685 vagens que tinha uma dependência explícita usando um vagem órfão; sem dúvida, há centenas ou milhares mais em bases de código legítimo. Todos esses foram, em algum período, vulneráveis ​​ao ataque à cadeia de suprimentos.

Vulnerabilidade CVE-2024-38366

Para garantir a procedência dos dados informados por um autor na hora de fazer um cadastro no CocoaPods, o servidor Porta-malas usando um novo processo de verificação utilizando um pacote de terceiros denominado RFC-822 — o qual, segundo os pesquisadores, possui muitos métodos vulneráveis.

Em termos técnicos, um usuário atacante poderia fornecer um comando como bash junto ao email fornecido, o que foi executado pelo sistema operacional visando validar a autenticidade do registro DNS MX fornecido pelo usuário no email.

Isso permite a execução de comandos externos perigosos no sistema operacional, possibilitando injetar, por exemplo, um comando bash em conjunto a um registro MX controlado pelo atacante que contém uma sintaxe válida de determinado comando malicioso — o que poderia resultar em grandes problemas.

Se um ator de ameaça não autorizado envolver o servidor, ele poderá estar acessando todos os fichas de sessão dos inimigos dos vagensenvenenar o tráfego dos clientes ou até mesmo desligar o servidor completamente.

Vulnerabilidade CVE-2024-38367

Essa vulnerabilidade também está, de certa forma, relacionada ao método de autenticação do CocoaPods via servidor Trunk. Para autenticar um novo dispositivo, o gerenciador de dependências envia uma solicitação do paciente, o qual fornece seu endereço de e-mail para obter uma seção — esta é considerada válida apenas quando o proprietário clica em um link enviado para sua caixa de entrada.

Esse método faz uso de um cabeçalho HTTP X-Forwarded-Host para construir uma URL de verificação de sessão a ser enviada para os usuários, mas o problema é que ele poderia ser facilmente falsificado pelos pesquisadores da EVA. Com a falsificação, o servidor do CocoaPods enviaria o link não autêntico, o que poderia ser interceptado e utilizado pelo atacante para obter o token de autenticação, validar a sessão e assumir o controle da conta do usuário.

O mais assombroso é que isso poderia ser feito até mesmo sem um clique. Isso porque o invasor pode se aproveitar em soluções de segurança geralmente presentes em e-mails institucionais para verificar a presença de phishing — como fariam o usuário invasor obter automaticamente o token de autenticação na conta da vítima.

Tomar as contas permitiria ao atacante manipular especificações de vagensinterrompendo a distribuição de bibliotecas legítimas ou causando grandes interrupções no ecossistema CocoaPods.

De acordo com os pesquisadores, esse método é bastante eficaz e abrangente, especialmente porque a maioria dos desenvolvedores registrados no CocoaPods utilizam contas institucionais para o cadastro — incluindo, é claro, aqueles que trabalham em grandes empresas como a Amazon.


Após a divulgação responsável por parte da EVA — o que aconteceu antes da sua publicação (em outubro de 2023), obviamente —, a equipe do CocoaPods corrigiu todas as três vulnerabilidades. Isso não significa, no entanto, que seus efeitos ainda não estejam em vigor.

A empresa de segurança, inclusive, indica algumas medidas visando eliminar tais consequências — incluindo, principalmente, a eliminação do uso de vagens órfãos no desenvolvimento de aplicativos para iOS, iPadOS e macOS, e uma verificação de segurança forte em pacotes que dependem deles.

O uso de assinaturas digitais para verificar a integridade dos pacotes de software e auditorias em suas dependências para identificar códigos maliciosos, possíveis riscos e vulnerabilidades são algumas outras ações recomendadas.

através da Arte Técnica

By admin

Leave a Reply

Your email address will not be published. Required fields are marked *