On Thu, Jul 12, 2012 at 7:08 AM, Brendan Eich <bren...@mozilla.com> wrote:

> Unsafe native code is one issue, but bugs in the smaller TCB of the Rust
> compiler and runtime that compromise CFI could still be exploited, fully in
> our experience in Firefox and other Gecko/SpiderMonkey-based apps.
>
> So I wonder whether, independent of what we do about enforcing CFI in
> unsafe native code linked into Servo, we'll want to enforce CFI in the Rust
> compiler and runtime. I don't think anyone has had time to look into this,
> but it seems like a good research project.
>

Many interesting options have been explored, such as certifying
compilation, where the compiler generates along with the object code a
proof that the safety properties of the source language have been preserved
by that run of the compiler. That proof can be typically be verified by a
very simple proof-checker. I suspect doing this for the Javascript
compiler, where the attacker controls the input source code, would be more
important than for the Rust compiler, where the attacker doesn't control
the input source code so they only get to try to exploit Rust compiler bugs
that were actually triggered during a particular Servo build.

I don't think adding levels of sandboxing or verification to Servo will be
important anytime soon, though. Those are orthogonal problems that are only
worth solving once we have a browser engine worth defending, and can be
readily solved at that point.

Rob
-- 
“You have heard that it was said, ‘Love your neighbor and hate your enemy.’
But I tell you, love your enemies and pray for those who persecute you,
that you may be children of your Father in heaven. ... If you love those
who love you, what reward will you get? Are not even the tax collectors
doing that? And if you greet only your own people, what are you doing more
than others?" [Matthew 5:43-47]
_______________________________________________
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo

Reply via email to