improve heap canary generation #19

Closed
thestinger opened this Issue Aug 23, 2015 · 2 comments

Comments

Projects
None yet
1 participant
@thestinger
Contributor

thestinger commented Aug 23, 2015

The canaries are created with secret_key ^ canary_address so an attacker with a read overflow could use them to leak information about addresses. Ideally, they would be implemented as mac(secret_key, canary_address) but it needs to be fast. Using secret_key ^ hash(canary_address) with the existing hash function would be less bad but it wouldn't provide clear security properties.

There's also the option of generating a canary for each chunk_info struct with the same one reused for all chunks within that page. That's a pretty good compromise between a global value and one that may leak pointer data.

@thestinger

This comment has been minimized.

Show comment Hide comment
@thestinger

thestinger Sep 2, 2015

Contributor

The canaries are now generated with secret_key ^ hash(canary_address) so it's not quite as bad. This still needs improvement.

Contributor

thestinger commented Sep 2, 2015

The canaries are now generated with secret_key ^ hash(canary_address) so it's not quite as bad. This still needs improvement.

@thestinger

This comment has been minimized.

Show comment Hide comment
@thestinger

thestinger Oct 15, 2016

Contributor

Need to revisit this based on upstream changes.

Contributor

thestinger commented Oct 15, 2016

Need to revisit this based on upstream changes.

@zongo zongo referenced this issue Jan 8, 2017

Closed

webview crash #555

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment