lowCWE-312A02:2021

Exposición del Portapapeles

Los datos sensibles copiados al portapapeles (contraseñas, tokens, números de tarjeta) persisten ahí indefinidamente y pueden ser leídos por cualquier app.

Cómo Funciona

El portapapeles del sistema es un recurso compartido accesible por cualquier app. Si un usuario copia una contraseña u OTP de tu app, ese valor permanece en el portapapeles hasta que sea reemplazado. Otras apps pueden leerlo silenciosamente en segundo plano en Android, e iOS advierte a los usuarios cuando las apps acceden al portapapeles.

Código Vulnerable
// MAL: datos sensibles quedan en el portapapeles indefinidamente
import Clipboard from '@react-native-clipboard/clipboard';

const copiarContrasena = (contrasena: string) => {
  Clipboard.setString(contrasena); // nunca se limpia
};
Código Seguro
// BIEN: limpia datos sensibles del portapapeles después de un tiempo
import Clipboard from '@react-native-clipboard/clipboard';

const copiarContrasena = (contrasena: string) => {
  Clipboard.setString(contrasena);
  setTimeout(() => Clipboard.setString(''), 30_000); // limpia después de 30s
};

Ejemplo Real

iOS 14 introdujo notificaciones de acceso al portapapeles después de que investigadores mostraran que TikTok y docenas de otras apps leían silenciosamente el contenido del portapapeles cada pocos segundos — incluyendo contraseñas que los usuarios habían copiado recientemente.

Cómo Prevenirlo

  • Limpia los contenidos sensibles del portapapeles después de 30-60 segundos usando setTimeout
  • Muestra un temporizador visible a los usuarios indicando cuándo se borrarán los datos del portapapeles
  • Evita copiar contraseñas al portapapeles del todo — usa autocompletado directo donde sea posible
  • Nunca copies tokens en crudo, números de tarjeta o NSS al portapapeles

Tecnologías Afectadas

React Nativeiosandroid

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas