Opened 5 years ago

Last modified 21 months ago

#12420 new task

Investigate deploying STACK to check for optimization-unstable code

Reported by: gk Owned by: tbb-team
Priority: Medium Milestone:
Component: Applications/Tor Browser Version:
Severity: Normal Keywords: tbb-security, TorBrowserTeam201711, GeorgKoppen201711
Cc: tom@…, mcs, arthuredelstein Actual Points:
Parent ID: Points:
Reviewer: Sponsor: Sponsor4

Description

Optimization-unstable code (code that is unexpectedly eliminated by compiler optimizations due to undefined behavior in the program) can lead to serious bugs in programs. We should think about deploying STACK, which helps to detect this class of bugs, when building our hardened bundles at least. Relevant reading material:

http://kqueue.org/blog/2013/09/17/cltq/
http://css.csail.mit.edu/stack/
http://pdos.csail.mit.edu/papers/stack:sosp13.pdf
http://pdos.csail.mit.edu/papers/ub:apsys12.pdf

Child Tickets

Change History (10)

comment:1 Changed 5 years ago by gk

Code can be found on https://github.com/xiw/stack/.

comment:2 Changed 5 years ago by erinn

Keywords: needs-triage added

comment:3 Changed 5 years ago by tom

Cc: tom@… added

comment:4 Changed 5 years ago by gk

Component: Tor bundles/installationTor Browser
Keywords: needs-triage removed
Owner: changed from erinn to tbb-team
Type: defecttask

comment:5 Changed 2 years ago by mcs

Cc: mcs added
Severity: Normal

comment:6 Changed 2 years ago by arthuredelstein

Cc: arthuredelstein added

comment:7 Changed 22 months ago by gk

Keywords: TorBrowserTeam201711 GeorgKoppen201711 added
Sponsor: Sponsor4

comment:8 Changed 22 months ago by gk

Priority: MediumVery High

Changing prio to reflect sponsor deadline

comment:9 Changed 21 months ago by gk

I successfully deployed STACK to check for optimization-unstable code in tor. It found some bugs which are about the get resolved (see: #24423). Unfortunately, the current code works only with clang 3.4 which is pretty old and not new enough to check the browser part. I plan to work on that to get it going with clang 3.6 at least (which is currently the minimum required for compiling Firefox 52ESR).

comment:10 Changed 21 months ago by gk

Priority: Very HighMedium
Note: See TracTickets for help on using tickets.