Um cartão SD malicioso pode conceder a um atacante execução de código com privilégios de root (superusuário) na unidade de navegação TomTom Carminat LIVE, usada em alguns carros da Renault. O pesquisador de segurança Rasmus Moorats publicou as descobertas em 2 de novembro de 2026.
A unidade usa um chip Samsung S5P6440 e executa o sistema operacional personalizado da TomTom, baseado no Linux 2.6.28.10. Esse kernel é muito antigo e não possui muitas das mitigações de exploração modernas.
A cada inicialização, a unidade procura um arquivo chamado master.script no cartão SD. O usuário precisa pressionar “Sim” na pergunta “Executar master.script?” antes que o arquivo seja executado.
O script usa uma linguagem de automação personalizada para ações de menu. O programa ttn, que faz a análise desse script, roda como root, então qualquer falha no analisador pode levar ao comprometimento total do sistema.
Moorats encontrou duas fragilidades no analisador. O comando LOG grava uma linha de texto imprimível em um arquivo indicado pelo próprio script.
O sistema não higieniza o caminho do arquivo, então uma sequência ../ permite que o script grave fora da pasta de logs pretendida. Trata-se de uma falha clássica de travessia de diretórios (path traversal). O comando SHEX executa um programa já presente no dispositivo, mas não consegue passar argumentos.
Moorats queria corrigir o relógio do seu Renault Latitude 2014. Esse objetivo simples o levou à unidade principal, com o codinome “beaumont”. Mais detalhes estão no blog nns.ee.
Como a falha foi explorada
Nenhuma das duas falhas parecia útil à primeira vista. O sistema de arquivos raiz era somente leitura, e quase todas as outras partições, incluindo o cartão SD, estavam montadas com a flag noexec, que bloqueia a execução direta de programas nessas partições.
Moorats adaptou uma técnica conhecida da exploração do kernel do Linux. Ele usou a falha do LOG para escrever em /proc/sys/kernel/core_pattern, configuração que define o que o kernel faz quando um processo trava. Quando o valor começa com um caractere de pipe (|), o kernel executa o programa indicado e envia a ele os dados da falha. Ele definiu o valor como |/bin/sh /media/sdcard/payload.sh.
A flag noexec não bloqueou essa execução, porque /bin/sh é um binário em uma partição executável. O shell apenas lê o payload do cartão SD como dado.
Em seguida, o comando SHEX iniciou /bin/dbus-monitor, que trava quando não encontra o barramento do sistema (system bus). O kernel tratou a falha executando o script do atacante com privilégios de root.
O exploit completo tem três linhas: uma diretiva #define LOGFILE apontando para ../../proc/sys/kernel/core_pattern, uma linha LOG com o payload de pipe e uma chamada SHEX para /bin/dbus-monitor.
A primeira prova de conceito apenas reiniciou a unidade, o que confirmou a execução de código como root. Depois, Moorats usou o acesso para fazer backup da memória interna eMMC (embedded MultiMediaCard) com o comando dd. Também editou o arquivo settings.dat para alterar o fuso horário para UTC+2 (Tempo Universal Coordenado mais duas horas), o que resolveu seu problema original.
O ataque exige acesso físico ao carro, e o usuário precisa aceitar a solicitação do script. Por isso, uma exploração remota ou em massa é pouco provável.
Os riscos realistas são um cartão SD adulterado entregue durante serviço de manobrista (valet) ou manutenção, ou um cenário de engenharia social.
O acesso root também expõe dados armazenados, como o histórico de navegação, e pode permitir modificações persistentes na unidade. O trabalho do pesquisador mostra que as demais defesas da unidade não impediram o ataque.