4 pontos por GN⁺ 14 일 전 | 2 comentários | Compartilhar no WhatsApp
  • O modelo de IA Codex executou uma cadeia de ataque completa em uma Smart TV Samsung real, elevando privilégios do navegador até root
  • O experimento foi conduzido em colaboração com a OpenAI para verificar como o Codex encontra e explora vulnerabilidades automaticamente usando o código-fonte do firmware e acesso ao dispositivo
  • O Codex encontrou uma vulnerabilidade de acesso à memória física no driver da Novatek e modificou a estrutura cred do kernel para obter um shell root
  • Durante o experimento, o Codex repetiu execução de comandos e tratamento de erros, agindo como um agente colaborativo em tempo real
  • O resultado mostra que a IA pode ir além da simples análise de código e encontrar falhas de segurança em hardware real e executar ataques de fato

O processo do experimento em que o Codex hackeou uma TV Samsung

  • Experimento em que o modelo de IA Codex ampliou permissões de execução de código no nível do navegador para privilégios de root em uma Smart TV Samsung real
  • A equipe de pesquisa colaborou com a OpenAI para verificar se o Codex conseguia encontrar e explorar vulnerabilidades em hardware real
  • O experimento começou em um ambiente de shell já obtido no navegador, e o Codex automatizou o processo de obter privilégios de root usando o código-fonte do firmware e acesso ao dispositivo em tempo real
  • O Codex encontrou uma vulnerabilidade de acesso à memória física e, por meio dela, modificou a estrutura de credenciais do kernel (cred) para obter um shell root
  • Como resultado, foi demonstrado que a IA pode ir além da análise de código e completar autonomamente toda a cadeia de ataque em um ambiente real

Configuração do ambiente experimental

  • O alvo do experimento foi uma Smart TV que usa o firmware da plataforma interna da Samsung chamada KantS2
  • Para que o Codex pudesse operar, foi preparado o seguinte ambiente
    • Shell do navegador: estado em que era possível executar código dentro do app do navegador
    • Host controlador: fornecia compilação de binários ARM, hospedagem de arquivos via HTTP e acesso às sessões de shell
    • Listener de shell: injetava comandos via tmux send-keys e coletava os resultados em logs
    • Código-fonte do firmware: fornecida a árvore completa de código-fonte do KantS2
    • Restrição de execução: por causa do Unauthorized Execution Prevention (UEP) do Tizen, binários não assinados não podiam ser executados diretamente
    • Wrapper memfd: execução por meio de um descritor de arquivo anônimo carregado em memória
  • O loop iterativo do Codex foi composto por analisar o código-fonte e os logs, enviar comandos, ler os resultados e, quando necessário, compilar helpers para executar na TV

Definição do objetivo

  • A missão do Codex era encontrar uma vulnerabilidade para elevar privilégios do usuário do navegador até root
  • Nenhum driver ou região de memória específicos foram indicados; o Codex precisava explorar por conta própria o caminho de ataque
  • A vulnerabilidade precisava satisfazer simultaneamente as condições de existir no código-fonte, ser acessível no dispositivo real e ser alcançável a partir do contexto do navegador

Informações iniciais fornecidas

  • Exemplo de informações do sistema fornecidas ao Codex
    uid=5001(owner) gid=100(users)
    Linux Samsung 4.1.10 ...
    /dev/... /proc/modules ... /proc/cmdline ...
    
  • Essas informações definiam os limites de privilégio do processo do navegador, a versão do kernel, os nós de dispositivo acessíveis, o layout de memória e outros detalhes

Busca pela vulnerabilidade

  • O Codex encontrou nós de dispositivo ntk* graváveis por qualquer usuário acessíveis a partir do shell do navegador
    /dev/ntkhdma
    /dev/ntksys
    /dev/ntkxdma
    
  • Esses drivers foram identificados como código da Novatek Microelectronics e faziam parte da pilha Novatek incluída nas TVs Samsung
  • Quando o acesso a /proc/iomem foi bloqueado, o Codex reconstruiu o mapa de memória usando os parâmetros de boot em /proc/cmdline

Primitiva de acesso à memória física

  • O driver /dev/ntksys armazena em uma tabela do kernel o endereço físico e o tamanho passados pelo espaço de usuário e depois os remapeia por meio de mmap
  • Isso cria um caminho que permite ao espaço de usuário acessar memória física arbitrária (primitiva physmap)
  • O /dev/ntkhdma ainda expõe diretamente endereços físicos, facilitando a verificação

Análise da causa raiz

  • Configuração incorreta de permissões de acesso

    • A regra do udev configura /dev/ntksys como 0666 (gravável por qualquer usuário)
    • Erro de projeto ao expor a interface de gerenciamento de memória a usuários não privilegiados
  • Ausência de validação da entrada do usuário

    • u32Start e u32Size da estrutura ST_SYS_MEM_INFO usam diretamente valores fornecidos pelo usuário
  • Falta de validação de endereços físicos

    • A função SET_MEM_INFO valida apenas o índice, sem verificar intervalo de endereços físicos ou permissões
  • Uso de PFN controlado pelo atacante na etapa de mmap

    • Na chamada vk_remap_pfn_range, o PFN fornecido pelo usuário é mapeado diretamente
  • Vazamento de endereço via ntkhdma

    • O /dev/ntkhdma retorna o endereço físico real do buffer DMA, usado para validar o ataque

Construção da cadeia de ataque

  • O Codex obteve o endereço do buffer DMA por meio de /dev/ntkhdma e o mapeou com /dev/ntksys, conseguindo ler e escrever memória física
    HDMA buffer phys addr: 0x84840000
    writing 0x41414141 to mapped address...
    readback: 0x41414141
    
  • Com isso, demonstrou que um processo sem privilégios podia modificar páginas físicas arbitrárias

Exploit final

  • O Codex localizou a estrutura cred do kernel e sobrescreveu o UID/GID do processo do navegador para 0
  • Ele escaneou a janela de memória obtida em /proc/cmdline, procurou o padrão correspondente e então o modificou
  • Depois, a execução de /bin/sh resultou em privilégios de root
    uid=0(root) gid=0(root) ...
    context="User::Pkg::org.tizen.browser"
    
  • Saída do Codex: “Worked.”

Interação com o Codex

  • Durante o experimento, o Codex por vezes exibiu comportamento anormal, e os pesquisadores precisaram corrigi-lo imediatamente
  • Exemplo de diálogo
    • “bro, the tv froze”
    • “bro can you just like, send it to the server and run it for me?”
  • Essas interações mostram que o Codex não atuou como uma simples ferramenta de automação, mas como um agente colaborativo em tempo real

Conclusão

  • O Codex começou com um shell no navegador e completou autonomamente toda a cadeia de ataque: análise do código-fonte → identificação da vulnerabilidade → desenvolvimento do PoC → compilação e execução → obtenção de root
  • Este experimento demonstrou que a IA pode encontrar e explorar vulnerabilidades de segurança em hardware real
  • Como próximo passo, a equipe de pesquisa anunciou um experimento em que a IA executará de forma independente todo o processo, da intrusão inicial à obtenção de root
  • Frase final: “Esperamos que a IA fique presa dentro da TV, elevando privilégios em silêncio enquanto assiste à nossa sitcom.”

2 comentários

 
todong 3 일 전

Só como referência, trata-se de algo que já foi corrigido há muito tempo (em 2020), e peço que considerem também que o post original menciona, como abaixo, que era uma TV baseada em um navegador de versão antiga que não foi atualizado e em um kernel desatualizado.
Note that the target TV is an older model running an outdated version of Chrome and an outdated kernel.

 
GN⁺ 14 일 전
Comentários do Hacker News
  • Tive uma “sessão de hacking” muito boa com o Codex
    Na prática, não quebrei nada; apenas ultrapassei as barreiras que a TP-Link colocou para conseguir controlar um roteador que é meu
    A TP-Link criou um esquema horrível de autenticação e criptografia para bloquear o acesso à API, mas depois de passar meio dia brigando com isso junto com o Codex, consegui finalizar uma API Python limpa para controlar o roteador
    Ela também exporta métricas do Prometheus direitinho e funciona de forma estável
    Acho que essas restrições existem por causa de um planejamento de produto excessivo para separar artificialmente os mercados “consumidor” e “enterprise”

    • Antes, pelo mesmo motivo, eu mesmo fiz uma versão em Python do tmpcli
      O tmpServer fica escutando no localhost, e o dropbear permite port forwarding com privilégios de admin
      Esse programa é a API principal usada pelo app Tether quando ele se comunica com o roteador
    • Eu tenho um contador flip da Smiirl que é baseado em OpenWrt, mas não tem interface web e só oferece API via uhttpd
      Quero encontrar um exploit que permita abrir acesso SSH usando o Mythos
      Link do produto
    • Dizer que “isso não é hacking” parece uma definição estreita demais
      Estamos no Hacker News, e nem todo mundo está tentando quebrar alguma coisa
    • Se esse processo for divulgado, existe risco de punição criminal por violar a seção 1201 da DMCA
    • Também já tive sucesso de forma parecida
      Gravei requisições da interface web em um arquivo .har e usei isso na análise, e o processo andou muito mais rápido do que quando faço sem ajuda de IA
  • O importante é que o Codex tinha acesso ao código-fonte
    No tópico relacionado, muita gente também comentou que código fechado não traz vantagem real para impedir detecção de vulnerabilidades com IA
    Fico curioso para saber quão bem o Codex se sairia sem o código-fonte

    • Mesmo sem o código-fonte, se houver apenas o binário do firmware, a IA pode descompilar e entender
      Mas o pior caso que eu enfrento é quando nem o binário do firmware está acessível
      Ele fica soldado diretamente na PCB, impossível de extrair até com chip clip, então é preciso analisar tudo completamente às cegas
  • Não tanto quanto com o Codex, mas também fiz uns experimentos interessantes com o Claude Code
    Pedi para ele explorar dispositivos Bluetooth, e ele encontrou a iluminação RGB do quarto da minha filha, criou um efeito arco-íris e documentou o protocolo

    • Pedi ao Claude Opus 4.5 para procurar a API privada de um software de gerenciamento de endpoints, e em 1 hora ele encontrou duas
      Se fosse algo baseado em .NET, talvez desse para mandar descompilar e achar ainda mais
    • O Opus 4.7 resolveu meu problema de pareamento de mouse Logitech
      O 4.6 e o Gemini 3.1 falharam, mas dessa vez deu certo
    • Não sei se “interessante” é mesmo a palavra certa
  • Se eu pudesse transformar uma smart TV em uma TV burra, faria isso na hora
    Um monitor simples que só troque a entrada e ajuste o volume já basta

    • Minha Sony Bravia smart TV fica com o sistema operacional travando o tempo todo na tela inicial
      O atraso de entrada também é péssimo, e quando mudo configurações elas voltam para o padrão
      A tela está perfeita, mas por causa do sistema operacional virou completamente lixo eletrônico
    • A LG smart TV que comprei recentemente é parecida
      Eu tinha expectativa porque o webOS é descendente do palmOS, mas foi uma decepção
      No fim, cortei totalmente a conexão de rede
  • O ponto central era o fornecimento do código-fonte do firmware

    • Fico pensando em quão difícil seria se só pudesse ler código de máquina
      Queria saber o quanto esses modelos dependem de pistas em linguagem humana
    • Mesmo tendo só o binário do firmware, ainda dá para analisar com ferramentas como o Ghidra
    • Fornecer o código-fonte foi um fator grande demais para reduzir a desvantagem
  • O Codex hackeou completamente um sistema operacional de TV fraco,
    mas conseguir acesso total aos controles principais como volume, entrada, tonalidade, firmware etc. ainda parece difícil demais para os LLMs

  • As TVs da Samsung têm sido dispositivos muito fáceis de hackear nos últimos 10 anos
    Talvez desse até com um GPT-2 se ele só tivesse acesso ao navegador

    • Mas o GPT-2 não era um modelo voltado à execução de comandos
      E também não tinha recursos conversacionais, então isso é um exagero
  • Acho que talvez dê para usar o Codex para implementar remoção de anúncios ou bloqueio de envio de dados em smart TVs

  • Havia a expressão “browser foothold”, e isso quer dizer o próprio navegador web rodando na TV

    • No passado, navegadores também foram um ponto de entrada importante para hackear dispositivos bloqueados
      Em PSP, Vita, Switch, Wii, DS e outros, exploits no navegador permitiam rodar homebrew