Проект OpenBSD перешел на обязательное использование механизма защиты W^X
Проект OpenBSD перешел на обязательное применение механизма защиты памяти W^X (Write XOR Execute), суть которого в том, что страницы памяти не могут быть одновременно доступны на запись и исполнение. Таким образом, код может быть исполнен только после запрещения записи, а запись в страницу памяти возможна только после запрета исполнения.
Традиционно в Unix при маппинге памяти допускается модель "W|X", которая позволяет осуществить как запись, так и исполнение, что является порочной практикой с позиции обеспечения безопасности. В OpenBSD отныне такая модель переведена в категорию недопустимых (при попытке использования будет выведена ошибка) и обязательно требуется использование только механизма "W^X".
Обход запрета "W|X" может быть осуществлен только через монтирование ФС (ffs/nfs) со специальным флагом "wxallowed", которую рекомендуется использовать для монтирования /usr/local, так как многие сторонние программы пока не адаптированы для нормальной поддержки "W^X". Многие порты уже портированы для нормальной работы в режиме "W^X" или поддерживают его из коробки (например, Firefox). Но в ряде крупных пакетов пока наблюдаются проблемы при использовании "W^X", например, это касается JDK, GCC, Mono и Chromium.