New issue
Advanced search Search tips

Issue 820834 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: Mar 2018
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 1
Type: Bug-Security



Sign in to add a comment

Bad-cast to blink::LayoutInline from blink::LayoutSVGForeignObject in blink::LineLayoutInline::LastLineBox

Project Member Reported by ClusterFuzz, Mar 11 2018

Issue description

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

Fuzzer: inferno_layout_test_unmodified
Job Type: linux_ubsan_vptr_chrome
Platform Id: linux

Crash Type: Bad-cast
Crash Address: 0x3743b467c390
Crash State:
  Bad-cast to blink::LayoutInline from blink::LayoutSVGForeignObject
  blink::LineLayoutInline::LastLineBox
  blink::LayoutBlockFlow::CreateLineBoxes
  
Sanitizer: undefined (UBSAN)

Recommended Security Severity: High

Regressed: https://clusterfuzz.com/revisions?job=linux_ubsan_vptr_chrome&range=540771:540772

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

Issue filed automatically.

See https://github.com/google/clusterfuzz-tools for more information.
 
Project Member

Comment 1 by ClusterFuzz, Mar 11 2018

Components: Blink>Layout
Labels: Test-Predator-Auto-Components
Automatically applying components based on crash stacktrace and information from OWNERS files.

If this is incorrect, please apply the Test-Predator-Wrong-Components label.
Project Member

Comment 2 by ClusterFuzz, Mar 11 2018

Labels: Test-Predator-Auto-Owner
Owner: futhark@chromium.org
Status: Assigned (was: Untriaged)
Automatically assigning owner based on suspected regression changelist https://chromium.googlesource.com/chromium/src/+/822be90274eab3c047fea8cf2d7dd35cd5d0db49 (Enable slot-in-flat-tree flag in stable.).

If this is incorrect, please let us know why and apply the Test-Predator-Wrong-CLs label. If you aren't the correct owner for this issue, please unassign yourself as soon as possible so it can be re-triaged.
Project Member

Comment 3 by sheriffbot@chromium.org, Mar 12 2018

Labels: M-66
Project Member

Comment 4 by sheriffbot@chromium.org, Mar 12 2018

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

If this doesn't affect a release branch, or has not been properly classified for severity, please update the Security_Impact or Security_Severity labels, and remove the ReleaseBlock label. To disable this altogether, apply ReleaseBlock-NA.

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

Comment 5 by sheriffbot@chromium.org, Mar 12 2018

Labels: Pri-1
Status: Started (was: Assigned)
Project Member

Comment 8 by bugdroid1@chromium.org, Mar 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/aa7d638bd0956c1c3eb2faf814a18f850bc0d2c7

commit aa7d638bd0956c1c3eb2faf814a18f850bc0d2c7
Author: Rune Lillesveen <futhark@chromium.org>
Date: Tue Mar 13 09:42:44 2018

SVG child of html element can not act as display:contents.

SVG elements like <g> do not generate a box when styled as
display:contents in an SVG context. However, when they are children of
HTML elements, they should not generate boxes, and not act as
display:contents.

If treated as display:contents, text child nodes would have SVG text
boxes generated for them causing crashes.

Bug:  820779 ,  820834 
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I1ec7e3af158daa9d56160123cc3c25f6ee3eda62
Reviewed-on: https://chromium-review.googlesource.com/958912
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Rune Lillesveen <futhark@chromium.org>
Cr-Commit-Position: refs/heads/master@{#542752}
[modify] https://crrev.com/aa7d638bd0956c1c3eb2faf814a18f850bc0d2c7/third_party/WebKit/Source/core/dom/Element.cpp
[modify] https://crrev.com/aa7d638bd0956c1c3eb2faf814a18f850bc0d2c7/third_party/WebKit/Source/core/layout/LayoutObjectTest.cpp
[modify] https://crrev.com/aa7d638bd0956c1c3eb2faf814a18f850bc0d2c7/third_party/WebKit/Source/core/svg/SVGGElement.h

Status: Fixed (was: Started)
Project Member

Comment 10 by sheriffbot@chromium.org, Mar 13 2018

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

Comment 11 by ClusterFuzz, Mar 14 2018

ClusterFuzz has detected this issue as fixed in range 542751:542752.

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

Fuzzer: inferno_layout_test_unmodified
Job Type: linux_ubsan_vptr_chrome
Platform Id: linux

Crash Type: Bad-cast
Crash Address: 0x3743b467c390
Crash State:
  Bad-cast to blink::LayoutInline from blink::LayoutSVGForeignObject
  blink::LineLayoutInline::LastLineBox
  blink::LayoutBlockFlow::CreateLineBoxes
  
Sanitizer: undefined (UBSAN)

Recommended Security Severity: High

Regressed: https://clusterfuzz.com/revisions?job=linux_ubsan_vptr_chrome&range=540771:540772
Fixed: https://clusterfuzz.com/revisions?job=linux_ubsan_vptr_chrome&range=542751:542752

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

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 12 by ClusterFuzz, Mar 15 2018

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

If this is incorrect, please add ClusterFuzz-Wrong label and re-open the issue.
I've made a request to merge to M66 for this fix in  issue 820779 .
Project Member

Comment 14 by bugdroid1@chromium.org, Mar 26 2018

Labels: merge-merged-3359
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/caca584950b708e06a24686a6b0fc1d167c2d615

commit caca584950b708e06a24686a6b0fc1d167c2d615
Author: Rune Lillesveen <futhark@chromium.org>
Date: Mon Mar 26 10:23:52 2018

SVG child of html element can not act as display:contents.

SVG elements like <g> do not generate a box when styled as
display:contents in an SVG context. However, when they are children of
HTML elements, they should not generate boxes, and not act as
display:contents.

If treated as display:contents, text child nodes would have SVG text
boxes generated for them causing crashes.

Bug:  820779 ,  820834 
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I1ec7e3af158daa9d56160123cc3c25f6ee3eda62
Reviewed-on: https://chromium-review.googlesource.com/958912
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Rune Lillesveen <futhark@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#542752}(cherry picked from commit aa7d638bd0956c1c3eb2faf814a18f850bc0d2c7)
Reviewed-on: https://chromium-review.googlesource.com/980112
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Cr-Commit-Position: refs/branch-heads/3359@{#423}
Cr-Branched-From: 66afc5e5d10127546cc4b98b9117aff588b5e66b-refs/heads/master@{#540276}
[modify] https://crrev.com/caca584950b708e06a24686a6b0fc1d167c2d615/third_party/WebKit/Source/core/dom/Element.cpp
[modify] https://crrev.com/caca584950b708e06a24686a6b0fc1d167c2d615/third_party/WebKit/Source/core/layout/LayoutObjectTest.cpp
[modify] https://crrev.com/caca584950b708e06a24686a6b0fc1d167c2d615/third_party/WebKit/Source/core/svg/SVGGElement.h

Project Member

Comment 15 by sheriffbot@chromium.org, Mar 27 2018

Labels: -Security_Impact-Head Security_Impact-Beta
Labels: -ReleaseBlock-Stable
Project Member

Comment 17 by sheriffbot@chromium.org, Jun 19 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