Open Bug 1470264 (cfi-icall) Opened 4 years ago Updated 6 months ago

Resolve CFI icall errors

Categories

(Core :: Security, enhancement, P3)

enhancement

Tracking

()

People

(Reporter: tjr, Unassigned)

References

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

Details

Attachments

(4 files, 2 obsolete files)

Attached file initial-startup-errors.log (obsolete) —
Attached is a file that contains sorted and uniq-ed runtime icall errors. We need to clean these up.

Bug 1468382 tracks removing -fsanitize-cfi-icall-generalize-pointers which currently silences ~70 startup lines (which are _not_ included in the attached log).  

Bug 1465863 tracks fixing _in the correct way_ dynamically resolved cross-DSO calls. These errors _are_ included in the attached log.

So to close out this bug we have the following options for each icall error we generate:

1: Allow it through without protection using the CFI blacklist (generally going to be our best option for third party code)
2: Allow it through using __attribute__((no_sanitize("cfi-icall"))) (this is ugly, better to use the blacklist)
3: If it's a dynamically-resolved cross-DSO call, develop a solution in/for Bug 1465863 and use it (this will be our preferred solution for Mozilla code, but as a stopgap we may choose to do Option 1 temporarily)
4: Fix whatever strange and potentially incorrect behavior we're doing (If it's Mozilla code and #3 doesn't apply, #4 should.)

I believe the majority of our issues here are going to be dynamically resolved cross-DSO in third party code and we'll use Option 1.
Alias: cfi-icall
Assignee: nobody → tom
Assignee: tom → nobody
Type: defect → enhancement
Priority: -- → P3
You need to log in before you can comment on or make changes to this bug.