angler-fishThe Vulnerability History Project

CVE-2014-1748
aka Scroll Paint Spatter

The scrollbar rectangles for images were not properly being clipped to the the parent document that they interacted with (owning viewport). This non-limiting effect allowed for chiled documents to draw/cover over the respective parent documents by passing extremely large dimensions to for the scrollbar elements. An attacker could use this by creating a transparent child document that covered the parent. This could allow the attacker to spoof content or cause the user to click on malicious links.



The main mistake that was made here was less of a mistake and more of an oversight. The vulnerability was introduced when ScrollView::paint() needed to be clipped by the visible content (visibleContentRect), but it was never checked that the scrollbar was also clipped as well, leading to an inconsistency between the two parts of the feature.

This was most likely missed due to the issue being with extremely large dimensions being specified for the elements. It is unclear how big these must have been to trigger the vulnerability, so to originally test it would have probably needed to be through manual (or possibly fuzzer) investigation. Tests were added specifically to check for this issue when the code was fixed in order to prevent the same issue popping up again.

The fix here appears to be a proper fix, as the scrollbar is now properly clipped to the same size as the rect mentioned above.

  • There are no articles here... yet

Timeline

Hover over an event to see its title.
Click on the event to learn more.
Filter by event type with the buttons below.

expand_less