New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 670296 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: May 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 1
Type: Bug-Security


Participants' hotlists:
Hotlist-AsmJsParser


Sign in to add a comment

Heap-buffer-overflow in v8::internal::Simulator::DecodeType3

Project Member Reported by ClusterFuzz, Dec 1 2016

Issue description

Detailed report: https://cluster-fuzz.appspot.com/testcase?key=5323460609048576

Fuzzer: mbarbella_js_mutation
Job Type: linux_asan_d8_v8_arm_dbg
Platform Id: linux

Crash Type: Heap-buffer-overflow WRITE 4
Crash Address: 0xdca93830
Crash State:
  v8::internal::Simulator::DecodeType3
  v8::internal::Simulator::InstructionDecode
  v8::internal::Simulator::CallInternal
  
Recommended Security Severity: High

Regressed: V8: r37469:37470

Minimized Testcase (0.39 Kb):
Download: https://cluster-fuzz.appspot.com/download/AMIfv97zIuthJLN6Mky_xkuHx0w16yc1c8CuGoVUn8kppUuOwAZvoQBACeR85G8ZIMCmEVie2-W6wNP-7BTX6BlWNwbL744VvRZhS4pM5yH8IwCZ-POs6VRJk4jQrz7cx6w8w6N96FRQBuASSiMCsr6aDeE_oDBjJw?testcase_id=5323460609048576
function __f_19(stdlib, env, heap) {
  "use asm";
  var __v_18 = new stdlib.Int32Array(heap);
  var __v_19 = new stdlib.Float32Array(heap);
  var __v_22 = stdlib.Math.fround;
  var __v_21 = env.value|0;
  function __f_18() {
    var __v_23 = __v_22(0.0);
__v_18[0]=__v_21|0,__v_19[0];
  }
  return { __f_18: __f_18 };
}
__v_20 = new ArrayBuffer(1);
 __f_19(this, {__v_21: 0x7fffffff}, __v_20).__f_18();


Issue manually filed by: mstarzinger

See https://dev.chromium.org/Home/chromium-security/bugs/reproducing-clusterfuzz-bugs for more information.
 
Cc: titzer@chromium.org mstarzinger@chromium.org
Owner: bradnelson@chromium.org
Status: Assigned (was: Untriaged)
Regression range seems to go all the way back to f20323dce2a796f25eddec83c34b97127d046745 when we initially hooked up the asm.js validator. I am unable to reproduce without ASAN, also unsure whether this is ARM simulator only or affects other architectures as well.
Labels: Security_Impact-Stable
Assuming this impacts stable based on the regression range.
Project Member

Comment 3 by sheriffbot@chromium.org, Dec 2 2016

Labels: M-55
Project Member

Comment 4 by sheriffbot@chromium.org, Dec 2 2016

Labels: Pri-1
Project Member

Comment 5 by sheriffbot@chromium.org, Dec 16 2016

bradnelson: Uh oh! This issue still open and hasn't been updated in the last 14 days. This is a serious vulnerability, and we want to ensure that there's progress. Could you please leave an update with the current status and any potential blockers?

If you're not the right owner for this issue, could you please remove yourself as soon as possible or help us find the right one?

If the issue is fixed or you can't reproduce it, please close the bug. If you've started working on a fix, please set the status to Started.

Thanks for your time! To disable nags, add the Disable-Nags label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 6 by sheriffbot@chromium.org, Dec 30 2016

bradnelson: Uh oh! This issue still open and hasn't been updated in the last 28 days. This is a serious vulnerability, and we want to ensure that there's progress. Could you please leave an update with the current status and any potential blockers?

If you're not the right owner for this issue, could you please remove yourself as soon as possible or help us find the right one?

If the issue is fixed or you can't reproduce it, please close the bug. If you've started working on a fix, please set the status to Started.

Thanks for your time! To disable nags, add the Disable-Nags label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: Hotlist-Asm
Project Member

Comment 8 by sheriffbot@chromium.org, Jan 26 2017

Labels: -M-55 M-56
Project Member

Comment 9 by sheriffbot@chromium.org, Mar 10 2017

Labels: -M-56 M-57
Ping on this - do we have any more idea of what's going on?
Project Member

Comment 11 by sheriffbot@chromium.org, Apr 20 2017

Labels: -M-57 M-58
Cc: mbarbe...@chromium.org bradnelson@chromium.org
Labels: -M-58 M-60
Owner: mstarzinger@chromium.org
+mbarbella
Any idea how Finch impacts clusterfuzz?
I would have expected the trial being at 0%, these would all dry up?

These can only be tickled with the validator on (behind a flag). We've turned down the Finch experiment to 0%, and have a different validator that we'll be switching over to in the coming weeks.

As this seems to be down at the wasm codegen level, we'll want to confirm v3 of the validator isn't also affected (but they look like bad checks on the size of the heap being a multiple of 8).

We aren't using finch. We are explicitly passing --validate-asm for this test case, though. The fuzzer in question picks up the flags from the existing tests.

If there are definitely no plans to re-enable the experiment, it's fine to flip this to Security_Impact-None.
Project Member

Comment 14 by ClusterFuzz, May 5 2017

ClusterFuzz has detected this issue as fixed in range 45077:45078.

Detailed report: https://clusterfuzz.com/testcase?key=5323460609048576

Fuzzer: mbarbella_js_mutation
Job Type: linux_asan_d8_v8_arm_dbg
Platform Id: linux

Crash Type: Heap-buffer-overflow WRITE 4
Crash Address: 0xdca93830
Crash State:
  v8::internal::Simulator::DecodeType3
  v8::internal::Simulator::InstructionDecode
  v8::internal::Simulator::CallInternal
  
Sanitizer: address (ASAN)

Recommended Security Severity: High

Regressed: V8: 37469:37470
Fixed: V8: 45077:45078

Reproducer Testcase: https://clusterfuzz.com/download?testcase_id=5323460609048576


See https://dev.chromium.org/Home/chromium-security/bugs/reproducing-clusterfuzz-bugs for more information.

If you suspect that the result above is incorrect, try re-doing that job on the test case report page.
Project Member

Comment 15 by ClusterFuzz, May 5 2017

Labels: ClusterFuzz-Verified
Status: Verified (was: Assigned)
ClusterFuzz testcase 5323460609048576 is verified as fixed, so closing issue.

If this is incorrect, please add ClusterFuzz-Wrong label and re-open the issue.
Yep, has been fixed by switching to new asm.js validator.
Project Member

Comment 17 by sheriffbot@chromium.org, May 5 2017

Labels: -Restrict-View-SecurityTeam Restrict-View-SecurityNotify
Labels: Release-0-M60
Project Member

Comment 19 by sheriffbot@chromium.org, Aug 11 2017

Labels: -Restrict-View-SecurityNotify allpublic
This bug has been closed for more than 14 weeks. Removing security view restrictions.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Sign in to add a comment