Crash Google Chrome with one tiny URL

http://www.theregister.co.uk/2015/09/20/chrome_url_crash/

Crash Google Chrome with one tiny URL: We cram a probe in this bug

How clicking on or even rolling your mouse over it will knacker browser

Twitter 317 Facebook 94 G+ linkedin 67

20 Sep 2015 at 01:55, Chris Williams

You can crash the latest version of Google Chrome with a simple tiny URL.

Just rolling your mouse over it in a page, launching it from another app such as an email client, or pasting it into the address bar, will kill either that tab or the whole browser.

It‘s perfect for pranking friends by sending it to them in emails and messages.

The flaw was spotted just before the weekend by a chap called Andris Atteka, who blogged about the programming blunder here, and filed a bug report here.

Below is a screenshot of two forms of the offending URL – we won‘t put them this article as-is, because they will crash your tab if you accidentally wander your pointer over them in Chrome. And that‘s not nice.

We‘ve tested it on Chrome 45.0.2454.93 on OS X El Capitan and Windows 10, and both flavors of the browser are vulnerable. Chromebooks and Linux flavors of the browser are also crashed by the URL, plus Opera 32.0 which is based on Chromium 45, we‘re told. Android‘s Chrome is not affected, it seems.

"Unfortunately no reward was awarded as this was deemed to be only a denial-of-service vulnerability," wrote Atteka. "Anyway, making secure software is much harder than finding issues in it. Thanks Google."

What‘s cool about this bug is that it triggers a fatal exception (a SIGTRAP) rather than the usual memory access violation error caused by an overrun buffer, heap corruption, or similar – even in released code. This means some part of the executable was reached that the programmers never expected normal users to hit. As it turns out, the code at fault is some really old stuff.

This is the crash information from OS X:

Exception Type:  EXC_BREAKPOINT (SIGTRAP)

Exception Codes: 0x0000000000000002, 0x0000000000000000

Thread 0 Crashed:: CrBrowserMain  Dispatch queue: com.apple.main-thread

0   com.google.Chrome.framework 0x0000000102b18a45 0x102500000 + 6392389

1   com.google.Chrome.framework 0x0000000105900595 0x102500000 + 54527381

2   com.google.Chrome.framework 0x00000001059083d2 0x102500000 + 54559698

What happens is this:

The %%300 at the end of the URL is converted into %00 (0x30 is the ASCII code for ‘0‘. The %%300 becomes this string of characters: the original ‘%‘, the converted ‘0‘, and the original ‘0‘. Combined, that‘s ‘%00‘.) This sticks a NULL byte at the end of the web address.

This URL is passed to GURLToDatabaseURL() which calls ReplaceComponents().

This causes the URL to be processed again, hitting the NULL byte. It figures that shouldn‘t be there and marks the URL as invalid.

The code path returns to GURLToDatabaseURL() which expects the URL to still be valid, and calls spec() on it.

But the URL is invalid, which is unexpected, and so the function hits a DCHECK() that causes the software to bail out – even on the release build.

When hovering the mouse over the URL, the web address, which is marked as invalid, is sent to another part of the browser that expects valid-only addresses – causing the tab to be blown away.

There‘s more discussion on how the developers plan to solve this problem in the Chromium bug tracker. It‘s sorta like the gaffe that plagued Skype in June.

"There are going to be crashes all over as a result of this. This is a mess," sighed one Chromium project contributor a couple of hours ago. The team are working on a fix, so stay tuned. ®

时间: 2024-10-14 14:34:37

Crash Google Chrome with one tiny URL的相关文章

How to install 64-bit Google Chrome 28+ on 64-bit RHEL/CentOS 6 or 7

How to install 64-bit Google Chrome 28+ on 64-bit RHEL/CentOS 6 or 7 The problem Google developers seem to think that Red Hat Enterprise Linux 6 - aka RHEL 6 - and its free equivalents (e.g. CentOS 6 and Scientific Linux 6) are no longer worth suppor

1.Google Chrome浏览器 控制台全解析

Google Chrome浏览器 控制台全解析 在Google Chrome浏览器出来之前,我一直使用FireFox,因为FireFox的插件非常丰富,更因为FireFox有强大的Firebug,对于前端开发可谓神器. 在Chrome出来的时候,我就喜欢上它的简洁.快速,无论是启动速度还是页面解析速度还是JavaScript执行速度(现在的FireFox4也比之前的FireFox3有很大的进步).不过当时由于Chrome的开发者工具还不是很完善,而我又不是很熟悉,加之对于Firebug的好感和依

Google Chrome浏览器调试功能介绍

作为Web开发人员,我为什么喜欢Google Chrome浏览器 [原文地址:http://www.cnblogs.com/QLeelulu/archive/2011/08/28/2156402.html ] 在Google Chrome浏览器出来之前,我一直使用FireFox,因为FireFox的插件非常丰富,更因为FireFox有强大的Firebug,对于前端开发可谓神器. 在Chrome出来的时候,我就喜欢上它的简洁.快速,无论是启动速度还是页面解析速度还是Javascript执行速度(现

作为Web开发人员,我为什么喜欢Google Chrome浏览器

在Google Chrome浏览器出来之前,我一直使用FireFox,因为FireFox的插件非常丰富,更因为FireFox有强大的Firebug,对于前端开发可谓神器. 在Chrome出来的时候,我就喜欢上它的简洁.快速,无论是启动速度还是页面解析速度还是Javascript执行速度(现在的FireFox4也比之前的FireFox3有很大的进步).不过当时由于Chrome的开发者工具还不是很完善,而我又不是很熟悉,加之对于Firebug的好感和依赖,当时还是用回FireFox作为我的主浏览器.

Google Chrome 55 Released – Install on RHEL/CentOS 7/6 and Fedora 25-20

Google Chrome is a freeware web browser developed by Google Inc. Google Chrome team proudly announced the release of Google Chrome 55 on December 01, 2016. The actual version is 55.0.2883.75 for Linux and Mac OS X/Windows operating system. This new v

Google Chrome浏览器的使用方法

Google Chrome浏览器 [原文地址:http://www.cnblogs.com/QLeelulu/archive/2011/08/28/2156402.html ] 在Google Chrome浏览器出来之前,我一直使用FireFox,因为FireFox的插件非常丰富,更因为FireFox有强大的Firebug,对于前端开发可谓神器. 在Chrome出来的时候,我就喜欢上它的简洁.快速,无论是启动速度还是页面解析速度还是Javascript执行速度(现在的FireFox4也比之前的F

Google Chrome Developer Tools

原文:https://www.oschina.net/p/chromedevtools Google发布了Google Chrome Developer Tools,这是一系列面向Chrome开发者的工具包. Google Chrome Developer Tools使用BSD授权开源发布,由SDK和Debugger两部分组成.SDK提供了通过TCP/IP协议与Chrome通讯的Java API.而Debugger是一个Eclipse的插件,使用者可以通过Debugger在Eclipse IDE

[转载]How to Install Google Chrome 39 in CentOS/RHEL 6 and Fedora 19/18

FROM: http://tecadmin.net/install-google-chrome-in-centos-rhel-and-fedora/ Google Chrome is a freeware web browser developed by Google. It was released as a beta version for Microsoft Windows on September 2, 2008, and as a stable public release on De

Google Chrome 调试

[原文地址:http://www.cnblogs.com/QLeelulu/archive/2011/08/28/2156402.html ] 在Google Chrome浏览器出来之前,我一直使用FireFox,因为FireFox的插件非常丰富,更因为FireFox有强大的Firebug,对于前端开发可谓神器. 在Chrome出来的时候,我就喜欢上它的简洁.快速,无论是启动速度还是页面解析速度还是Javascript执行速度(现在的FireFox4也比之前的FireFox3有很大的进步).不过