LABORATORIO PROPIO
Informe de muestra
Una muestra sanitizada del laboratorio LAB-APPSEC-001: evidencia de ejecución local, corrección y límites del resultado.
EVIDENCIA PARA REVISAR
Del hallazgo
a la siguiente
acción.
Un informe ejecutivo y técnico con evidencia, impacto, corrección recomendada y límites. La muestra permite ver qué se observó y qué se volvió a comprobar.
- Aplicación, versión y operaciones identificadas
- Evidencia sanitizada y resultado esperado
- Recomendación y criterio de revalidación
- Cobertura y responsabilidades explícitas
La muestra usa un laboratorio propio deliberadamente inseguro y datos ficticios. La ejecución de las pruebas es real; no corresponde a un cliente.
Ver matriz y límites del informeAcceso a documentos ajenos
Evidencia funcional local · Python 3.12.14
RESULTADO REGISTRADO
La identidad no basta.
También importa la pertenencia.
ANTES · VULNERABLE10/14Contratos seguros cumplidos
DESPUÉS · CORREGIDO14/14Contratos seguros cumplidos
Cuatro fallos deliberados: lectura cruzada en ambos sentidos y listados con documentos ajenos. Se ejecutaron 14 casos por versión, 28 ejecuciones en total.
LECTURA Y LISTADO
Dos identidades.
Una regla de propiedad.
- La identidad A lee su documento como control positivo.
- Con la misma identidad, solicita el documento B: la versión vulnerable devuelve contenido ajeno.
- La corrección valida el propietario antes de leer y filtra los listados por identidad.
La lectura ajena pasa de estado modelado 200 a 404 sin contenido ajeno. El listado conserva 200, pero solo incluye documentos propios. Se compara el cuerpo completo.
LÍMITES DEL LABORATORIO
Conclusiones con
límites explícitos.
- Dos usuarios ficticios del mismo rol lector
- Dos documentos, uno por propietario
- Dos operaciones: lectura y listado
- Identidad simulada, inyectada por las pruebas
Autenticación real, sesiones, HTTP, infraestructura, autorización vertical, aislamiento entre tenants, escritura ni borrado.
MUESTRA SANITIZADA DEL INFORME
LAB-APPSEC-001 · Autorización horizontal por recurso
Registro: 9 de octubre de 2026, 20:43:17 UTC.
Entorno: Python 3.12.14, funciones locales sin red.
En la versión deliberadamente vulnerable, validar una identidad reconocida y el formato del identificador no comprueba el derecho a leer ese documento. La corrección exige coincidencia de propietario y aplica la misma política al listado. Se conserva el acceso legítimo de ambos usuarios.
| Casos | Comprobación | Antes | Después |
|---|---|---|---|
| T01–T02 | Lectura propia, estado y cuerpo correctos | 2/2 | 2/2 |
| T03–T04 | Lectura cruzada sin contenido ajeno | 0/2 | 2/2 |
| T05–T06 | Lectura sin identidad válida | 2/2 | 2/2 |
| T07 | Recurso inexistente | 1/1 | 1/1 |
| T08–T09 | Formato o tipo de identificador no admitido | 2/2 | 2/2 |
| T10–T11 | Listado limitado a documentos propios | 0/2 | 2/2 |
| T12–T13 | Listado sin identidad válida | 2/2 | 2/2 |
| T14 | Sin identidad y recurso inexistente | 1/1 | 1/1 |
| Total de contratos seguros cumplidos | 10/14 | 14/14 | |
Evidencia y trazabilidad
El registro relaciona before.py y after.py con los 14 casos de verify.py. La matriz y las observaciones conservan resultados esperados y observados, incluidos los cuerpos completos. El manifiesto SHA-256 permite comprobar integridad; por sí solo no acredita autoría ni fecha.
El verificador termina con código 0 porque reproduce los cuatro fallos esperados antes del cambio y exige todos los contratos después. Ese código no significa que la versión vulnerable sea segura.
Qué se puede concluir
El hallazgo queda corregido y revalidado para las dos funciones y los datos ficticios del laboratorio. No hay datos reales expuestos ni un cliente afectado. No demuestra seguridad de sesiones, infraestructura, roles verticales o tenants, ni autoriza un release.
En un proyecto real, desarrollo implementa la política, QA/AppSec verifica los casos acordados y el responsable del sistema decide sobre el despliegue. Las responsabilidades concretas se acuerdan con el equipo.
Fuente: laboratorio propio LAB-APPSEC-001, matriz y observaciones registradas; muestra de informe de autorización por recurso, versión 1.0. Esta página presenta la evidencia sanitizada y no distribuye la implementación vulnerable.