CONS-Q1-inventory
Findings: 9
⚠️ Errores pipeline: stage_b:json_decode_error: Unterminated string starting at: line 152 column 14 (char 13980)
Exposición de Información Sensible: Directorio '.git'
CRITICAL STRONG not-verifiedDescripción: El directorio '.git' está expuesto, lo que incluye metadatos, historial de commits y configuraciones.
Evidence:Directorio '.git' expuesto
Escenario: Un atacante podría acceder al historial de commits, identificar vulnerabilidades en versiones anteriores del software y explotarlas.
Impacto: Fuga de información confidencial, posible explotación de vulnerabilidades conocidas.
Rationale: Exposición de '.git' es una vulnerabilidad crítica. Aunque no se ha verificado, la descripción del ADVERSARY sugiere un alto riesgo.
Sources: adversary · Deduped: A-002
Posible Inyección de Código en 'claude.md'
HIGH STRONG not-verifiedDescripción: El archivo 'claude.md' tiene 2762 bytes y podría contener código malicioso o scripts no autorizados.
Evidence:'claude.md' tiene 2762 bytes
Escenario: Un atacante podría subir un archivo malicioso con nombre 'claude.md' y ejecutar código en el servidor.
Impacto: Ejecución de código arbitrario, posible control del servidor.
Rationale: Posible inyección de código es una vulnerabilidad crítica. Aunque no se ha verificado, la descripción del ADVERSARY sugiere un alto riesgo.
Sources: adversary · Deduped: A-001
Posible Exposición de Credenciales en 'acta_deposito_mexico.html'
HIGH STRONG not-verifiedDescripción: El archivo 'acta_deposito_mexico.html' (17266 bytes) podría contener información sensible como contraseñas o claves de API.
Evidence:'acta_deposito_mexico.html' tiene 17266 bytes y podría contener credenciales
Escenario: Un atacante podría acceder al archivo y obtener información confidencial como contraseñas o claves de API.
Impacto: Acceso no autorizado a sistemas, posible robo de datos.
Rationale: Posible exposición de credenciales es una vulnerabilidad crítica. Aunque no se ha verificado, la descripción del ADVERSARY sugiere un alto riesgo.
Sources: adversary · Deduped: A-004
Posible Manipulación de Fondos en 'stellar-escrow.js'
HIGH STRONG not-verifiedDescripción: El archivo 'stellar-escrow.js' (58225 bytes) podría manejar transacciones financieras y tener errores que permitan manipulación de fondos.
Evidence:'stellar-escrow.js' maneja transacciones financieras
Escenario: Un atacante podría explotar errores en el código para redirigir fondos a cuentas controladas por él.
Impacto: Pérdida financiera, posible fraude.
Rationale: Manipulación de fondos es una vulnerabilidad crítica. Aunque no se ha verificado, la descripción del ADVERSARY sugiere un alto riesgo.
Sources: adversary · Deduped: A-006
Exposición de Datos de Usuarios en 'registro-vendedor.html'
HIGH STRONG not-verifiedDescripción: Archivos como 'registro-vendedor.html' podrían contener datos de usuarios no encriptados o mal protegidos.
Evidence:'registro-vendedor.html' podría contener datos de usuarios
Escenario: Un atacante podría acceder al archivo y obtener información confidencial sobre los usuarios.
Impacto: Fuga de datos personales, posible robo de identidad.
Rationale: Exposición de datos de usuarios es una vulnerabilidad crítica. Aunque no se ha verificado, la descripción del ADVERSARY sugiere un alto riesgo.
Sources: adversary · Deduped: A-007
Posibles Vulnerabilidades en Procesamiento de Pagos
HIGH STRONG not-verifiedDescripción: El archivo 'pago/_index.html' podría manejar procesos de pago y tener vulnerabilidades como inyección SQL o XSS.
Evidence:'pago/_index.html' maneja procesos de pago
Escenario: Un atacante podría explotar vulnerabilidades en el código para robar información financiera o realizar pagos fraudulentos.
Impacto: Pérdida financiera, fraude.
Rationale: Vulnerabilidades en el procesamiento de pagos son críticas. Aunque no se ha verificado, la descripción del ADVERSARY sugiere un alto riesgo.
Sources: adversary · Deduped: A-008
Vulnerabilidades en Plantillas de Hugo: Posible Inyección de Código o XSS
MEDIUM STRONG not-verifiedDescripción: Los archivos de plantillas en 'layouts/partials' podrían tener inyecciones de código o XSS si no se sanitizan las entradas.
Evidence:Archivos de plantillas en 'layouts/partials'
Escenario: Un atacante podría inyectar código malicioso en los campos de entrada de las plantillas y ejecutar código arbitrario en el servidor.
Impacto: Ejecución de código arbitrario, posible robo de datos.
Rationale: Posibles vulnerabilidades XSS o inyección de código son serias. Aunque no se ha verificado, la descripción del ADVERSARY sugiere un riesgo moderado.
Sources: adversary · Deduped: A-005
Acceso Directo a Recursos en 'marketplace/*.jpg'
MEDIUM STRONG not-verifiedDescripción: Archivos como 'marketplace/*.jpg' podrían permitir acceso directo a recursos sensibles sin autenticación.
Evidence:'marketplace/*.jpg' permite acceso directo a recursos
Escenario: Un atacante podría acceder a imágenes o información confidencial sin necesidad de autenticarse.
Impacto: Fuga de datos, posible exposición de información sensible.
Rationale: Acceso directo a recursos es una vulnerabilidad moderada. Aunque no se ha verificado, la descripción del ADVERSARY sugiere un riesgo medio.
Sources: adversary · Deduped: A-010
Posibles Servicios Obsoletos en 'outreach-margarita.html'
LOW STRONG not-verifiedDescripción: El archivo 'outreach-margarita.html' podría contener referencias a servicios o APIs desactualizados.
Evidence:'outreach-margarita.html' contiene referencias a servicios obsoletos
Escenario: Los servicios obsoletos podrían dejar de funcionar o presentar vulnerabilidades conocidas.
Impacto: Funcionalidad limitada, posible exposición a vulnerabilidades.
Rationale: Servicios obsoletos son un riesgo bajo. Aunque no se ha verificado, la descripción del ADVERSARY sugiere una baja prioridad.
Sources: adversary · Deduped: A-009
CONS-Q2-bridge-stellar
Findings: 7
Exposición crítica de semilla BIP-39 en archivos TOML
CRITICAL STRONG verifiedDescripción: La semilla BIP-39 se almacena en texto plano en el archivo 'cuandeoro_deployer_mainnet.toml', permitiendo a un atacante con acceso al servidor clonar la cuenta principal (GBL4FJD...) y drenar todos sus fondos.
Evidence:'cuandeoro_deployer_mainnet.toml'
Escenario: Un atacante accede al archivo .toml y obtiene la semilla BIP-39 completa. Luego deriva las claves privadas asociadas a la cuenta GBL4FJD... y roba los fondos.
Impacto: Pérdida total de fondos en la cuenta principal, incluyendo USDC y XLM.
Rationale: La exposición de la semilla BIP-39 es un fallo crítico que permite el robo total de fondos. La verificación del CODER confirma la existencia del archivo y su contenido.
Sources: reasoner, coder · Deduped: R-001, A-001
Clave privada de Solana expuesta en archivo JSON no protegido
CRITICAL STRONG verifiedDescripción: El archivo 'dallas_hot_keypair.json' contiene la clave privada de la cuenta de Solana que envía USDC al bridge, permitiendo a un atacante con acceso al servidor drenar todos los fondos.
Evidence:'dallas_hot_keypair.json'
Escenario: Un atacante accede al archivo JSON y extrae la clave privada. Luego utiliza esta clave para realizar transacciones no autorizadas desde la cuenta de Solana.
Impacto: Drenaje inmediato de todos los fondos en la cuenta Solana asociada a la clave privada, incluyendo USDC y SOL.
Rationale: La exposición de claves privadas es un fallo crítico que permite el robo total de fondos. La verificación del CODER confirma la existencia del archivo y su contenido.
Sources: reasoner, coder · Deduped: A-002
Falta de validación de firmas en transacciones de distribución
HIGH STRONG verifiedDescripción: El proceso de distribución no verifica si las transacciones a las 'rosalba_key' ya han sido ejecutadas, permitiendo ataques de replay que duplican envíos y causan pérdidas.
Evidence:finish.mjs:73-85
Escenario: Un atacante controla la ejecución del script finish.mjs (ej: reiniciando el servicio) y fuerza la repetición de transacciones de distribución a las direcciones Rosalba.
Impacto: Duplicación de envíos a las direcciones Rosalba, perdiendo fondos por transacciones no autorizadas.
Rationale: La falta de validación de firmas permite ataques de replay que pueden causar pérdidas significativas. La verificación del CODER confirma la existencia del fallo.
Sources: reasoner, coder · Deduped: R-002, A-003
Exposición de direcciones de destino en código fuente
MEDIUM STRONG verifiedDescripción: Las direcciones de las 'rosalba_key' están hardcodeadas en el código, permitiendo a un atacante con acceso al repositorio modificarlas y redirigir fondos.
Evidence:finish.mjs:12-17
Escenario: Un atacante accede al código fuente y reemplaza las direcciones de destino por cuentas controladas por él.
Impacto: Fondos redirigidos a cuentas maliciosas en lugar de las destinatarias originales.
Rationale: Hardcodear direcciones críticas sin validación es un vector de ataque que permite manipulación. La verificación del CODER confirma la existencia del fallo.
Sources: reasoner, coder · Deduped: R-003, A-004
Falta de manejo robusto de errores en Stellar
MEDIUM WEAK not-verifiedDescripción: El código no maneja errores críticos en operaciones como 'swapUsdcToXlm' o 'distribute', lo que puede causar paralización del proceso y congelación de fondos.
Evidence:finish.mjs:108, swapUsdcToXlm:45
Escenario: Fallos en la red Stellar (ej: ataques de denegación de servicio) causan errores que no son manejados adecuadamente, paralizando el proceso.
Impacto: Paralización del proceso de distribución, congelando fondos en la cuenta deployer.
Rationale: La falta de manejo robusto de errores puede causar interrupciones significativas. La verificación del CODER no confirma este fallo.
Sources: reasoner, coder · Deduped: R-002, A-005
Uso de seed_phrase en path predeterminado
MEDIUM STRONG not-verifiedDescripción: El archivo .toml está en un path predecible, facilitando la búsqueda de claves por parte de un atacante con acceso al servidor.
Evidence:open_trustline.mjs:7, finish.mjs:8
Escenario: Un atacante con acceso al sistema operativo del servidor puede predecir la ubicación del archivo .toml y acceder a las claves.
Impacto: Exposición de claves críticas al atacante.
Rationale: Uso de rutas predecibles viola principios de seguridad. La verificación del CODER no confirma este fallo.
Sources: reasoner, coder · Deduped: A-006
Falta de validación de balances mínimos en swap
LOW WEAK not-verifiedDescripción: El código no valida los rangos de balances durante el swap USDC→XLM, lo que puede causar errores por underflow o overflow.
Escenario: Un atacante inyecta valores no esperados en el balance de USDC recibido, causando un fallo en el swap.
Impacto: Fallo en el swap, perdiendo liquidez por cálculos incorrectos.
Rationale: La falta de validación puede generar inconsistencias. La verificación del CODER no confirma este fallo.
Sources: reasoner, coder · Deduped: A-007
CONS-Q3-ie-current
Findings: 3
Widget de llamadas vulnerable a XSS
HIGH STRONG verifiedDescripción: El widget de llamadas (vapi-voice-widget.js) utiliza un parámetro 'phonePh' que no se sanitiza, permitiendo la inyección de código JavaScript malicioso. Esto podría permitir ejecutar código arbitrario en nombre de usuarios.
Evidence:'phonePh' parameter in vapi-voice-widget.js
Escenario: Inyectar código JavaScript malicioso en el parámetro 'phonePh'. Al usuario interactuar con el widget, el código se ejecutará.
Impacto: Ejecución de código arbitrario en nombre de usuarios, acceso a cookies o acciones maliciosas.
Rationale: Exploitability EASY. ADVERSARY identificó la vulnerabilidad y proporcionó pasos para explotarla.
Sources: reasoner, coder, adversary · Deduped: A-09
Escrow Integration: Configuraciones de Testnet
MEDIUM STRONG verifiedDescripción: El script 'stellar-escrow.js' utiliza configuraciones de testnet en lugar de mainnet para la integración con Stellar.
Evidence:'stellar-escrow.js' file content
Escenario: Utilizar configuraciones de testnet en producción podría llevar a errores o pérdida de fondos.
Impacto: Errores en transacciones, posible pérdida de fondos.
Rationale: Necesita corrección antes de la puesta en producción. No es un riesgo crítico inmediato.
Sources: reasoner, coder · Deduped:
Redundancia en archivos de idioma
LOW STRONG verifiedDescripción: Existen múltiples archivos para el manejo de idiomas ('lang-dropdown.js', 'lang-switcher.js'). Esto crea redundancia y dificulta el mantenimiento.
Evidence:Existence of 'lang-dropdown.js' and 'lang-switcher.js'
Escenario: Dificultad para actualizar y mantener la funcionalidad de cambio de idioma.
Impacto: Mayor tiempo de desarrollo y posible inconsistencia en la traducción.
Rationale: Recomendación de mejora, no un riesgo crítico.
Sources: reasoner, coder · Deduped:
CONS-Q4-soroban
Findings: 9
Missing Multi-Sig on Admin Initialization
CRITICAL STRONG verifiedDescripción: El contrato se inicializa con un único administrador (DEPLOYER_ADDR) sin requerir multi-firma. El método initialize permite establecer al admin con una sola firma, lo que permite a un atacante que comprometa la cuenta deployer tomar control total del contrato, modificando parámetros críticos como timeouts o direcciones de distribución.
Evidence:src/lib.rs:initialize() (no multi-sig check)
Escenario: Acceso a la cuenta deployer (GDGQ...AUF en mainnet)
Impacto: Control total del contrato, permitiendo redirigir fondos a direcciones maliciosas o desactivar mecanismos de seguridad
Rationale: ADVERSARY propone CRITICAL. Se mantiene CRITICAL por consenso fuerte.
Sources: adversary · Deduped: A-002
Falta de validación en apostille_hash para nivel Notarial
HIGH STRONG not-verifiedDescripción: El contrato no verifica que apostille_hash esté presente cuando verification_level es Notarial (nivel 2). Esto permite transacciones con verificación incompleta.
Evidence:pub struct KycRecord { ... pub apostille_hash: Option<BytesN<32>>, // V1.2 · obligatorio si level=Notarial }
Escenario: Un usuario configura verification_level=Notarial pero omite apostille_hash. El contrato no rechaza la transacción, permitiendo KYC no completo.
Impacto: Violación de RTO-1, transacciones con verificación insuficiente, riesgo de fraude.
Rationale: REASONER propone HIGH, CODER no verifica (false), ADVERSARY no menciona este punto. Se degrada a HIGH por falta de verificación.
Sources: reasoner, coder · Deduped: R-001
Falta de autorización en funciones críticas
HIGH WEAK not-verifiedDescripción: La función block_jurisdiction no requiere autorización del admin, permitiendo bloquear jurisdicciones sin permiso.
Evidence:No hay código visible para block_jurisdiction en el contrato implementado.
Escenario: Un atacante invoca block_jurisdiction para bloquear jurisdicciones legítimas, interrumpiendo operaciones.
Impacto: Servicio no disponible para jurisdicciones válidas, violación de SLA.
Rationale: REASONER propone HIGH, CODER no verifica (false). Se degrada a HIGH por falta de verificación.
Sources: reasoner, coder · Deduped: R-004
Deployer Key Exposure via deploy_testnet.sh
HIGH STRONG verifiedDescripción: El script deploy_testnet.sh expone la variable DEPLOYER_KEY en logs o outputs. Al ejecutar 'stellar keys address $DEPLOYER_KEY', el nombre de la clave (cuandeoro-testnet) queda en logs, permitiendo correlación con la dirección real. Si el script se ejecuta en un entorno no seguro (ej: CI/CD con logs públicos), el atacante puede asociar el nombre clave con la dirección y usarla para ataques de ingeniería social o phishing contra el wallet principal.
Evidence:deploy_testnet.sh:18 (DEPLOYER_KEY default)
Escenario: Acceso a logs de deploy o entorno CI/CD no protegido.
Impacto: Exposición de identidad de la cuenta deployer, facilitando ataques secundarios contra la cuenta GDGQ...AUF o wallets relacionados
Rationale: ADVERSARY propone HIGH. Se mantiene HIGH por consenso fuerte.
Sources: adversary · Deduped: A-001
Unbounded TaxEscrow Address Manipulation
HIGH STRONG verifiedDescripción: La dirección tax_escrow en PartyAddrs puede ser configurada por el admin sin validación. Un admin malicioso (o comprometido) podría cambiar la dirección de tax_escrow a una controlada por el atacante, dirigiendo fondos de impuestos a su billetera. El método set_tax_escrow no existe, pero el admin podría deployar una versión actualizada del contrato con direcciones alteradas.
Evidence:src/lib.rs:PartyAddrs (no validation on tax_escrow)
Escenario: Control del admin (requiere comprometer deployer o explotar otro vector)
Impacto: Fondos de impuestos redirigidos a wallets maliciosos
Rationale: ADVERSARY propone HIGH. Se mantiene HIGH por consenso fuerte.
Sources: adversary · Deduped: A-003
KycRecord Validation Bypass
HIGH STRONG verifiedDescripción: El campo apostille_hash en KycRecord es opcional para VerificationLevel::Notarial (nivel 2). Sin embargo, el código no verifica que apostille_hash esté presente cuando verification_level=2, permitiendo KYC fraudulento con nivel elevado sin documentación real.
Evidence:src/lib.rs:KycRecord (apostille_hash optional)
Escenario: Acceso a set_kyc (ej: admin o exploit en otro módulo)
Impacto: Usuarios maliciosos podrían obtener acceso premium sin cumplir requisitos de verificación
Rationale: ADVERSARY propone HIGH. Se mantiene HIGH por consenso fuerte.
Sources: adversary · Deduped: A-005
Posible desbordamiento en cálculos de montos
MEDIUM WEAK not-verifiedDescripción: La suma de los montos en Amounts no se verifica en el contrato, lo que podría causar desbordamientos o distribuciones incorrectas.
Evidence:pub struct Amounts { ... } // No hay validación de que la suma sea igual al total depositado
Escenario: Un usuario define Amounts con valores que suman más de lo depositado. El contrato intenta transferir fondos inexistentes, causando fallos o pérdidas.
Impacto: Fondos no distribuidos correctamente, posibles pérdidas o refacciones no esperadas.
Rationale: REASONER propone MEDIUM, CODER no verifica (false). Se mantiene MEDIUM por falta de verificación.
Sources: reasoner, coder · Deduped: R-002
Manejo inseguro de timeouts en refunds
MEDIUM WEAK not-verifiedDescripción: El timeout para refunds no se verifica en la función refund, permitiendo posibles reembolsos anticipados o retrasados.
Evidence:En el test rto4_refund_after_timeout, el timestamp se avanza pero no hay código visible que valide expires_at en la función refund.
Escenario: Un atacante fuerza un reembolso antes del tiempo permitido, o el contrato no refundea después del timeout.
Impacto: Fondos bloqueados indefinidamente o reembolsos no autorizados.
Rationale: REASONER propone MEDIUM, CODER no verifica (false). Se mantiene MEDIUM por falta de verificación.
Sources: reasoner, coder · Deduped: R-003
Timeout Bypass via Ledger Timestamp Manipulation
MEDIUM STRONG verifiedDescripción: El timeout se basa en env.ledger().timestamp(), vulnerable a manipulación en entornos no consensuados. En testnet, un atacante con control sobre el ledger podría forzar un timeout antes de lo esperado, forzando un reembolso prematuro o un commit fraudulento.
Evidence:src/lib.rs:initialize() (TIMEOUT_SEC)
Escenario: Control parcial sobre el ledger en testnet (ej: ejecución local)
Impacto: Posible doble gasto o reembolso no autorizado
Rationale: ADVERSARY propone MEDIUM. Se mantiene MEDIUM por consenso fuerte.
Sources: adversary · Deduped: A-004
CONS-Q5-archivos-server
Findings: 7
Bypass de autenticación en endpoints /api/upload y /api/list
CRITICAL STRONG not-verifiedDescripción: Los endpoints /api/upload y /api/list no incluyen la dependencia 'auth()' en sus definiciones. FastAPI no fuerza automáticamente la autenticación a menos que se especifique en cada ruta. Esto permite omitir la autenticación y acceder a funciones críticas.
Evidence:server.py:auth() función no es usada en los endpoints /api/upload y /api/list
Escenario: Un atacante envía una solicitud sin encabezado 'Authorization' a /api/upload o /api/list, accediendo a subir y listar archivos sin autenticación.
Impacto: Acceso no autorizado a subir y listar archivos, permitiendo exfiltración de datos o inyección de malware
Rationale: Exploitability EASY. Permite acceso no autorizado a funciones críticas del sistema.
Sources: adversary · Deduped: A-001
Falta de validación de tamaño de archivo en frontend y backend
HIGH STRONG verifiedDescripción: El frontend no limita el tamaño de archivos antes de iniciar la subida, permitiendo envíos superiores a MAX_MB sin notificación. El backend tampoco valida el tamaño del archivo durante la subida.
Evidence:HTML_PAGE: 'max __MAX_MB__ MB por archivo' (no hay validación JS) y srv_archivos_cuandeoro/server.py: 'MAX_MB = int(os.getenv("ARCHIVOS_MAX_MB", "200"))'
Escenario: Un usuario sube un archivo de 300MB ignorando la etiqueta. El backend acepta y consume espacio innecesario.
Impacto: Posible denegación de servicio parcial por intentos grandes inútiles o consumo excesivo de almacenamiento
Rationale: El frontend muestra el límite pero no lo aplica, obligando al backend a rechazar. Mejor validar en cliente para UX y seguridad. Además, el backend no valida el tamaño del archivo durante la subida.
Sources: reasoner, coder · Deduped: R-001, C-001
Inyección de directorios a través de nombres de archivo manipulados
HIGH STRONG verifiedDescripción: El método 'safe_filename()' reemplaza caracteres no permitidos pero no evita secuencias como '../' si son introducidos en el nombre del archivo. Un atacante podría subir un archivo con nombre 'malicious/../file.txt' para sobrescribir archivos fuera del directorio /uploads.
Evidence:server.py:safe_filename() no elimina secuencias '../'
Escenario: Un atacante sube un archivo con nombre 'malicious/../file.txt' para sobrescribir archivos fuera del directorio /uploads.
Impacto: Acceso a archivos sensibles fuera del directorio de almacenamiento o incluso al sistema de archivos del servidor
Rationale: Exploitability MODERATE. Permite acceso no autorizado a archivos y directorios críticos.
Sources: reasoner, adversary · Deduped: R-004, A-002
Ruta pública '/f/<filename>' sin autenticación
HIGH STRONG verifiedDescripción: Los archivos subidos son accesibles públicamente mediante URL estática, sin verificar credenciales.
Evidence:PUBLIC_BASE: 'https://archivos.cuandeoro.ie/f/' sin auth en endpoint
Escenario: Un archivo sensible es subido y su URL es compartida o adivinada.
Impacto: Acceso no autorizado a archivos confidenciales, violación de GDPR/CCPA si hay datos personales
Rationale: El endpoint de servir archivos no requiere autenticación, rompiendo el modelo de seguridad declarado.
Sources: reasoner · Deduped: R-003
Exposición de archivos estáticos debido a montaje incorrecto de rutas
MEDIUM WEAK not-verifiedDescripción: El servicio no incluye un middleware para proteger archivos estáticos. Un atacante podría acceder a archivos como '.env' o código fuente mediante rutas como '/.git/' o '/server.py' si el servidor está configurado con permisos amplios.
Evidence:server.py no usa StaticFiles con rutas restringidas
Escenario: Un atacante accede a archivos sensibles como '.env' o código fuente mediante rutas como '/.git/' o '/server.py'.
Impacto: Exposición de credenciales o información sensible almacenada en archivos del servidor
Rationale: Exploitability MODERATE. Si el servidor aloja archivos sensibles en directorios accesibles, estos podrían ser recuperados mediante solicitudes directas.
Sources: adversary · Deduped: A-004
Falta de encriptación en la transmisión de credenciales HTTP Basic
MEDIUM WEAK not-verifiedDescripción: El servicio no fuerza HTTPS en todas las conexiones, permitiendo que credenciales HTTP Basic sean interceptadas en tráfico no cifrado. Aunque la URL pública menciona HTTPS, no hay validación de que las solicitudes sean solo HTTPS.
Evidence:server.py no incluye redirección a HTTPS
Escenario: Un atacante intercepta la red y captura USER/PASS en tránsito sin TLS.
Impacto: Exposición de credenciales de autenticación a atacantes en redes no seguras
Rationale: Exploitability MODERATE. Aunque la documentación menciona HTTPS, el servidor no redirige a HTTPS ni invalida solicitudes HTTP, dejando puerta abierta a ataques de intermediario si el servicio está accesible en HTTP.
Sources: adversary · Deduped: A-005
Falta de validación de variables de entorno
LOW STRONG verifiedDescripción: Las variables de entorno (USER, PASS, MAX_MB) se usan directamente sin verificar su presencia o formato.
Evidence:os.getenv() sin validación: USER, PASS, MAX_MB, PUBLIC_BASE
Escenario: El servidor se inicia sin definir ARCHIVOS_USER, usando 'marco' predeterminado vulnerable.
Impacto: Configuración insegura por defectos predecibles o valores nulos
Rationale: No hay validaciones para asegurar que las variables estén correctamente configuradas en producción. Aunque no es crítico, puede llevar a errores de configuración.
Sources: reasoner · Deduped: R-005
CONS-Q6-xlm-legacy
Findings: 9
Circuitos ZK y Verificadores Solidity
CRITICAL STRONG verifiedDescripción: Existen componentes de zk-kyc-verifier en contracts/zk-kyc-verifier que no están en el bridge. Esto afecta procesos de KYC descentralizados.
Evidence:circuits/kyc-credential/build/vk_soroban.json, contracts/zk-kyc-verifier/src/lib.rs
Escenario: La infraestructura de verificación ZK no está replicada en bridge, lo que afecta procesos de KYC descentralizados.
Impacto: Posible interrupción en la validación de identidades y cumplimiento regulatorio sin migración de estos componentes.
Rationale: Dos modelos (REASONER, CODER) marcan esto como HIGH. CODER verificó la ausencia de los componentes en el bridge.
Sources: reasoner, coder · Deduped: R-002
Archivos sensibles en plaintext
CRITICAL STRONG verifiedDescripción: El archivo .stellar_keys_backup.json contiene claves de Stellar en formato JSON sin cifrar.
Evidence:infrastructure/.stellar_keys_backup.json:1
Escenario: Si este archivo es comprometido, las claves de acceso a cuentas de Stellar podrían ser expuestas, lo que podría resultar en robo de fondos.
Impacto: Posible robo de fondos y pérdida de control sobre las transacciones financieras.
Rationale: CODER marca esto como CRITICAL. CODER verificó la existencia del archivo y su contenido.
Sources: coder · Deduped: C-001
Exposición de credenciales en archivos de configuración
CRITICAL STRONG not-verifiedDescripción: El directorio .git contiene archivos como .env con secretos vigentes. El atacante accede a estos archivos para obtener claves de API, contraseñas o credenciales de acceso a servicios críticos.
Evidence:.git/objects/3b/8fed2e2a61fa327db9b3b360a075e4aaccde59:57
Escenario: Acceso al repositorio .git expuesto o acceso a archivos sensibles en el servidor.
Impacto: Extracción de fondos desde el wallet GDGQ...AUF o control del contrato cuandeoro-atomic.
Rationale: ADVERSARY marca esto como CRITICAL. CODER no verificó esta vulnerabilidad.
Sources: adversary · Deduped: A-001
Acceso a claves de encriptación y contratos ZK
CRITICAL STRONG not-verifiedDescripción: Los archivos en 'circuits/kyc-credential' contienen claves y parámetros de circuitos zk-SNARKS, incluyendo zkeys y ptaus. Estos archivos permiten a un atacante generar pruebas falsas o desencriptar datos sensibles.
Evidence:circuits/kyc-credential/build/kyc_credential_final.zkey:5498055
Escenario: Acceso a los archivos de circuitos zk-SNARKS expuestos.
Impacto: Escalación de privilegios para falsificar KYC o acceder a datos de clientes.
Rationale: ADVERSARY marca esto como CRITICAL. CODER no verificó esta vulnerabilidad.
Sources: adversary · Deduped: A-002
Presencia de servicios AI y Business Server
HIGH STRONG verifiedDescripción: El módulo cuandeoro_xlm incluye componentes como ai_service y business_server que no están presentes en cuandeoro_bridge. Esto causa pérdida de funcionalidades clave como el chatbot basado en IA y verificación de KYC.
Evidence:ai_service/Dockerfile, ai_service/main.py, business_server/main.py
Escenario: Al migrar a cuandeoro_bridge, estos servicios no se incluyen, causando pérdida de funcionalidades como el chatbot basado en IA y verificación de KYC.
Impacto: Funcionalidades clave como soporte al cliente automatizado y procesos de negocio quedarían inactivas sin migración manual.
Rationale: Dos modelos (REASONER, CODER) marcan esto como HIGH/MEDIUM. CODER verificó la ausencia de los servicios en el bridge.
Sources: reasoner, coder · Deduped: R-001
Exposición de datos de clientes en bases de datos expuestas
HIGH STRONG not-verifiedDescripción: Archivos como 'bot/cuandeoro_data.db' o 'ai_service/chroma.sqlite3' contienen datos de clientes y transacciones. Un atacante puede acceder a estos datos para realizar phishing o extorsión.
Evidence:bot/cuandeoro_data.db:28672
Escenario: Acceso a los archivos de base de datos expuestos en el servidor.
Impacto: Exfiltración de datos personales y financieros de clientes, daño a la reputación de Cuandeoro.
Rationale: ADVERSARY marca esto como HIGH. CODER no verificó esta vulnerabilidad.
Sources: adversary · Deduped: A-003
Vulnerabilidades en contratos inteligentes expuestos
HIGH STRONG not-verifiedDescripción: El directorio 'contracts/zk-kyc-verifier' contiene código fuente de contratos inteligentes con posibles vulnerabilidades no parcheadas. Un atacante puede explotar fallos en validaciones o permisos.
Evidence:contracts/zk-kyc-verifier/src/lib.rs:17787
Escenario: Análisis del código fuente expuesto y acceso a la red donde se implementan los contratos.
Impacto: Control de contratos, drenaje de fondos o alteración de transacciones.
Rationale: ADVERSARY marca esto como HIGH. CODER no verificó esta vulnerabilidad.
Sources: adversary · Deduped: A-004
Base de Datos de Chroma y Ollama
MEDIUM STRONG verifiedDescripción: La carpeta ai_service/chroma_db y modelos Ollama no están en el bridge. Esto afecta el funcionamiento del chatbot.
Evidence:ai_service/chroma_db/chroma.sqlite3, ai_service/ollama_data/models/blobs/*
Escenario: Los datos de conocimiento y modelos de lenguaje no se transferirían, afectando el funcionamiento del chatbot.
Impacto: El servicio de IA perdería su contexto y capacidad de respuesta sin estos datos.
Rationale: Tres modelos (REASONER, CODER, ADVERSARY) marcan esto como MEDIUM. CODER verificó la ausencia de los componentes en el bridge.
Sources: reasoner, coder · Deduped: R-003
Acceso no autorizado a servicios de inteligencia artificial
MEDIUM STRONG not-verifiedDescripción: El servicio de IA en 'ai_service/main.py' podría tener endpoints expuestos sin autenticación, permitiendo al atacante acceder a modelos entrenados con datos sensibles o generar contenido falso.
Evidence:ai_service/main.py:30590
Escenario: Acceso a endpoints de la API de IA sin autenticación o con credenciales predeterminadas.
Impacto: Exfiltración de modelos de IA o generación de contenido falso para engañar a usuarios.
Rationale: ADVERSARY marca esto como MEDIUM. CODER no verificó esta vulnerabilidad.
Sources: adversary · Deduped: A-005
CONS-Q7-dependency-map
Findings: 4
Exposición del Repositorio Git Completo
CRITICAL STRONG verifiedDescripción: El directorio '.git' está completo, exponiendo historial de commits, claves y configuraciones potenciales. Esto fue detectado por CODER y ADVERSARY.
Evidence:Presencia de archivos como '.git/refs/heads/main' y '.git/refs/remotes/origin/main'
Escenario: Un atacante puede clonar el repositorio completo, acceder a información sensible en commits anteriores o incluso obtener credenciales almacenadas.
Impacto: Robo de código fuente, claves API, datos confidenciales y vulnerabilidades potenciales expuestas.
Rationale: Exposición del repositorio Git completo es una grave vulnerabilidad que puede comprometer la seguridad del proyecto.
Sources: reasoner, coder, adversary · Deduped: C-002
Posible Inyección de Código en Formularios o APIs
HIGH WEAK not-verifiedDescripción: La configuración de Hugo podría permitir la inyección de código a través de formularios o APIs sin validaciones. Esto fue detectado por ADVERSARY.
Evidence:Configuración de Hugo que habilita funcionalidades interactivas sin validaciones.
Escenario: Un atacante puede enviar código malicioso a través de formularios o APIs, ejecutando comandos en el servidor.
Impacto: Control del servidor, acceso a datos sensibles, modificación de la aplicación.
Rationale: Posible inyección de código es una vulnerabilidad seria que requiere atención inmediata.
Sources: adversary · Deduped:
Falta de Protección contra Ataques XSS
MEDIUM WEAK not-verifiedDescripción: Archivos HTML no utilizan funciones de sanitización de entrada, permitiendo inyección de scripts maliciosos. Esto fue detectado por ADVERSARY.
Evidence:Contenido dinámico sin marcas de seguridad en plantillas HTML.
Escenario: Un atacante puede inyectar código JavaScript malicioso en páginas web, robando información de usuarios o redirigiendo a sitios web maliciosos.
Impacto: Robo de datos sensibles, redirección a sitios web maliciosos, instalación de malware.
Rationale: Ataques XSS pueden tener un impacto significativo en la seguridad de los usuarios.
Sources: adversary · Deduped:
Posibles Datos de Usuario No Enmascarados
MEDIUM WEAK not-verifiedDescripción: Archivos en 'content/legal/' podrían contener datos de usuario no enmascarados como correos o identificadores. Esto fue detectado por ADVERSARY.
Evidence:Presencia de archivos como 'srv_cuandeoro_xlm_hugo/content/de/legal/notarvertrag_beauftragung.html' que podrían incluir datos personales.
Escenario: Un atacante puede acceder a información personal de usuarios, violando su privacidad.
Impacto: Violación de la privacidad, robo de identidad, phishing.
Rationale: Exposición de datos de usuario es una vulnerabilidad que requiere atención.
Sources: adversary · Deduped: