Das OpenBSD-Projekt sichert seinen Browser ab, indem der genutzte Speicher entweder beschreibbar oder ausführbar (W^X) gemacht wird. Nach OpenBSD nutzt dies nun auch Firefox Nightly für Javascript-Code.
Im März dieses Jahres hat das OpenBSD-Projekt offiziell damit begonnen, durch das Umsetzen einer Richtlinie zur Speicherverwaltung einen der genutzten Browser abzusichern. Nachdem dies in OpenBSD aktiviert und getestet wurde, haben die Mozilla-Entwickler nun ebenfalls die W^X genannte Richtlinie in den Nightly-Versionen des Firefox umgesetzt.
W^X steht dabei für Write XOR Execute und beschreibt, dass Speicherbereiche entweder beschreibbar oder ausführbar sind. Dies gilt nun für Javascript-Code, der von dem Browser JIT-kompiliert wird. Ein Problem dabei ist jedoch, dass eben dieser Code unter Umständen zur Laufzeit gepatcht werden muss. Dies würde allerdings durch eine sehr strikte Umsetzung von W^X gänzlich unterbunden.
Deshalb nutzt die Implementierung im Firefox bestimmte Betriebssystemfunktionen, mit denen ausschließlich der betroffene Teilbereich des Codes erst beschreibbar gemacht werden kann, um diese zu aktualisieren. Dieser wird anschließend jedoch wieder als lediglich ausführbar markiert. Der dadurch erzeugte Mehraufwand sei jedoch sehr gering. In der Ankündigung heißt es zudem, dass Optimierungen an der Umsetzung vorgenommen worden sind, wodurch nahezu die gleiche Leistung erreicht werde wie zuvor.
Mit W^X können bestimmte Arten von Angriffen verhindert werden. So kann etwa eingeschleuster Code nicht mehr ausgeführt werden. OpenBSD nutzt die Richtlinie für seinen Kernel und einige Laufzeit-Komponenten. Neben der Minimierung von Angriffen erhofft sich das Team von Mozilla aber auch weniger Abstürze, die durch Fehler in der Speicherverwaltung der Javascript-Engine verursacht werden. Sollten keine schwerwiegenden Probleme mit der Funktion auftreten, soll diese mit Firefox 46 veröffentlicht werden, der Mitte April 2016 erscheinen soll