Weknora · Weknora · CVE-2026-30860
**Nome do Software Vulnerável e Versões Afetadas**
Versões do WeKnora anteriores a 0.2.12
**Descrição**
O WeKnora, um framework alimentado por LLM para compreensão profunda de documentos e recuperação semântica, contém uma vulnerabilidade de execução remota de código (RCE) em sua funcionalidade de consulta ao banco de dados. O sistema de validação do aplicativo não inspeciona minuciosamente os nós filhos dentro de expressões de array e expressões de linha do PostgreSQL, permitindo que invasores contornem as proteções contra injeção de SQL. Ao incorporar funções maliciosas do PostgreSQL dentro dessas expressões e combiná-las com operações de objetos grandes e capacidades de carregamento de bibliotecas, um invasor não autenticado pode executar código arbitrário no servidor de banco de dados com os privilégios do usuário do banco de dados. O problema origina-se de uma validação incompleta dentro da função `validateNode()`, especificamente a falta de manipuladores para os tipos de nó `ArrayExpr` e `RowExpr`. Isso permite que invasores introduzam sorrateiramente funções perigosas, como `pg read file`, `lo from bytea`, `lo put`, `lo export` e `pg reload conf`, nas consultas. Uma prova de conceito demonstra a capacidade de ler arquivos arbitrários, carregar uma biblioteca compartilhada maliciosa e, finalmente, obter execução de código. A exploração bem-sucedida pode levar ao comprometimento completo do sistema, incluindo extração de dados, modificação, interrupção de serviço, persistência e movimento lateral.
**Recomendações**
Atualize para a versão 0.2.12 ou posterior do WeKnora.
Corrija a validação de nós da AST para inspecionar recursivamente expressões de array e expressões de linha.
Implemente uma lista de bloqueio rigorosa de funções perigosas do PostgreSQL.
Restrinja o usuário do banco de dados do aplicativo a permissões somente SELECT, sem direitos de execução em funções administrativas.
Desative o carregamento dinâmico de bibliotecas na configuração do PostgreSQL limpando `dynamic library path` e `session preload libraries`.