DEV Community

Bolha Sec
Bolha Sec

Posted on

2 1

De LLM jailbreaking a 1-click session hijacking

‼️ Essa é uma versão resumida do post que eu gostaria de fazer. Como a vulnerabilidade foi apenas parcialmente resolvida, cortei grande parte dos detalhes e racional de como cheguei a cada resultado. No futuro, espero poder postar uma versão sem cortes.

Recentemente, fiquei sabendo que uma empresa super legal e famosa lançou um produto novo que usa IA como base. A funcionalidade básica é um chatbot que cria templates com JavaScript, TypeScript, React.js e Next.js a partir de prompts.

Como gosto dos produtos dessa empresa, resolvi dar um olhada.

Dada a descrição das funcionalidade, automaticamente pensei em LLM jailbreaking and xss. Comecei testando o LLM jailbreak e consegui realizá-lo sem muita dificuldade. Mas vou pular essa etapa, porque o foco é o 1-click session hijacking.

Ao pedir para o chatbot criar um template com apenas uma imagem, o resultado seria algo como o mostrado abaixo (layout teve o esquema de cores alterado e removi elementos que pudessem identificar a marca)

Imagem em qualidade legível
Image1

Imagem legível
Image2

Além de podermos pedir para a IA fazer alterações de código, também conseguimos alterar o diretamente no editor a direita.

Ao testar um simples alert(), não obtemos nenhum resultado. Apesar do alerta “*An iframe which has both allow-scripts and allow-same-origin for its sandbox attribute can escape its sandboxing.* chamar bastante atenção 🌚.

Imagem legível
Image3

Trocando o alert por um console.log(document.cookie), temos um resultado diferente. Todos os cookies sem HttpOnly são printados.
No horário que escrevo esse report, já adicionaram HttpOnly no cookie de sessão 🙏, ficando assim.
Imagem legível
Image4

Ok. Temos um self-xss, certo? Como melhoramos isso?

Que tal assim? Adicionamos um component Img que carrega de uma URL remota uma imagem 😇. Problema é que parte da URL são os cookies do usuário que vão chegar diretamente no servidor malicioso ⚰️.

Imagem legível
Image5

Ok. Agora como transformamos isso num stored-xss para distribuir para possíveis vítimas e ter algum impacto real?

A resposta está aqui. Botão compartilhar que gera uma URL acessível para outros usuários. Algo como https://chatbot.com/UUID-1234abc-…

Imagem legível
Image6

Porém, nem tudo são flores. Quando usamos o botão compartilhar, alterações no código feitas diretamente na aba da direita não são compartilhadas. É compartilhado apenas o código escrito pela IA.

Então, voltamos ao nosso estado original.

Imagem legível
Image7

E hora do LLM jailbreak.

Pedindo da IA sem por-favor 😢
Imag8

Pedindo da IA com por-favor 🙏

Image9

Imagem legível
Image10

Agora, através dessa vulnerabilidade, inocentes usuários que clicassem em https://chatbot.com/UUID-1234abc-… teriam seus cookies vazados 😢

A requisição recebida pelo servidor do atacante teria essa cara aqui.
Imagem legível
Image11

Bem, é isso. Como perceberam, os desenvolvedores da solução já mitigaram parte da vulnerabilidade, apesar de não terem me respondido 😢. De qualquer forma, em caso de novidades, trago pelo Twitter e Bluesky. Quem sabe, no futuro trago um post mais detalhado.

Heroku

Deploy with ease. Manage efficiently. Scale faster.

Leave the infrastructure headaches to us, while you focus on pushing boundaries, realizing your vision, and making a lasting impression on your users.

Get Started

Top comments (0)

AWS Q Developer image

Your AI Code Assistant

Automate your code reviews. Catch bugs before your coworkers. Fix security issues in your code. Built to handle large projects, Amazon Q Developer works alongside you from idea to production code.

Get started free in your IDE

👋 Kindness is contagious

Engage with a wealth of insights in this thoughtful article, valued within the supportive DEV Community. Coders of every background are welcome to join in and add to our collective wisdom.

A sincere "thank you" often brightens someone’s day. Share your gratitude in the comments below!

On DEV, the act of sharing knowledge eases our journey and fortifies our community ties. Found value in this? A quick thank you to the author can make a significant impact.

Okay