El bit NX no es solo seguridad: una odisea de depuración en ARM64

The NX bit is not just about security

En esta historia de depuración de un hipervisor ARM64 para postmarketOS, la autora se enfrenta a un bloqueo aleatorio del sistema al interceptar el registro CTR_EL0. Tras descartar errores de código y sospechar de hardware fuera de especificación, descubre que el problema reside en la predicción de saltos: una llamada indirecta (blr) a una dirección que apunta a memoria no ejecutable causa un fallo de página especulativo, mientras que una llamada directa (bl) funciona. La solución final implica mapear la página física 0 para evitar el fallo, revelando una interacción sutil entre la seguridad de memoria y el rendimiento.

¿Cómo se diferencian los despachos dinámicos de las ramas estáticas? Los despachos dinámicos emplean predicción de saltos, las ramas estáticas saben a dónde llevan de antemano y no pueden fallar en la predicción.

Más de este día

2026-09-07