BorrowSanitizer es una herramienta de análisis dinámico diseñada para detectar errores de aliasing específicos de Rust en aplicaciones escritas en varios lenguajes. El compilador de Rust ofrece garantías estáticas de seguridad muy estrictas al restringir el aliasing y la mutabilidad, pero los desarrolladores pueden eludir estas restricciones mediante un subconjunto de funcionalidades unsafe, necesarias para interoperar con otros lenguajes. Un uso incorrecto de unsafe rompe el modelo de aliasing de Rust, lo que provoca optimizaciones erróneas del compilador y, en última instancia, vulnerabilidades de seguridad.
Hasta ahora, la única herramienta capaz de detectar violaciones del modelo Tree Borrows de Rust era Miri, un intérprete que no opera sobre código extranjero y resulta demasiado lento para técnicas como fuzzing o pruebas basadas en propiedades. BorrowSanitizer se plantea como un sanitizer integrado en LLVM lo suficientemente rápido para usarse con herramientas de fuzzing, con soporte previsto para Rust, C y C++ en escenarios de interoperación. El objetivo del proyecto es alcanzar un estado listo para producción, con todo el código disponible de forma abierta en GitHub y un canal de Zulip abierto a contribuciones.
