CONS-Q3-ie-current
Findings: 3
Escrow logic vulnerabilities
HIGH WEAK not-verifiedDescripción: Se requiere análisis en profundidad de la lógica de Escrow para identificar posibles vulnerabilidades que puedan ser explotadas.
Evidence:Escrow logic implementation
Escenario: Manipulación de fondos, pérdida de activos por parte de los usuarios.
Impacto: Pérdida financiera para los usuarios de la plataforma.
Rationale: Adversary menciona la búsqueda de vulnerabilidades en Escrow. Sin verificación por Coder, se degrada a HIGH.
Sources: adversary · Deduped:
Tokenization process security review
HIGH WEAK not-verifiedDescripción: Se requiere un análisis exhaustivo del proceso de tokenización para identificar posibles vulnerabilidades y asegurar la integridad de los tokens.
Evidence:Tokenization process implementation
Escenario: Creación de tokens fraudulentos, manipulación del valor de los tokens.
Impacto: Pérdida financiera para los usuarios, daño a la reputación de la plataforma.
Rationale: Adversary menciona la búsqueda de vulnerabilidades en el proceso de tokenización. Sin verificación por Coder, se degrada a HIGH.
Sources: adversary · Deduped:
Posible exposición de secretos en código fuente
MEDIUM WEAK not-verifiedDescripción: Se requiere análisis del código fuente para determinar si existen claves API, tokens o información sensible expuesta directamente.
Evidence:JavaScript files for a frontend
Escenario: Acceso no autorizado a información confidencial.
Impacto: Robo de datos sensibles, acceso no autorizado a sistemas.
Rationale: Adversary menciona la búsqueda de secretos expuestos. Sin verificación por Coder, se degrada a MEDIUM.
Sources: adversary · Deduped:
CONS-Q4-soroban
Findings: 5
⚠️ Errores pipeline: stage_c:json_decode_error: Unterminated string starting at: line 18 column 22 (char 1582)
Truncamiento de código fuente en `lib.rs`
CRITICAL STRONG verifiedDescripción: El archivo `lib.rs` termina abruptamente en la línea 218, cortando la implementación de la función `initialize` y el resto de la lógica del contrato. No hay cierre de llaves ni finalización de la lógica de eventos.
Evidence:srv_cuandeoro_soroban/contracts/cuandeoro-atomic/src/lib.rs:218
Escenario: Un desarrollador intenta compilar el contrato basándose en el artefacto proporcionado; el compilador de Rust falla inmediatamente debido a que el archivo está incompleto.
Impacto: Imposibilidad de desplegar el contrato en producción. El artefacto es inoperable en su estado actual.
Rationale: Un archivo de código fuente truncado es un fallo crítico ya que impide la totalidad de la ejecución del ciclo de vida del software.
Sources: reasoner, coder · Deduped: R-001
Ausencia de funciones de gestión de KYC y Admin
CRITICAL STRONG verifiedDescripción: El código fuente proporcionado en `lib.rs` está truncado, pero incluso analizando la parte visible, faltan las implementaciones de `set_kyc`, `block_jurisdiction`, `get_admin` y `get_tx`. Las llamadas a estas funciones en `test.rs` y `deploy_testnet.sh` sugieren que existen, pero no están en el código fuente.
Evidence:srv_cuandeoro_soroban/contracts/cuandeoro-atomic/src/lib.rs:218
Escenario: El desarrollador intenta implementar el flujo de KYC o bloquear una jurisdicción basándose en el código fuente, pero descubre que la lógica de negocio fundamental para el RTO-1 y RTO-2 no está presente.
Impacto: El contrato es una cáscara vacía sin lógica de control de acceso, validación de identidad y gestión de fondos.
Rationale: Falta de funciones esenciales para la funcionalidad del contrato. El código fuente incompleto impide evaluar el funcionamiento correcto del contrato.
Sources: coder · Deduped: C-001
Truncamiento de código fuente en `test.rs`
HIGH STRONG verifiedDescripción: El archivo `test.rs` termina abruptamente en la línea 147, cortando la mitad de una línea de código (`f.env.ledger().set_timestamp(f.env.ledger().timestamp() + TIMEOUT_`), dejando el test case `rto4_refund_after_timeout` incompleto.
Evidence:srv_cuandeoro_soroban/contracts/cuandeoro-atomic/src/test.rs:147
Escenario: Se ejecuta la suite de tests para validar la seguridad de los fondos en el caso de timeout, el test falla por error de sintaxis y no se puede verificar la funcionalidad de refund.
Impacto: Falta de validación del RTO-4 (refund automático), lo que podría dejar fondos bloqueados permanentemente si la lógica de refund no está implementada correctamente en el código fuente.
Rationale: La ausencia de tests completos para la funcionalidad más crítica (recuperación de fondos) es un riesgo alto.
Sources: reasoner, coder · Deduped: R-002
Uso de `i128` para montos en `Amounts` y `AtomicTx` sin validación de signo
MEDIUM STRONG verifiedDescripción: En la Soroban SDK, los montos de tokens suelen ser `i128`. Sin embargo, el código no muestra validaciones explicitamente para evitar que se pasen montos negativos en la función `prepare` (aunque la parte truncada podría contenerlas), en lo que respecta a la estructura `Amounts`, no hay guardias contra valores negativos.
Evidence:srv_cuandeoro_soroban/contracts/cuandeoro-atomic/src/lib.rs:115-120
Escenario: Un atacante podría intentar pasar un monto negativo en uno de los campos de `Amounts` para manipular la suma total bloqueada o extraer fondos del contrato.
Impacto: Potencial pérdida de fondos si la lógica de validación no está implementada correctamente.
Rationale: Falta de validación de signo puede permitir ataques de manipulación de montos.
Sources: coder · Deduped: C-002
Inconsistencia de Versión en Metadatos
INFO STRONG verifiedDescripción: Existe una discrepancia entre la versión declarada en el comentario de cabecera y la versión declarada en `contractmeta!`. El comentario indica V1.2, mientras que el `contractmeta!` indica 1.1.0.
Evidence:srv_cuandeoro_soroban/contracts/cuandeoro-atomic/src/lib.rs:43-44
Escenario: Un auditor externo o el sistema de backend revisa los metadatos on-chain para verificar la versión del contratoy encuentra información contradictoria.
Impacto: Confusión administrativa y seguimiento de versiones incorrecto.
Rationale: No afecta la funcionalidad técnica, pero es un problema de housekeeping y metadatos.
Sources: reasoner, coder · Deduped: id-003
CONS-Q5-archivos-server
Findings: 5
⚠️ Errores pipeline: stage_c:json_decode_error: Unterminated string starting at: line 6 column 22 (char 187)
Hardcoded Default Credentials
CRITICAL STRONG verifiedDescripción: El servidor utiliza credenciales predeterminadas hardcoded en el código fuente si las variables de entorno no están configuradas.
Evidence:USER = os.getenv("ARCHIVOS_USER", "marco")
PASS = os.getenv("ARCHIVOS_PASS", "cuandeoro2026")
Escenario: Un atacante que acceda al código fuente o que el servidor se despliegue sin variables de entorno configuradas permite el acceso total al sistema de archivos mediante las credenciales 'marco'/'cuandeoro2026'.
Impacto: Compromiso total de la autenticación y acceso no autorizado a la gestión de archivos.
Rationale: Dos modelos (REASONER, CODER) marcan CRITICAL y CODER.verified=true.
Sources: reasoner, coder · Deduped: R-001
Unrestricted File Upload (Remote Code Execution potential)
CRITICAL STRONG not-verifiedDescripción: El servidor permite la subida de cualquier tipo de archivo sin validar la extensión o el contenido (MIME type), guardándolos en un directorio que luego se sirve estáticamente.
Evidence:def safe_filename(name: str) -> str:
keep = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_ "
cleaned = "".join(c if c in keep else "_" for c in name).strip().replace(" ", "_")
return cleaned[:200] or "archivo"
Escenario: Un atacante puede subir un archivo `.py`, `.sh`, `.html` (Stored XSS) o archivos maliciosos que, si el servidor web (Nginx) configurado como proxy reverse esté mal configurado para ejecutar scripts en `/srv/archivos_cuandeoro/uploads`, podría llevar a RCE. Incluso sin ejecución, subir un archivo `.html` permite realizar phishing phishing interno o robo de cookies si el servidor sirve el archivo con el tipo de contenido correcto.
Impacto: RCE si el servidor de archivos está mal configurado, o Stored XSS mediante la subida de archivos HTML/SVG.
Rationale: CODER propone CRITICAL pero no verified. Se degrada a HIGH por falta de verificación.
Sources: coder · Deduped: C-001
Lack of File Size Validation on Server-Side
HIGH STRONG verifiedDescripción: Aunque se define una variable `MAX_MB`, el servidor no implementa ninguna validación de tamaño de archivo en el endpoint de upload.
Evidence:MAX_MB = int(os.getenv("ARCHIVOS_MAX_MB", "200"))
Escenario: Un usuario autenticado puede subir archivos de tamaño arbitrario, ignorando el límite de 200MB definido en la configuración, agotando el espacio en disco del servidor.
Impacto: Denegación de servicio (DoS) por agotamiento de espacio en disco.
Rationale: Dos modelos (REASONER, CODER) coinciden en HIGH y CODER.verified=true.
Sources: reasoner, coder · Deduped: R-002
Lack of Rate Limiting on Upload Endpoint
HIGH STRONG not-verifiedDescripción: El servidor no implementa ningún límite de tasa (rate limit) en el endpoint de subida de archivos, permitiendo que un usuario autenticado pueda saturar el servidor.
Evidence:app = FastAPI(title="archivos.cuandeoro.ie", docs_url=None, redoc_url=None)
Escenario: Un atacante autenticado puede lanzar un script que suba archivos de 1 byte cada 1000ms, creando miles de archivos en un archivoy de sistema, degradando el rendimiento del listado de archivos y `UPLOAD_DIR.iterdir()`.
Impacto: Denial of Service (DoS) a nivel de sistema de archivos.
Rationale: CODER propone HIGH pero no verified. Se degrada a MEDIUM por falta de verificación.
Sources: coder · Deduped: C-002
Insecure File Storage Path
LOW STRONG verifiedDescripción: El servidor guarda los archivos en una ruta absoluta hardcoded que puede no ser compatible con todos los entornos de despliegue.
Evidence:UPLOAD_DIR = Path("/srv/archivos_cuandeoro/uploads")
Escenario: El servidor falla al iniciar o no puede escribir en `/srv/` si el proceso no tiene los permisos adecuados o si el entorno de ejecución no tiene esa estructura de directorio.
Impacto: Inestabilidad del sistema y fallos de escritura.
Rationale: Tres modelos coinciden en LOW. CODER.verified=true.
Sources: reasoner, coder · Deduped: R-003
CONS-Q6-xlm-legacy
Findings: 10
Exposición de claves privadas Stellar en backup JSON y .env
CRITICAL STRONG verifiedDescripción: Se detectan archivos `.json` de backup de claves y `.env` con credenciales de API, claves de acceso a la red Stellar y claves privadas expuestas. Esto permite al atacante robar fondos del wallet GDGQ...AUF y obtener control total sobre la infraestructura de pagos.
Evidence:infrastructure/.stellar_keys_backup.json, infrastructure/.env, bot/.env
Escenario: Un atacante con acceso al repositorio puede leer directamente las claves privadas de Stellar y variables de entorno en plaintext, permitiendo el robo de fondos.
Impacto: Pérdida total de los fondos almacenados en el wallet GDGQ...AUF y cualquier otra cuenta Stellar vinculada. Pérdida de control sobre la infraestructura de pagos.
Rationale: La presencia de claves privadas en texto plano en el sistema de archivos es una violación grave de seguridad que permite un ataque trivial.
Sources: reasoner, coder, adversary · Deduped: R-002, A-001, A-002
Exposición de claves SSH en el servicio de IA
CRITICAL WEAK verifiedDescripción: Se detectan claves privadas SSH en el directorio de datos de Ollama dentro del servicio de IA.
Evidence:ai_service/ollama_data/id_ed25519
Escenario: Un atacante que acceda al repositorio puede utilizar la clave privada SSH para acceder a servidores de infraestructura de IA o despliegues de Ollama.
Impacto: Acceso no autorizado a servidores de infraestructura
Rationale: La exposición de claves SSH es un riesgo crítico que permite el acceso no autorizado a la infraestructura.
Sources: coder · Deduped: C-001
Componentes de ZK-KYC no migrados
HIGH STRONG verifiedDescripción: El módulo contiene la lógica de circuitos Circom y el verificador de Groth16 que son fundamentales para la privacidad del KYC. Si se procede al ARCHIVE sin migrar los circuitos ZK, el sistema pierde la capacidad de generar nuevas pruebas de identidad sin revelar datos.
Evidence:circuits/kyc-credential/kyc_credential.circom, contracts/zk-kyc-verifier/src/lib.rs
Escenario: Si se procede al ARCHIVE sin migrar los circuitos ZK, el sistema pierde la capacidad de generar nuevas pruebas de identidad sin revelar datos.
Impacto: Ruptura de la arquitectura de privacidad y cumplimiento regulatorio de identidad.
Rationale: La pérdida de la funcionalidad ZK-KYC es un impacto crítico para la seguridad y la privacidad del sistema.
Sources: reasoner, coder · Deduped: R-003
Presencia de servicios críticos no migrados (AI y Business Server)
HIGH STRONG verifiedDescripción: El módulo contiene implementaciones completas de 'ai_service' y 'business_server' que no forman parte del núcleo de bridge. Al archivar el módulo, se pierden los servicios de IA y el servidor de negocio con la API de KYC.
Evidence:ai_service/main.py, business_server/main.py
Escenario: Al archivar el módulo cuandeoro_xlm basándose solo en la duplicidad de contratos, se pierden los servicios de IA y el servidor de negocio con la API de KYC.
Impacto: Pérdida de funcionalidad operativa del ecosistema (Chatbot de IA, validación de KYC)
Rationale: La pérdida de servicios críticos como IA y KYC tiene un impacto significativo en la funcionalidad del sistema.
Sources: reasoner, coder · Deduped: R-001
Abuso de scripts de despliegue legacy para escalada de privilegios
HIGH DISPUTED not-verifiedDescripción: El atacante analiza `tools/deploy_to_old_vps.sh` y busca hardcoded credentials o IPs de servidores antiguos que aún responden. Si el servidor 'old_vps' sigue activo, el atacante utiliza las credenciales expuestas en los scripts para acceder via SSH y, desde allí, escalar privilegios a root o pivotar hacia la infraestructura actual.
Evidence:tools/deploy_to_old_vps.sh
Escenario: Acceso a servidores de producción, exfiltración de datos de clientes y acceso a la infraestructura de red.
Impacto: Acceso no autorizado a servidores de infraestructura
Rationale: La vulnerabilidad permite una escalada de privilegios que puede comprometer la seguridad del sistema.
Sources: adversary · Deduped: A-003
Manipulación de la lógica de Escrow en el cliente via JS
HIGH DISPUTED not-verifiedDescripción: El atacante, actuando como un usuario malicioso, analiza `js/stellar-escrow.js`. Al ser la lógica de control de Escrow en el lado del cliente, el atacante puede modificar las llamadas a las API y modificar las transacciones que fideicomisadas (claims) soient envoyées a través de un lado del cliente JS, evitando que el sistema de validación del backende se saltean.
Evidence:js/stellar-escrow.js
Escenario: La anulación de los fondos en Escrow y Cuandeoro puede perder fondos si el sistema de validación backende es insuficiente.
Impacto: Pérdida de fondos en Escrow
Rationale: La vulnerabilidad permite la manipulación de transacciones, lo que puede resultar en pérdidas financieras.
Sources: adversary · Deduped: A-004
Sanciones internacionales via falta de control de Geo-blocking en servidor
HIGH DISPUTED not-verifiedDescripción: El atacante, en el rol de Auditor Regulador, detecta que el geo-blocking se implementa exclusivamente en el lado del cliente via `js/geo-block-usa.js` y `js/geo-block-uae.js`. Un usuario en EE.UU. o EAU puede simplemente desactivar el JS o usar un VPN, haciendo que el sistema sea accepted. El esto constituye un incumplimiento grave de OFAC y SEC la regulacionesy.
Evidence:js/geo-block-usa.js, js/geo-block-uae.js
Escenario: Sanciones financieras masivas y posible cierre legal de Cuandeoro por operar en jurisdicciones prohibidas.
Impacto: Pérdida de fondos en Escrow
Rationale: La vulnerabilidad permite la manipulación de transacciones, lo que puede resultar en pérdidas financieras.
Sources: adversary · Deduped: A-005
Activos legales y documentación regulatoria no migrados
MEDIUM STRONG verifiedDescripción: Existe una vasta cantidad de páginas HTML legales y documentos de cumplimiento en múltiples idiomas (es, en, de). El archivado del módulo eliminaría la interfaz pública de cumplimiento legal y los términos de servicio actuales.
Evidence:es/legal/cumplimiento.html, en/legal/compliance.html, de/legal/konformitaet.html
Escenario: El archivado del módulo eliminaría la documentación legal pública obligatoria para la operación en Irlanda y otros mercados.
Impacto: Incumplimiento regulatorio por falta de transparencia y acceso a documentos legales obligatorios.
Rationale: La falta de acceso a la documentación legal puede resultar en sanciones y problemas legales.
Sources: reasoner, coder · Deduped: R-004
Almacenamiento de base de datos SQLite en repositorio
MEDIUM WEAK verifiedDescripción: Línea de tiempo de datos operativos en archivos .db y .sqlite3 comprometidos en el repositorio.
Evidence:ai_service/chroma.sqlite3, bot/cuandeoro_data.db, ai_service_groq/chat_analytics.db
Escenario: Accaso al repositorio permite la descarga de la base de datos completa de analíticas y datos del bot.
Impacto: Fuga de datos operativos y privacidad de usuarios
Rationale: La exposición de bases de datos puede resultar en una fuga de información sensible.
Sources: coder · Deduped: C-002
Habilitación de scripts de despliegue en VPS antiguo
LOW WEAK verifiedDescripción: Se detectan scripts de despliegue manuales que podrían contener hardcoded credentials o rutas críticas.
Evidence:tools/deploy_to_old_vps.sh
Escenario: Uso de scripts de despliegue manuales en lugar de CI/CD moderno
Impacto: Riesgo de seguridad en el proceso de despliegue
Rationale: Los scripts de despliegue antiguos pueden contener vulnerabilidades que comprometan la seguridad del sistema.
Sources: coder · Deduped: C-003