Skip to content

Conversation

@MikeHolman
Copy link
Contributor

@MikeHolman MikeHolman commented Feb 14, 2018

In case of VirtualArrays, we may have eliminated bound check and rely on our AV handling (as long as index is guaranteed to be within 4GB).

However, with spectre mitigations we force OOB reads to nullptr. Our exception filter only handles AVs trying to read from the reserved region, so we end up crashing with nullptr deref instead of resuming.

This change makes it so that we will only poison in case the index exceeds our 4GB reservation.

OS: 15897366

Copy link
Contributor

@Penguinwizzard Penguinwizzard left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Collaborator

@LouisLaf LouisLaf left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@chakrabot chakrabot merged commit bafcd1f into chakra-core:release/1.8 Feb 15, 2018
chakrabot pushed a commit that referenced this pull request Feb 15, 2018
… and VirtualArray OOB resume

Merge pull request #4682 from MikeHolman:virtualspectre

In case of VirtualArrays, we may have eliminated bound check and rely on our AV handling (as long as index is guaranteed to be within 4GB).

However, with spectre mitigations we force OOB reads to nullptr. Our exception filter only handles AVs trying to read from the reserved region, so we end up crashing with nullptr deref instead of resuming.

This change makes it so that we will only poison in case the index exceeds our 4GB reservation.

OS: 15897366
chakrabot pushed a commit that referenced this pull request Feb 15, 2018
…mitigation and VirtualArray OOB resume

Merge pull request #4682 from MikeHolman:virtualspectre

In case of VirtualArrays, we may have eliminated bound check and rely on our AV handling (as long as index is guaranteed to be within 4GB).

However, with spectre mitigations we force OOB reads to nullptr. Our exception filter only handles AVs trying to read from the reserved region, so we end up crashing with nullptr deref instead of resuming.

This change makes it so that we will only poison in case the index exceeds our 4GB reservation.

OS: 15897366
chakrabot pushed a commit that referenced this pull request Feb 15, 2018
…with Spectre mitigation and VirtualArray OOB resume

Merge pull request #4682 from MikeHolman:virtualspectre

In case of VirtualArrays, we may have eliminated bound check and rely on our AV handling (as long as index is guaranteed to be within 4GB).

However, with spectre mitigations we force OOB reads to nullptr. Our exception filter only handles AVs trying to read from the reserved region, so we end up crashing with nullptr deref instead of resuming.

This change makes it so that we will only poison in case the index exceeds our 4GB reservation.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants