Skip to content

[SEC-31] (App movil) El flag de demo de build (VITE_DEMO_MODE) puede quedar embebido en el APK release #263

Description

@ericmt-98

⚠️ 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

  1. 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
  2. Verificar qué rutas/branches dependen de IS_DEMO_MODE y qué exponen
  3. Revisar la configuración de CI/build de release para VITE_DEMO_MODE
  4. 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.

Metadata

Metadata

Assignees

Labels

Stellar WaveEligible for Stellar Drips Wave rewardscomplexity: lowReproducible con curl/DevTools, sin setup especialsecurity-auditSecurity audit issuewave-6-dripsStellar Drips Wave 6wave:frontendmicopay/frontend surface

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions