Uma vulnerabilidade crítica de clique zero no Android SDK de Zendesk foi descoberta, permitindo que os invasores seqüestram contas de suporte e coloquem todos os ingressos sem qualquer interação do usuário.
Descoberto Durante um programa privado de recompensa de insetos, a falha decorre de mecanismos de geração e armazenamento fracos de token no aplicativo móvel de Zendesk.
Visão geral da vulnerabilidade
O cliente Android de Zendesk gera tokens de autenticação combinando três elementos previsíveis: o ID da conta da vítima, um segredo de codificação estática e o hash sha-1 dessa concatenação.
Especificamente, o aplicativo constrói uma string na FormatCompany–aplica o SHA-1 a ele e, em seguida, prefixa o resultado com o ID da conta para formar o token no estilo JWT.
Como os IDs da conta são seqüenciais e o segredo é incorporado diretamente no binário, um invasor pode formar tokens válidos para qualquer usuário.
Uma vez gerados, esses tokens são enviados por meio de uma solicitação de postagem simples para/access/sdk/jwtto recebem um token de acesso, que concede sem restrições API acesso.
O pesquisador empregou técnicas de análise estática e dinâmica.
Usando o JADX para engenharia reversa do SDK, eles identificaram os métodos críticos: Zendeskhelper.g (), que constrói e armazena o token de identidade e as APIs de armazenamento relacionadas subzendeskIdentityStorage e
Os ganchos de tempo de execução via Frida confirmaram que o segredo nunca é girado ou específico do dispositivo e que a identidade persiste nas sessões até que o cache do aplicativo seja explicitamente limpo.
Os testes dinâmicos envolveram a interceptação do tráfego de rede por meio do Burp Suite após ignorar o SSL fixando com um script FRIDA.
A solicitação de postagem interceptada incluiu apenas o token do usuário e retornou um token de acesso reutilizável. Não houve limites de taxa ou restrições únicas, permitindo atualizações ilimitadas de token.
Exploração
Ao roteirizar o processo em Python, o pesquisador automatizou a criação de token, a recuperação de token de acesso e a enumeração de ingressos.
Um loop simples sobre IDs de contas pode violar centenas de milhares de contas em massa. A exploração não requer ação do usuário-nem phishing, nenhuma engenharia social-tornando-a um verdadeiro compromisso de clique zero.
import hashlib, requests
def gen_sha1(full_string):
return hashlib.sha1(full_string.encode()).hexdigest()
def get_access_token(user_token):
url = "https://COMPANY.zendesk.com/access/sdk/jwt"
resp = requests.post(url, json={"user":{"token": user_token}})
return resp.json()['authentication']['access_token']
user_id = "131070497"
secret = "987sdasdlkjlakdjf"
full = f"COMPANY-{user_id}-{secret}"
token = f"{user_id}_{gen_sha1(full)}"
access = get_access_token(token)
print("Access Token:", access)
Subsídios de exploração bem -sucedidos Leia e escrevem acesso a todos os ingressos de suporte para qualquer usuário segmentado. Os atacantes podem exfiltrar consultas sensíveis ao cliente, injetar ingressos fraudulentos ou escalar privilégios dentro de ZendeskO ecossistema de suporte.
Após a divulgação responsável, Zendesk reconheceu prontamente a questão e emitiu um patch para:
- Substitua o segredo estático por teclas randomizadas por dispositivo e por usuário.
- Aplicar a taxa rigorosa limitando os terminais de troca JWT.
- Harden Token Storage usando o Keystore seguro do Android.
Essa vulnerabilidade zero clique enfatiza a importância crítica da geração e gerenciamento robustos de token em SDKs móveis.
Mesmo plataformas amplamente confiáveis como o Zendesk podem introduzir falhas de alto impacto quando valores previsíveis e segredos estáticos são usados.
As equipes de segurança devem auditar rigorosamente bibliotecas de terceiros e aplicar as melhores práticas-rotando segredos, usando armazenamento apoiado por hardware e fluxos de autenticação com limitação de taxa-para se defender contra aquisições de conta silenciosas, mas devastadoras.
Encontre esta notícia interessante! Siga -nosGoogle NewsAssim,LinkedIneXPara obter atualizações instantâneas!