El incidente de Stagefright en 2015 expuso una vulnerabilidad crítica en las bibliotecas de procesamiento de medios a nivel de sistema operativo Android, afectando a aplicaciones como WhatsApp. La causa raíz fue una falla de dependencia (dependency-failure) donde WhatsApp dependía de la seguridad de bibliotecas de terceros (del OS) que resultaron ser vulnerables a ataques de memory safety. La incapacidad de WhatsApp para parchear directamente la vulnerabilidad subyacente en el OS y el retraso en las actualizaciones de los usuarios crearon una ventana de exposición significativa.

La salvaguarda inicial de WhatsApp fue una solución reactiva: modificar su biblioteca C++ existente ('wamedia') para realizar validaciones de formato de archivos MP4 y mitigar la explotación de Stagefright. Aunque efectiva a corto plazo, esta solución no abordaba la causa raíz de los problemas de memory safety en el código C++ que procesaba entradas no confiables. La biblioteca 'wamedia' en sí misma, al manejar datos externos, era un objetivo potencial para futuras vulnerabilidades de memory safety, lo que llevó a la búsqueda de una solución más robusta.

La decisión de reescribir 'wamedia' en Rust fue una respuesta proactiva a la lección aprendida de Stagefright y a la prevalencia de vulnerabilidades de memory safety en C/C++. Rust, al ser un lenguaje memory-safe, elimina una clase entera de errores de programación que a menudo conducen a exploits. La implementación en paralelo con fuzzing diferencial aseguró la compatibilidad y la corrección funcional, mientras que la reducción de líneas de código y las mejoras de rendimiento validaron la inversión. Este enfoque transformó una salvaguarda reactiva en una defensa preventiva y fundamental contra futuras vulnerabilidades de procesamiento de medios, elevando la seguridad de la aplicación a nivel de diseño de lenguaje.