Open Bug 1886557 (jit-spray-mitigations) Opened 1 year ago Updated 2 months ago

[meta] Make JIT Spraying implausible

Categories

(Core :: JavaScript Engine: JIT, enhancement, P3)

enhancement

Tracking

()

People

(Reporter: nbp, Unassigned)

References

(Depends on 7 open bugs, Blocks 2 open bugs)

Details

(Keywords: meta)

Recently, Bug 1835876 made SpiderMonkey move back to RWX instead of W^X is because one of the more common attack patterns is to induce the JIT Engine to produce attacker code by embedding it in numerical constants or generated code produced in the RWX region. This attack, called JIT Spraying, is not affected by the W^X restriction, so the performance cost of the restriction was judged not worth the effort when this attack is common, easy to implement, and ignores the mitigation.

JIT Spraying works by knowing 2 things, the location and the content.

The mitigation implemented as part of this project are focused on making the generated assembly code both hard to guess (randomized relative locations) and hard to read (eXecutable-Only).

This meta bug is used to encapsulate any bug dealing with the implementation and evaluation of the JIT Spraying mitigation of SpiderMonkey.

Alias: jit-spray-mitigation → jit-spray-mitigations
Depends on: 1886559
Depends on: 1886560
Depends on: 1886562
Depends on: 1886563
Depends on: X-only
Depends on: 1886567
Depends on: 1338207
Depends on: 1897940
Depends on: 1911341
Depends on: 1934580
No longer depends on: 1934580

A prototype got made as a fork of Firefox: https://github.com/nbp/gecko-dev/tree/bugzilla_1886557_prototype

Due to the lack of support for X-only pages on Windows and LTS versions of Linux Distributions today, this project awaits future decisions.

Priority: P2 → P3
You need to log in before you can comment on or make changes to this bug.
OSZAR »