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

Issue 716932 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: Dec 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 2
Type: Bug-Security



Sign in to add a comment

Use-after-poison in blink::probe::breakableLocation

Project Member Reported by ClusterFuzz, Apr 30 2017

Issue description

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

Fuzzer: inferno_layout_test_unmodified
Job Type: linux_asan_content_shell_drt
Platform Id: linux

Crash Type: Use-after-poison READ 8
Crash Address: 0x7eef3694b5d0
Crash State:
  blink::probe::breakableLocation
  blink::Element::setInnerHTML
  blink::V8Element::innerHTMLAttributeSetterCallback
  
Sanitizer: address (ASAN)

Recommended Security Severity: High

Regressed: https://clusterfuzz.com/revisions?job=linux_asan_content_shell_drt&range=467489:467546

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


Issue filed automatically.

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

Comment 1 by sheriffbot@chromium.org, May 1 2017

Labels: M-60
Project Member

Comment 2 by sheriffbot@chromium.org, May 1 2017

Labels: ReleaseBlock-Beta
This issue is a security regression. If you are not able to fix this quickly, please revert the change that introduced it.

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

Comment 3 by sheriffbot@chromium.org, May 1 2017

Labels: Pri-1
Cc: japhet@chromium.org jochen@chromium.org e...@chromium.org
Components: Blink>JavaScript>API Blink>DOM
Labels: OS-Android OS-Chrome OS-Mac OS-Windows
Components: -Blink>JavaScript>API -Blink>DOM Platform>DevTools>JavaScript
Owner: pfeldman@chromium.org
Status: Assigned (was: Untriaged)
looks like inspector code to me
Project Member

Comment 6 by sheriffbot@chromium.org, May 2 2017

Labels: ReleaseBlock-Beta
This issue is a security regression. If you are not able to fix this quickly, please revert the change that introduced it.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Owner: infe...@chromium.org
I can't repro this and can't open the case (lacking permissions)
Cc: tanin@chromium.org
That seems odd. Anyone with an @chromium.org account have access, though you might be prompted to sign in first. What's the exact error?
Upload test case (https://clusterfuzz.com/download?testcase_id=4669918340710400) as an attachment. 
clusterfuzz-testcase-4669918340710400.html
801 bytes View Download
Cc: infe...@chromium.org
Owner: pfeldman@chromium.org
Project Member

Comment 11 by sheriffbot@chromium.org, May 18 2017

pfeldman: 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
Owner: mbarbe...@chromium.org
The test attached fails, but there is no crash observed.
Project Member

Comment 13 by sheriffbot@chromium.org, Jun 1 2017

mbarbella: Uh oh! This issue still open and hasn't been updated in the last 26 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

Comment 14 by ta...@google.com, Jun 1 2017

With the testcase here, I got a different crash stacktrace that is identical to the one in #722096.

Running `/google/data/ro/teams/clusterfuzz-tools/releases/clusterfuzz reproduce 4669918340710400` reproduces the crash in #722096.

Where do we go from here?
Cc: awhalley@chromium.org asymmetric@chromium.org
Labels: -ReleaseBlock-Beta ReleaseBlock-Stable
Sev sec high == RB-Stable, +security TPM(s) in case they disagree.

Can we please stop applying RB-Beta to these bugs and start applying RB-Stable instead, since the security team has never asked us to block beta on sev sec high?
Project Member

Comment 16 by sheriffbot@chromium.org, Jun 3 2017

Labels: ReleaseBlock-Beta
This issue is a security regression. If you are not able to fix this quickly, please revert the change that introduced it.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: -ReleaseBlock-Beta
mbarbella@, how do I stop fighting with SheriffBot here?
Project Member

Comment 18 by sheriffbot@chromium.org, Jun 6 2017

Labels: -Security_Impact-Head Security_Impact-Beta
Cc: mbarbe...@chromium.org
Owner: ----
Status: Available (was: Assigned)
Getting this back into the sheriff's queue for now, but will take a look to see if this is still happening.
Labels: -Security_Severity-High -ReleaseBlock-Stable -M-60 Security_Severity-Low
The test case in CF won't work as-is since it depends on a resource from the layout tests (this is a bug), but even with that resolved locally I haven't been able to repro this in any build. CF still thinks it's happening, and it appears to be reproducing properly on the bots, but given that it's in inspector code and there should be some interaction required for this to happen in a non-test scenario, I think we can downgrade the severity.

I'm attaching the test case I was trying to repro with so anyone who takes a look at this later doesn't need to hack it together.
716932.tgz
4.6 KB Download
Project Member

Comment 21 by sheriffbot@chromium.org, Jun 30 2017

Labels: -Pri-1 Pri-2
Project Member

Comment 22 by ClusterFuzz, Oct 1 2017

Components: Blink>DOM
Labels: Test-Predator-AutoComponents
Automatically applying components based on information from OWNERS files. If this seems incorrect, please apply the Test-Predator-Wrong-Components label.
Project Member

Comment 23 by ClusterFuzz, Oct 4 2017

Labels: Test-Predator-AutoOwner
Owner: nainar@chromium.org
Status: Assigned (was: Available)
Automatically assigning owner based on suspected regression changelist https://chromium.googlesource.com/chromium/src/+/95862a52c7bc1a5846259619243289805d095b70 (Store nonAttachedStyle on NodeLayoutData instead of on HashMap in Document.).

If this is incorrect, please remove the owner and apply the Test-Predator-Wrong-CLs label.
Labels: Test-Predator-Wrong-CLs
Owner: ----
My patch was reverted. This isn't me

Comment 25 by kochi@chromium.org, Oct 13 2017

Cc: kochi@chromium.org
Adding myself to see CF results page.

Comment 26 by kochi@chromium.org, Oct 13 2017

I tried running the testcase locally, but cannot reproduce the crash.

Also tried the commandline tanin@ described in comment #14, but it didn't
work with "--current" (i.e. uses the current code to build content_shell)
and without "--current" I got the same result as tanin@, that points to
already fixed  issue 722096 .

I am trying to "REDO TASK" in clusterfuzz page to see if "Fixed" now.

Comment 27 by kochi@chromium.org, Oct 16 2017

Hmm, clusterfuzz still can reproduce on the latest tree.

Comment 28 by kochi@chromium.org, Oct 26 2017

Status: Untriaged (was: Assigned)
As the crashing point is in probe::breakableLocation(), forwarding
devtools team to look at this.

#10 0xb7f877a in blink::probe::breakableLocation(blink::ExecutionContext*, char const*) out/Release/gen/blink/core/CoreProbesImpl.cpp:1090
 #11 0x9e3ff28 in blink::Element::setInnerHTML(WTF::String const&, blink::ExceptionState&) third_party/WebKit/Source/core/dom/Element.cpp:2901:3
#12 0x8b1b009 in innerHTMLAttributeSetter out/Release/gen/blink/bindings/core/v8/V8Element.cpp:318:9
 #13 0x8b1b009 in blink::V8Element::innerHTMLAttributeSetterCallback(v8::FunctionCallbackInfo<v8::Value> const&) out/Release/gen/blink/bindings/core/v8/V8Element.cpp:2092

Comment 29 by kochi@chromium.org, Oct 27 2017

Components: -Blink>DOM
Oops, I meant to narrow the Components field to Platform>DevTools>JavaScript
in the previous comment.
Labels: -Test-Predator-AutoComponents Test-Predator-Auto-Components
Labels: -Test-Predator-AutoOwner Test-Predator-Auto-Owner
Cc: pfeldman@chromium.org
Owner: kozy@chromium.org
Status: Assigned (was: Untriaged)

Comment 34 by kozy@chromium.org, Nov 29 2017

I reproduced it in ToT.
The root of issue:
- we iterate through inspector agents in probe code [1],
- debugger agent trigger a requested pause,
- fuzzer test calls InspectorTest.completeTest which destroys everything around,
- execution is resumed but further iteration through list of dom debugger agents produce a crash.

I believe that I can reproduce this crash without fuzzer by navigating page.

[1] https://cs.chromium.org/chromium/src/out/Debug/gen/blink/core/CoreProbesImpl.cpp?rcl=16239809868cdf2af36e5992d515191ad14bc412&l=1490
Project Member

Comment 35 by ClusterFuzz, Dec 22 2017

ClusterFuzz has detected this issue as fixed in range 525850:525852.

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

Fuzzer: inferno_layout_test_unmodified
Job Type: linux_asan_content_shell_drt
Platform Id: linux

Crash Type: Use-after-poison READ 8
Crash Address: 0x7eef3694b5d0
Crash State:
  blink::probe::breakableLocation
  blink::Element::setInnerHTML
  blink::V8Element::innerHTMLAttributeSetterCallback
  
Sanitizer: address (ASAN)

Recommended Security Severity: High

Regressed: https://clusterfuzz.com/revisions?job=linux_asan_content_shell_drt&range=467489:467546
Fixed: https://clusterfuzz.com/revisions?job=linux_asan_content_shell_drt&range=525850:525852

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

See https://github.com/google/clusterfuzz-tools 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 36 by ClusterFuzz, Dec 22 2017

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

If this is incorrect, please add ClusterFuzz-Wrong label and re-open the issue.
Project Member

Comment 37 by sheriffbot@chromium.org, Dec 22 2017

Labels: -Restrict-View-SecurityTeam Restrict-View-SecurityNotify
Project Member

Comment 38 by sheriffbot@chromium.org, Mar 30 2018

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