<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to 25: An information leakage from IoConnector to IoSocketDispatcher through an IOException without LOG severe control</title><link>https://sourceforge.net/p/xsocket/bugs/25/</link><description>Recent changes to 25: An information leakage from IoConnector to IoSocketDispatcher through an IOException without LOG severe control</description><atom:link href="https://sourceforge.net/p/xsocket/bugs/25/feed.rss" rel="self"/><language>en</language><lastBuildDate>Wed, 09 Dec 2020 15:12:26 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/xsocket/bugs/25/feed.rss" rel="self" type="application/rss+xml"/><item><title>#25 An information leakage from IoConnector to IoSocketDispatcher through an IOException without LOG severe control</title><link>https://sourceforge.net/p/xsocket/bugs/25/?limit=25#c708</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Could I open a PR for it?&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Xiaoqin Fu</dc:creator><pubDate>Wed, 09 Dec 2020 15:12:26 -0000</pubDate><guid>https://sourceforge.net09f9d84e28d063f614868f5c8e28c63b0fb67cff</guid></item><item><title>An information leakage from IoConnector to IoSocketDispatcher through an IOException without LOG severe control</title><link>https://sourceforge.net/p/xsocket/bugs/25/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;During xSocket integration testing, I developed one sample application, based on NonBlockingConnection, whose client send a text message, followed by another client sending another, to the server. &lt;/p&gt;
&lt;p&gt;The source: org.xsocket.connection.IoConnector:&lt;br/&gt;
    private void handleConnect() {&lt;br/&gt;
        Set&amp;lt;selectionkey&amp;gt; selectedEventKeys = selector.selectedKeys();&lt;br/&gt;
        Iterator&amp;lt;selectionkey&amp;gt; it = selectedEventKeys.iterator();&lt;br/&gt;
        while (it.hasNext()) {&lt;br/&gt;
            SelectionKey eventKey = it.next();&lt;br/&gt;
            it.remove();&lt;br/&gt;
            RegisterTask registerTask = (RegisterTask) eventKey.attachment();&lt;br/&gt;
            ......&lt;br/&gt;
        }&lt;br/&gt;
    }&amp;lt;/selectionkey&amp;gt;&amp;lt;/selectionkey&amp;gt;&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nt"&gt;The&lt;/span&gt; &lt;span class="nt"&gt;sink&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;org&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;xsocket&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;connection&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;   
&lt;span class="nt"&gt;public&lt;/span&gt; &lt;span class="nt"&gt;IoSocketDispatcher&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;AbstractMemoryManager&lt;/span&gt; &lt;span class="nt"&gt;memoryManager&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;String&lt;/span&gt; &lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="err"&gt;......&lt;/span&gt;
    &lt;span class="err"&gt;try&lt;/span&gt; &lt;span class="err"&gt;{&lt;/span&gt;
        &lt;span class="err"&gt;selector&lt;/span&gt; &lt;span class="err"&gt;=&lt;/span&gt; &lt;span class="err"&gt;Selector.open()&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="nt"&gt;catch&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;IOException&lt;/span&gt; &lt;span class="nt"&gt;ioe&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="err"&gt;String&lt;/span&gt; &lt;span class="err"&gt;text&lt;/span&gt; &lt;span class="err"&gt;=&lt;/span&gt; &lt;span class="err"&gt;"exception&lt;/span&gt; &lt;span class="err"&gt;occured&lt;/span&gt; &lt;span class="err"&gt;while&lt;/span&gt; &lt;span class="err"&gt;opening&lt;/span&gt; &lt;span class="err"&gt;selector.&lt;/span&gt; &lt;span class="n"&gt;Reason&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="err"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;ioe&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toString&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
        &lt;span class="err"&gt;LOG.severe(text)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="err"&gt;throw&lt;/span&gt; &lt;span class="err"&gt;new&lt;/span&gt; &lt;span class="err"&gt;RuntimeException(text,&lt;/span&gt; &lt;span class="err"&gt;ioe)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="o"&gt;......&lt;/span&gt;
&lt;span class="err"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;The statement "LOG.severe(text)" doesn't have LOG severe control.&lt;/p&gt;
&lt;p&gt;The Tainted path:&lt;br/&gt;
 org.xsocket.connection.IoConnector --&amp;gt; &lt;br/&gt;
    org.xsocket.connection.IoConnector$RegisterTask --&amp;gt; &lt;br/&gt;
    org.xsocket.connection.IoConnector --&amp;gt; &lt;br/&gt;
     org.xsocket.connection.ConnectionManager --&amp;gt; &lt;br/&gt;
     org.xsocket.connection.NonBlockingConnection$SyncIoConnectorCallback --&amp;gt; &lt;br/&gt;
     org.xsocket.connection.ConnectionManager --&amp;gt; &lt;br/&gt;
     org.xsocket.connection.NonBlockingConnection --&amp;gt; &lt;br/&gt;
     org.xsocket.connection.NonBlockingConnection$SyncIoConnectorCallback --&amp;gt; &lt;br/&gt;
     org.xsocket.connection.NonBlockingConnection --&amp;gt; &lt;br/&gt;
     org.xsocket.connection.ConnectionManager --&amp;gt; &lt;br/&gt;
     org.xsocket.connection.ConnectionManager$TimeoutMgmHandle --&amp;gt; &lt;br/&gt;
     org.xsocket.connection.NonBlockingConnection --&amp;gt; &lt;br/&gt;
     org.xsocket.connection.IoConnector$RegisterTask --&amp;gt; &lt;br/&gt;
     org.xsocket.connection.NonBlockingConnection --&amp;gt; &lt;br/&gt;
     org.xsocket.connection.ConnectionManager$TimeoutMgmHandle --&amp;gt; &lt;br/&gt;
     org.xsocket.connection.NonBlockingConnection --&amp;gt; &lt;br/&gt;
      org.xsocket.connection.IoSocketDispatcherPool&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;I am going to submit a CVE, so please confirm this is not a true positive.
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Xiaoqin Fu</dc:creator><pubDate>Sat, 17 Aug 2019 06:29:02 -0000</pubDate><guid>https://sourceforge.net1b9648e893fb74ef5766bced6c8aed3a0581f207</guid></item></channel></rss>