⚠️ Solo reporte — NO cambies código. Esta es una issue de auditoría de seguridad. La entrega es únicamente el reporte en docs/security-reports/SEC-XX-*.md (resultado, evidencia, reproducción). No modifiques código de la app ni del backend — los fixes los implementa el equipo. Si tienes una propuesta de arreglo, descríbela en la sección Sugerencia de fix del reporte, no la implementes. Los PRs que cambien código de la aplicación no se aceptarán para esta issue (se pedirá separar el reporte del fix).
[SEC-31] (App móvil) El flag de demo de build (VITE_DEMO_MODE) puede quedar embebido en el APK de release
Archivo: micopay/frontend/src/utils/demoMode.ts:1-3
Contexto
export const IS_DEMO_MODE = import.meta.env.VITE_DEMO_MODE === 'true';
export const DEMO_QR_PAYLOAD = 'MICOPAY:DEMO:mock_secret_for_ui_preview';
IS_DEMO_MODE se resuelve en tiempo de compilación (Vite inyecta la env var en el bundle). Si el APK
de release se construye con VITE_DEMO_MODE=true (CI mal configurado, .env heredado), los
comportamientos de demo se hornean en producción: QR/secret de demo constante, atajos de UI y rutas que
asumen datos simulados (alineado con el riesgo de servidor SEC-01/SEC-19, pero del lado del cliente/APK).
No hay una guarda en build que impida publicar un APK de release con el flag activo.
Pasos para reproducir
- Construir el APK de release tal como se distribuye y buscar en
dist/assets/*.js el valor efectivo de
IS_DEMO_MODE / la string MICOPAY:DEMO:mock_secret_for_ui_preview
- Verificar qué rutas/branches dependen de
IS_DEMO_MODE y qué exponen
- Revisar la configuración de CI/build de release para
VITE_DEMO_MODE
- Proponer una verificación que falle el build de release si el flag está activo
Lo que reportar
- ¿El bundle de release trae
IS_DEMO_MODE activo o el secret de demo?
- ¿Qué comportamiento de demo quedaría disponible en producción?
- ¿Hay guarda de build que lo impida?
Severidad estimada: Media — comportamiento de demo embebible en el APK de producción
Plantilla: Resultado: · Evidencia: · Reproducible en testnet: sí/no · Sugerencia de fix: (opcional)
Cómo entregar
Completa la plantilla docs/security-reports/SEC-31-vite-demo-mode-apk.md con tu resultado, evidencia y entorno, y envíala como PR (el bot de Drips rastrea PRs) o como comentario en este issue. Un asignado por issue.
[SEC-31](App móvil) El flag de demo de build (VITE_DEMO_MODE) puede quedar embebido en el APK de releaseArchivo:
micopay/frontend/src/utils/demoMode.ts:1-3Contexto
IS_DEMO_MODEse resuelve en tiempo de compilación (Vite inyecta la env var en el bundle). Si el APKde release se construye con
VITE_DEMO_MODE=true(CI mal configurado,.envheredado), loscomportamientos de demo se hornean en producción: QR/secret de demo constante, atajos de UI y rutas que
asumen datos simulados (alineado con el riesgo de servidor SEC-01/SEC-19, pero del lado del cliente/APK).
No hay una guarda en build que impida publicar un APK de release con el flag activo.
Pasos para reproducir
dist/assets/*.jsel valor efectivo deIS_DEMO_MODE/ la stringMICOPAY:DEMO:mock_secret_for_ui_previewIS_DEMO_MODEy qué exponenVITE_DEMO_MODELo que reportar
IS_DEMO_MODEactivo o el secret de demo?Severidad estimada: Media — comportamiento de demo embebible en el APK de producción
Plantilla:
Resultado:·Evidencia:·Reproducible en testnet:sí/no ·Sugerencia de fix:(opcional)Cómo entregar
Completa la plantilla
docs/security-reports/SEC-31-vite-demo-mode-apk.mdcon tu resultado, evidencia y entorno, y envíala como PR (el bot de Drips rastrea PRs) o como comentario en este issue. Un asignado por issue.