Fil-C: un compilador que lleva la seguridad de memoria a C y C++

Fuentes: Fil-C: a memory-safe implementation of C and C++ by Filip Pizlo

Fil-C es una implementación de C y C++ que garantiza la seguridad de memoria sin sacrificar la compatibilidad con el código existente, según explicó su creador, Filip Pizlo, en la conferencia Software Should Work 2026. El proyecto nace de la premisa de que los lenguajes seguros —como Rust o los entornos gestionados— han sido presentados como la única vía para eliminar las vulnerabilidades de memoria, pero obligan a reescribir bases de código enormes. Fil-C propone el camino inverso: compilar C y C++ con un compilador propio cuyo resultado es, a juicio de su autor, igual de seguro que cualquier lenguaje con memoria gestionada.

La charla define la seguridad de memoria como la propiedad que impide que un error de la lógica de memoria entregue al atacante el control sobre toda la memoria del proceso. Pizlo repasa los ataques clásicos —desbordamientos de búfer, confusión de tipos, ROP chains— y argumenta que las mitigaciones parciales (ASLR, NX, CFI) no resuelven el problema de fondo, porque un atacante con acceso indiscriminado a la memoria siempre encuentra la manera de redirigir el programa.

La idea central de Fil-C es comprobar todos los accesos a memoria en tiempo de ejecución: cada puntero lleva asociado metadatos que verifican sus límites y su tipo, de modo que un acceso fuera de rango o una reinterpretación incorrecta se detienen en lugar de convertirse en ejecución remota de código. El sistema incluye un compilador y un runtime propio, y Pizlo afirma que aproximadamente la mitad de los paquetes que ha probado funcionan sin cambios, mientras que el resto requiere adaptaciones menores. Sus limitaciones actuales: solo está disponible en Linux x86-64 y es un proyecto personal mantenido en el tiempo libre de su autor.