Sanitization Report

cultiva-form-agent — Auditoría pre-publicación Open Source
Fecha: 2026-06-18
Auditor: opensource-sanitizer v1.0.0
Archivos escaneados: 9
Patrones aplicados: 22
FAIL

El proyecto NO está listo para publicación open source

Se encontraron 7 hallazgos críticos y 3 advertencias distribuidos en 5 de las 6 categorías auditadas. Es necesario resolver todos los ítems críticos y volver a ejecutar el verificador antes de proceder.

Resumen por Categoría
Categoría Estado Hallazgos Descripción
Secrets ✗ FAIL 3 críticos Credenciales de base de datos y API key hardcodeadas
PII ✗ FAIL 2 críticos Email personal y cadena SSH a servidor interno
Referencias Internas ✗ FAIL 2 críticos Rutas absolutas macOS y ruta Windows en README
Archivos Peligrosos ✓ PASS 0 hallazgos No se detectaron .env, *.pem ni credenciales.json
Config Completeness ⚠ WARN 3 advertencias PORT y DATABASE_URL ausentes en .env.example; valor hardcodeado en docker-compose.yml
Historial Git ✗ FAIL 4 commits (no limpiado) Historia contiene commit "Fix database credentials" con posible fuga
Hallazgos Críticos — Deben Corregirse Antes de la Publicación
SECRETS src/config.py:3
Credencial de base de datos hardcodeada detectada. Patrón: postgres://user:pass@host/db
DATABASE_URL = "postgres://admin:Xk92!mP...@192.168.1.45:5432/cultiva_prod"
SECRETS src/agent.py:9
API key de OpenAI hardcodeada en comentario TODO. Patrón: sk-proj-[A-Za-z0-9_]{40+}
# Backup key: sk-proj-aB3xKy9m...hMj6oQk4gN
SECRETS docker-compose.yml:6
Contraseña hardcodeada en variables de entorno de docker-compose. Debe usar ${VAR} con variable de entorno.
DATABASE_URL=postgres://admin:hardco...@db:5432/cultiva
PII src/agent.py:3
Dirección de email personal del desarrollador. Patrón: email personal en dominio corporativo no genérico.
# Author: alvaro@cultivaia.es
PII src/agent.py:4
Cadena SSH a servidor de infraestructura interna. IP privada 10.x.x.x + usuario SSH expuesto.
# Internal staging: ssh admin@10.0.1.22
INTERNAL README.md:6
Ruta absoluta macOS al directorio home del desarrollador. Expone nombre de usuario y estructura de proyecto local.
See /Users/alvaro/projects/cultiva-form-agent/docs for internal notes.
INTERNAL src/config.py:3
IP privada de infraestructura interna (rango 192.168.x.x) expuesta en cadena de conexión a base de datos.
@192.168.1.45:5432/cultiva_prod
Advertencias — Revisar Antes de Publicar
CONFIG .env.example
Variable PORT usada en código (config.py:4) pero ausente en .env.example. Los usuarios no sabrán que existe.
CONFIG .env.example
Variable DATABASE_URL usada en código pero ausente en .env.example. Debería listarse con valor placeholder.
CONFIG docker-compose.yml:12
POSTGRES_PASSWORD con valor hardcodeado en service db. Debería ser ${POSTGRES_PASSWORD}.
POSTGRES_PASSWORD: hardcoded123
Auditoría de .env.example

Variables en código — falta en .env.example

✗ DATABASE_URL
✗ PORT

Variables en .env.example — presentes en código

✓ OPENAI_API_KEY
✓ RESEND_API_KEY
✓ DEBUG
Auditoría de Historial Git
a1b2c3d (HEAD) Initial open source release HEAD
f4e5d6c Add agent module REVISAR
7g8h9i0 Fix database credentials ⚠ SOSPECHOSO
b1c2d3e Initial commit with .env RIESGO

4 commits detectados — se esperaba exactamente 1 (squash inicial). El commit "Fix database credentials" puede contener credenciales reales en su diff. El commit "Initial commit with .env" puede haber incluido un .env real.

Acción requerida: ejecutar git log -p | grep -iE "(password|secret|api.?key|token)" para inspeccionar los diffs completos, luego hacer squash a un único commit limpio.

✗ Recomendación: NO publicar — corregir los 7 hallazgos críticos

El proyecto cultiva-form-agent presenta múltiples fugas de información que comprometerían la seguridad de los usuarios que lo desplegasen y expondría infraestructura interna de CULTIVA IA. Pasos obligatorios: