Closed
Bug 729617
Opened 13 years ago
Closed 12 years ago
Compile with ASLR on ICS and above
Categories
(Firefox for Android Graveyard :: General, defect, P2)
Tracking
(firefox19 wontfix, firefox20 fixed, firefox21 fixed, fennec21+)
RESOLVED
FIXED
Firefox 20
People
(Reporter: johnath, Assigned: cpeterson)
References
Details
Attachments
(1 file)
(deleted),
patch
|
Details | Diff | Splinter Review |
ICS has ASLR support! http://blog.duosecurity.com/2012/02/a-look-at-aslr-in-android-ice-cream-sandwich-4-0/
It's a nearly free security win, and while Android's initial implementation clearly leaves a lot to be desired, 4.0.3 looks better, and I can't think of any reasons not to do so unless our toolchain makes it painful for some reason.
Updated•13 years ago
|
tracking-fennec: --- → +
Priority: -- → P2
Assignee | ||
Comment 1•12 years ago
|
||
The compilation changes are easy, but we will need to test for compatibility problems with older Android platforms and possible performance regressions.
https://blog.duosecurity.com/2012/07/exploit-mitigations-in-android-jelly-bean-4-1/
The interesting compiler options are:
* ProPolice to prevent stack buffer overruns (-fstack-protector)
* Format string vulnerability protections (-Wformat=2 -Werror=format-security)
* -fpie to generate Position Independent Executable code
The interesting linker options are:
* -fpie to link Position Independent Executable code
* Read-only relocations / immediate binding (-Wl,-z,relro -Wl,-z,now)
Comment 2•12 years ago
|
||
Security team is interested in getting movement on this. Re-nom to discuss.
tracking-fennec: + → ?
Assignee | ||
Updated•12 years ago
|
Assignee: nobody → cpeterson
Status: NEW → ASSIGNED
Assignee | ||
Comment 4•12 years ago
|
||
The ASLR linker flags (-Wl,-z,relro -Wl,-z,now) are enabled by default in Android NDK r8+, so these options are implicitly enabled on the Nightly 21 and Aurora 20 channels. \o/
If we ever want to build Firefox with ASLR using an older NDK, I've attached a patch for our Android build scripts.
To verify whether a .so was compiled with ASLR, you can use objdump and readelf:
$ arm-linux-androideabi-objdump -x libxul.so | grep RELRO
RELRO off 0x01215990 vaddr 0x01216990 paddr 0x01216990 align 2**3
$ arm-linux-androideabi-readelf -d libxul.so | grep BIND
0x0000001e (FLAGS) SYMBOLIC BIND_NOW
Assignee | ||
Comment 5•12 years ago
|
||
Fixed by bug 816993 :D
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
status-firefox19:
--- → wontfix
status-firefox20:
--- → fixed
status-firefox21:
--- → fixed
Depends on: 816993
Keywords: sec-want
Resolution: --- → FIXED
Target Milestone: --- → Firefox 20
Updated•4 years ago
|
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•