CVE-2026-7711: RCE no MindsDB — quando o próprio cliente escolhe um modo de execução Python inseguro
Técnicas e Métodos de Ataque2026-10-22, 07:04
Foi publicada uma análise técnica da CVE-2026-7711 no MindsDB. A vulnerabilidade permite a execução remota de código Python arbitrário por meio do mecanismo BYOM (Bring Your Own Model). O problema central não é contornar a validação de arquivos enviados, mas uma falha arquitetural: o cliente HTTP pode selecionar um modo de execução inseguro, enquanto a autenticação da API está desativada por padrão.
O MindsDB fornece dois modos de execução para modelos personalizados:
•
ModelWrapperSafe — executa o código enviado em um processo separado dentro de um ambiente virtual Python.
• ModelWrapperUnsafe — executa o código diretamente dentro do processo worker do MindsDB.Cadeia de exploração:
O atacante envia
PUT /api/handlers/byom/<name> com um arquivo Python no campo code e o parâmetro type=inhouse.
O servidor converte inhouse em BYOM_TYPE.INHOUSE, selecionando ModelWrapperUnsafe. O valor alternativo VENV seleciona ModelWrapperSafe.
O código enviado é passado para import_string() em proc_wrapper.py, que chama exec(code, module.__dict__).
Todas as instruções de nível superior são executadas antes que o servidor verifique se a classe do modelo fornece os métodos train() e predict(). Consequentemente, rejeitar um modelo inválido não impede a execução do código malicioso.O PoC invoca
subprocess.run(['whoami']) e grava a saída em /tmp/pwned.txt. O comando é executado com os privilégios do processo worker do MindsDB.
O namespace /api/handlers está listado em protected_namespaces, mas a verificação de autenticação só é aplicada quando config["auth"]["http_auth_enabled"] está definido como True. Essa configuração tem como padrão False.Na implantação auto-hospedada examinada, a API HTTP escuta em
0.0.0.0:47334, e o BYOM está habilitado. No modo de implantação em nuvem do MindsDB, existe uma proteção separada: MINDSDB_BYOM_ENABLED tem como padrão false. Portanto, as descobertas não devem ser automaticamente consideradas aplicáveis ao serviço em nuvem do MindsDB.Notavelmente, o mecanismo de upload de arquivos funciona conforme projetado: o servidor salva o arquivo enviado em um diretório temporário e subsequentemente passa seu conteúdo para
exec(). O cliente também controla a escolha entre os modos de execução seguro e inseguro por meio de um campo de formulário multipart comum.Mitigação: Não exponha a API BYOM vulnerável a redes não confiáveis. Habilite a autenticação HTTP, restrinja a capacidade de enviar modelos personalizados e impeça clientes não confiáveis de selecionar a execução
INHOUSE. A autenticação restringe o acesso, mas não transforma ModelWrapperUnsafe em um sandbox.Vulnerabilidades
Pesquisadores
Fornecedor
Produto