Tried, Tested and Proven

Vulnerability title: Insufficient Input Validation By IO Slaves In KDE e.V. KDE

CVE: CVE-2014-8600
Vendor: KDE e.V.
Product: KDE
Affected version: kwebkitpart <= 1.3.4, kde-runtime <= 4.14.3, kio-extras <= 5.1.1
Fixed version: See links below
Reported by: T. Brown and D. Burton

Details:

Whilst investigating how KDE handles custom protocols, it was discovered that a number of the protocol handlers (referred to as IO slaves) did not satisfactorily handle malicious input. It is possible for an attacker to inject JavaScript by manipulating IO slave URI such that the JavaScript from the manipulated request is returned in the response. Example IO slaves that trigger this behaviour include:

  • zip
  • trash
  • tar
  • thumbnail
  • smtps
  • smtp
  • smb
  • remote
  • recentdocuments
  • nntps
  • nntp
  • network
  • mbox
  • ldaps
  • ldap
  • fonts
  • file
  • desktop
  • cgi
  • bookmarks
  • ar

The following code will trigger all vulnerable IO slaves:

for x in /usr/share/kde4/services/*.protocol do proto=`basename $x | cut -f 1 -d\.` kfmclient newTab "$proto://hhdhdhhdhdhdh.google.com/\"><script>alert(\"$proto\"+document.domain);</script>" done

Impact:

Whilst in most cases, the JavaScript will be executed in an untrusted context, with the bookmarks IO slave, it will be executed in the context of the referenced hostname. In the example above, this is hhdhdhhdhdhdh.google.com. It should however be noted that KDE mitigates this risk by attempting to ensure that such URLs cannot be embedded directly into Internet hosted content. Portcullis agree with KDE’s assessment that exploitation of these vulnerabilities is unlikely, however we are concerned about the lack of adequate input validation considering similar issues have resulted in remote code execution on other platforms.

Exploit:

Exploit code not required.

Remediation:

The vendor has released a patch for each affected product:

Vendor status:

15/10/2014 Advisory created
15/10/2014 Vendor contacted with advisory details
25/11/2014 Vendor working on a fix
28/10/2014 Fix confirmed
11/11/2014 CVE obtained
13/11/2014 Published
Copyright:

Copyright © Portcullis Computer Security Limited 2014, All rights reserved worldwide. Permission is hereby granted for the electronic redistribution of this information. It is not to be edited or altered in any way without the express written consent of Portcullis Computer Security Limited.

Disclaimer:

The information herein contained may change without notice. Use of this information constitutes acceptance for use in an AS IS condition. There are NO warranties, implied or otherwise, with regard to this information or its use. Any use of this information is at the user’s risk. In no event shall the author/distributor (Portcullis Computer Security Limited) be held liable for any damages whatsoever arising out of or in connection with the use or spread of this information.