
PoC em Python e laboratório Docker para CVE-2026-22599, uma injeção SQL autenticada na API de escrita do Content-Type Builder do Strapi via defaultTo raw do Knex.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · CVE-2026-22599
Strapi 5.33.1 - Strapi
Sou @abraxas_null. Laboratório loopback. O cliente é CVE-2026-22599-Abraxas-Labs.py.
Injeção de consulta ao banco de dados na API de escrita do Content-Type Builder. O Yup valida, mas não remove o column.defaultTo desconhecido. O construtor de schema mescla [value, { isRaw: true }] no defaultTo(raw()) do Knex. Corrigido em 5.33.2 / 4.26.1 ocultando as APIs de escrita do CTB em produção.
| CVE | CVE-2026-22599 · CVE.org |
| CWE | CWE-89 |
| CVSS | Crítico: 9.3 CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N |
| Produto | Strapi |
| Afetado | todas as versões até 5.33.1 (inclusive) |
| Corrigido | 5.33.2 / 4.26.1 e posteriores |
| Autenticação | autenticado |
| Licença | GNU Affero GPL v3.0 |
| Laboratório | somente 127.0.0.1 |
JWT de administrador autenticado. POST /content-type-builder/content-types com uma expressão DEFAULT bruta. A próxima inserção nesse tipo usa SQL do atacante. O oráculo do laboratório é GHSA22599-WITNESS em uma nova linha labitem, não um shell.
Mapeei createColumn espalhando attribute.column sobre defaultTo, depois isRaw chamando knex raw() sem sanitização. Levantei o Strapi 5.33.1, registrei o admin, publiquei o content type, inseri uma linha.
Controles de falha já presentes no laboratório: eval/base64/system não é o witness; um reverse shell não é o witness; a 5.33.2 não deve honrar a tupla bruta.
Porta 18098. Strapi 5.33.1. JWT de administrador. API de escrita do CTB acessível (pré-patch: também em produção). ./run.sh.
Alvo somente 127.0.0.1:18098 (ou o loopback que você vinculou).
cd lab
docker compose up --force-recreate
python3 ../CVE-2026-22599-Abraxas-Labs.py
Witness: o JSON de entrada do content-manager contém GHSA22599-WITNESS.
Formas de perder sem aprender nada:
Atualize o Strapi para 5.33.2 / 4.26.1 ou mais recente. Execute novamente CVE-2026-22599-Abraxas-Labs.py contra a build corrigida: o DEFAULT bruto não deve ser aplicado.
github.com/strapi/strapi/security/advisories/GHSA-3xcq-8mjw-h6mx
Abraxas Labs: abraxaslabs.tech · github.com/abraxas · @abraxas_null
GNU Affero GPL v3.0. Consulte LICENSE.
O cliente se comunica com o loopback. Usá-lo contra sistemas que você não possui não é autorizado pela Abraxas Labs. Sem garantias.