Leaking browser history
By Jake Edge
June 25, 2008
Browser history is fairly sensitive information for most people. If there
were a way for random web sites to grab a list of other sites you have visited
recently, it would cause a fair amount of concern. Unfortunately, a
longstanding problem in the HTML Document Object Model (DOM) makes for an
information leak nearly as bad as that.
The problem stems from the handy feature that browsers implement to show
you which links you have already visited. The way that they show links in
a different color if you have visited them is by turning on the "visited"
style for the link. Many sites, such as LWN, then change the default
colors for both visited and non-visited links via the site's Cascading Style
Sheet (CSS). This information gets recorded in the DOM for the page
which can be queried from Javascript.
Because of the nature of the leak, scripts cannot get a full dump of the
browser's history, but they can get the visited status for a set of sites
they are interested in. A web site that wishes to gather this kind of
information need only add a link to each site of interest—often in an
unreadable font size or color—and send over a
bit of Javascript to read the DOM status for each link.
While this problem has been known since
at least 2002, there is no easy fix while still being compliant with the CSS
standard. Because of that, most or all browsers are vulnerable. It has
recently been in the news because it is being used in a
benign, or at least semi-benign, way.
These days many news sites and blogs have small images that correspond to
various social networking sites—digg, reddit and the like—that allow
voting on particular stories or postings. Those images are buttons that
register a vote or submission of the site that displays them. With the proliferation of
these sites, a great deal of screen real estate was being taken up by these
icons, many of which were not useful because the person viewing them never
visited those particular sites.
To reduce the clutter, Aza Raskin created some Javascript
code to determine which of the social networking sites a particular
user had visited so that only the icons for those sites were displayed. Many
people would find that to be a useful hack, one that was fairly minimally
intrusive, which it is at some level. Others, with a more strict personal
privacy desire, might find it more than a bit creepy.
Reducing clutter is one thing, but this technique can be used to gather
much more sensitive information than which of the many social networking
"news" sites you visit. It is tempting to remind readers of the NoScript Firefox extension, but it has
become increasingly difficult to do nearly anything on the web without
enabling Javascript. Many sites essentially hide their content behind a
Javascript test, refusing to display it unless Javascript is enabled.
This makes it difficult to avoid giving away some of your browsing history
to dodgy sites—or those with cross-site scripting
vulnerabilities—other than by avoiding them entirely. It is an
unfortunate side effect of a useful property that, as the discussion on the
Mozilla bugzilla shows, will be difficult to completely eliminate. It
should be noted that the links do not have to be obfuscated—by adding a
dash of
Javascript LWN could know whether you have visited digg or reddit. But, of
course, we don't force Javascript on our readers.
Comments (25 posted)
New vulnerabilities
clamav: denial of service
| Package(s): | clamav |
CVE #(s): | CVE-2008-2713
|
| Created: | June 23, 2008 |
Updated: | August 13, 2008 |
| Description: |
Versions of clamav prior to 0.93.1 can be made to perform an out-of-bounds read with a specially-crafted file, leading to a denial of service vulnerability. |
| Alerts: |
|
Comments (none posted)
fetchmail: denial of service
| Package(s): | fetchmail |
CVE #(s): | CVE-2008-2711
|
| Created: | June 20, 2008 |
Updated: | July 29, 2008 |
| Description: |
From the CVE entry: fetchmail 6.3.8 and earlier, when running in -v -v mode, allows remote attackers to cause a denial of service (crash and persistent mail failure) via a malformed mail message with long headers, which is not properly handled when using vsnprintf to format log messages. |
| Alerts: |
|
Comments (none posted)
gallery: multiple vulnerabilities
Comments (none posted)
horde: cross-site scripting
| Package(s): | horde |
CVE #(s): | |
| Created: | June 25, 2008 |
Updated: | June 25, 2008 |
| Description: |
The Horde application framework suffers from a cross-site scripting vulnerability which is exploitable by authenticated users. The 3.2.1 release fixes the problem. |
| Alerts: |
|
Comments (none posted)
IBM JDK/JRE: multiple vulnerabilities
| Package(s): | ibm-jdk-bin |
CVE #(s): | |
| Created: | June 25, 2008 |
Updated: | June 25, 2008 |
| Description: |
The IBM Java development kit and runtime environment (prior to versions 1.5.0.7 and 1.4.2.11) suffer from a number of remotely-exploitable code execution vulnerabilities. |
| Alerts: |
|
Comments (none posted)
kernel: information disclosure
| Package(s): | kernel |
CVE #(s): | CVE-2008-2729
|
| Created: | June 25, 2008 |
Updated: | August 27, 2008 |
| Description: |
The kernel memory copy routines (on the x86_64 architecture only) do not always zero memory at the destination location, potentially leaking data. |
| Alerts: |
|
Comments (none posted)
kernel: information disclosure
| Package(s): | kernel |
CVE #(s): | CVE-2008-0598
|
| Created: | June 25, 2008 |
Updated: | November 20, 2008 |
| Description: |
From the Red Hat advisory: Tavis Ormandy discovered a deficiency in the Linux kernel 32-bit and
64-bit emulation. This could allow a local unprivileged user to prepare and
run a specially crafted binary, which would use this deficiency to leak
uninitialized and potentially sensitive data. |
| Alerts: |
|
Comments (none posted)
kernel: denial of service
| Package(s): | kernel |
CVE #(s): | CVE-2008-2365
|
| Created: | June 25, 2008 |
Updated: | July 16, 2008 |
| Description: |
A race condition in the ptrace() system call can be exploited by a local user to hang the system. |
| Alerts: |
|
Comments (none posted)
nasm: off-by-one error
| Package(s): | nasm |
CVE #(s): | CVE-2008-2719
|
| Created: | June 23, 2008 |
Updated: | October 1, 2008 |
| Description: |
From the CVE entry: Off-by-one error in the ppscan function (preproc.c) in Netwide Assembler (NASM) 2.02 allows context-dependent attackers to cause a denial of service (crash) and possibly execute arbitrary code via a crafted file that triggers a stack-based buffer overflow. |
| Alerts: |
|
Comments (none posted)
phpMyAdmin: cross-site scripting
| Package(s): | phpMyAdmin |
CVE #(s): | |
| Created: | June 25, 2008 |
Updated: | June 25, 2008 |
| Description: |
phpMyAdmin suffers from cross-site scripting vulnerabilities in several library scripts. From the advisory: "We were able to reproduce this only on systems where both of these conditions are true: the PHP register_globals setting is 'on' and the web server does not apply the settings contained in the .htaccess file that we placed in /libraries." |
| Alerts: |
|
Comments (none posted)
ruby: multiple vulnerabilities
Comments (none posted)
sblim: arbitrary code execution
| Package(s): | sblim |
CVE #(s): | CVE-2008-1951
|
| Created: | June 24, 2008 |
Updated: | June 25, 2008 |
| Description: |
From the Red Hat advisory: It was discovered that certain sblim libraries had an RPATH (runtime library search path) set in the ELF (Executable and Linking Format) header. This RPATH pointed to a sub-directory of a world-writable, temporary directory. A local user could create a file with the same name as a library required by sblim (such as libc.so) and place it in the directory defined in the RPATH. This file could then execute arbitrary code with the
privileges of the user running an application that used sblim (eg
tog-pegasus). |
| Alerts: |
|
Comments (none posted)
Page editor: Jake Edge
Next page: Kernel development>>