Volver a la wiki

Decision · Auditoría Suprema: 4 hallazgos ALTA confirmados en core

Contexto

La Auditoría Suprema (iniciativa s103) es una revisión exhaustiva del código de CreaRack Pro enfocada en seguridad de permisos y aislamiento entre clientes (multi-tenancy), previa a la apertura a clientes externos.

Durante la auditoría (conducted with Code Opus) se identificaron y verificaron adversarialmente 4 hallazgos ALTA en el dominio core:

  1. Descifrado de credenciales accesible a usuarios readonly.
  2. Edición de organización accesible a usuarios readonly.
  3. Evaluador de permisos con fail-open silencioso.
  4. Bypass de aislamiento de tenants en ingesta de alertas.

Riesgo

Hallazgos (detalles técnicos en feature page)

#ComponenteHallazgoLíneas afectadas
1core.credential_api::decrypt_credentialGET /decrypt sin guard de rolcore/credential_api.py:247
2core.api.settings::update_company_settingsPUT /settings/company sin guardcore/api/settings.py:29
3core.utils.permissions::has_permissionFail-open silencioso en bloques exceptcore/utils/permissions.py:91,114
4terminal.api.sentinel::receive_agent_alertConfianza en tenant_id del body, no JWTterminal/api/sentinel.py:129

Decisión

Arreglar los 4 hallazgos en la sesión s104 (2026-06-02).

Cambios mínimos, directos, testados. No es un refactor; son guards y validaciones explícitas. La deuda de modularización (ej. troceo de sentinel.py) se anotó para backlog.

Acciones tomadas

  1. ✅ Hallazgo #1: Guard has_permission(user, "network", "edit") en /decrypt.
  2. ✅ Hallazgo #2: Guard is_admin(user) en /settings/company.
  3. ✅ Hallazgo #3: Estrechar except Exception a (ProgrammingError, OperationalError) + logging.
  4. ✅ Hallazgo #4: Validar agent_data["tenant_id"] == payload.tenant_id.

Todos con tests verdes (8 tests nuevos). CHANGELOG y RELEASE_NOTES actualizados.

Temas pendientes (out of scope s104)

Contexto de decisión

Véase también

Subir