Security fixes (v1.2.2): - Fix SQL injection in analytics.ts (16 occurrences) - Fix SQL injection in advanced-search.ts (1 occurrence) - Fix SQL injection in search-queries.ts (1 occurrence) - Add validateDaysInterval(), isValidISODate(), validatePeriod() to security.ts - Use make_interval(days => N) for safe PostgreSQL intervals - Validate UUIDs BEFORE string construction Transaction support: - bulk-operations.ts: 6 atomic operations with withTransaction() - desk-sync.ts: 2 operations with transactions - export-import.ts: 1 operation with transaction Rate limiting: - Add automatic cleanup of expired entries (every 5 minutes) Audit: - Archive previous audit docs to docs/audits/2026-01-31-v1.2.1/ - Create new AUDIT-REQUEST.md for v1.2.2 verification Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
3.9 KiB
3.9 KiB
Pedido de Auditoria de Segurança - MCP Outline PostgreSQL v1.2.2
Contexto
Este é um servidor MCP (Model Context Protocol) que fornece acesso directo via PostgreSQL à base de dados do Outline Wiki. A versão anterior (v1.2.1) passou por uma auditoria que identificou vulnerabilidades de SQL injection e falta de transacções em operações bulk.
Versão actual: 1.2.2 (após correcções de segurança) Total de tools: 164 ferramentas em 33 módulos
Correcções Aplicadas (v1.2.2)
SQL Injection Prevention
- 21 vulnerabilidades corrigidas em
analytics.ts,advanced-search.ts,search-queries.ts - Validação de UUIDs ANTES de construir strings SQL
- Novas funções:
validateDaysInterval(),isValidISODate(),validatePeriod() - Uso de
make_interval(days => N)para intervalos seguros
Transacções Atómicas
bulk-operations.ts: 6 operaçõesdesk-sync.ts: 2 operaçõesexport-import.ts: 1 operação
Rate Limiting
- Cleanup automático de entradas expiradas (cada 5 minutos)
Pedido de Auditoria
Por favor, realiza uma auditoria de segurança completa ao código actual, focando em:
1. SQL Injection (Verificação)
- Confirmar que todas as interpolações de strings foram eliminadas
- Verificar se existem novos vectores de ataque
- Validar que as funções de validação são suficientes
2. Transacções
- Verificar se as transacções estão correctamente implementadas
- Identificar operações que ainda possam beneficiar de transacções
- Verificar tratamento de erros e rollback
3. Autenticação/Autorização
- Verificar se existe controlo de acesso adequado
- Analisar uso de "admin user" hardcoded em algumas operações
4. Validação de Input
- Verificar sanitização de inputs em todas as tools
- Identificar campos que podem ser explorados
5. Rate Limiting
- Verificar eficácia do rate limiter actual
- Sugerir melhorias se necessário
6. Logging e Auditoria
- Verificar se operações sensíveis são registadas
- Identificar lacunas em logging
7. Dependências
- Verificar se existem dependências com vulnerabilidades conhecidas
Estrutura do Projecto
src/
├── index.ts # MCP entry point
├── pg-client.ts # PostgreSQL client wrapper
├── config/database.ts # DB configuration
├── utils/
│ ├── logger.ts
│ └── security.ts # Validações, rate limiting
└── tools/ # 33 módulos de tools
├── analytics.ts # CORRIGIDO v1.2.2
├── advanced-search.ts # CORRIGIDO v1.2.2
├── search-queries.ts # CORRIGIDO v1.2.2
├── bulk-operations.ts # TRANSACÇÕES v1.2.2
├── desk-sync.ts # TRANSACÇÕES v1.2.2
├── export-import.ts # TRANSACÇÕES v1.2.2
└── [outros 27 módulos]
Ficheiros Prioritários para Análise
src/utils/security.ts- Funções de validação e rate limitingsrc/tools/analytics.ts- Maior quantidade de correcçõessrc/tools/bulk-operations.ts- Operações críticas com transacçõessrc/tools/documents.ts- CRUD principalsrc/tools/users.ts- Gestão de utilizadores
Output Esperado
- Score de segurança (0-10)
- Lista de vulnerabilidades encontradas (se houver)
- Confirmação das correcções - validar que v1.2.2 resolve os problemas anteriores
- Recomendações para próximas melhorias
- Priorização (P0 crítico, P1 alto, P2 médio, P3 baixo)
Comandos Úteis
# Ver estrutura
tree src/ -I node_modules
# Build
npm run build
# Verificar interpolações (deve retornar vazio)
grep -rn "INTERVAL '\${" src/tools/*.ts
grep -rn "= '\${" src/tools/*.ts
# Ver security.ts
cat src/utils/security.ts
# Ver ficheiros corrigidos
cat src/tools/analytics.ts
cat src/tools/bulk-operations.ts
MCP Outline PostgreSQL v1.2.2 | Descomplicar® | 2026-01-31