<<< Date Index >>>     <<< Thread Index >>>

Google Talk Denial of Service - BenjiBug



Title: Google Talk Denial of Service - BenjiBug
Reported Date: October 15, 2005
Public Disclosure: November 22, 2005
Status: Vendor contacted. Unpatched.


Software which automatically updates itself is often a good idea -
especially where home users are concerned. It is often impossible to
patch their systems otherwise. But automatic update mechanisms must be
designed and implemented in ways which prevent malicious attackers
from installing malware. Google Talk includes the ability to
automatically update itself - a feature which cannot be disabled.

Google Talk connects at random intervals (about once every day or so
in testing) to dl.google.com via HTTP and fetches a .txt file
(http://dl.google.com/googletalk/google-talk-versioncheck.txt) which
lists the current version of Google Talk, as well as a digital
signature of the new installer executable. If the version number is
greater than the version currently running, Google Talk will download
the .exe and, after checking its authenticity, execute it to
automatically update.

Assuming a user's DNS cache can be poisoned, a denial of service
attack is possible. Thanks to the digital signature, malware will not
execute. Yet, it is possible to force Google Talk to download a large
file which it will then analyze to determine whether the signature
matches. This will consume 100% CPU and large amounts of memory,
resulting in an unstable machine which requires a reboot in some
cases. It is also possible to plant incriminating files on a user's
machine, as the files are at first downloaded and saved to the
"Temporary Internet Files" directory before they are verified and
moved to Google Talk's data directory.

Google can patch this by checking the file size of the downloaded
executable to ensure that it is within the range of a normal updater
.exe.

Addendum: Although Launch-Target can be manipulated to cause Google
Talk to execute a file other than the one downloaded from the URL
field, it will not execute files outside of the C:\Program
Files\Google\Google Talk\googletalk-[version] directory, so this seems
useless as an attack vector.

Google Talk's request to Google's servers is as follows:
GET 
/googletalk/google-talk-versioncheck.txt?auv=1&r=4&up=30&p=w&ma=5&mi=1&b=2600&sp=ServicePack2&as=googletalk&pv=1.0.0.76
ma = major version number, mi = minor version number, b = build

-James Evans