<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent changes to 25: An information leakage from IoConnector to IoSocketDispatcher through an IOException without LOG severe control</title><link href="https://sourceforge.net/p/xsocket/bugs/25/" rel="alternate"/><link href="https://sourceforge.net/p/xsocket/bugs/25/feed.atom" rel="self"/><id>https://sourceforge.net/p/xsocket/bugs/25/</id><updated>2020-12-09T15:12:26.324000Z</updated><subtitle>Recent changes to 25: An information leakage from IoConnector to IoSocketDispatcher through an IOException without LOG severe control</subtitle><entry><title>#25 An information leakage from IoConnector to IoSocketDispatcher through an IOException without LOG severe control</title><link href="https://sourceforge.net/p/xsocket/bugs/25/?limit=25#c708" rel="alternate"/><published>2020-12-09T15:12:26.324000Z</published><updated>2020-12-09T15:12:26.324000Z</updated><author><name>Xiaoqin Fu</name><uri>https://sourceforge.net/u/xqfu/</uri></author><id>https://sourceforge.net09f9d84e28d063f614868f5c8e28c63b0fb67cff</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Could I open a PR for it?&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>An information leakage from IoConnector to IoSocketDispatcher through an IOException without LOG severe control</title><link href="https://sourceforge.net/p/xsocket/bugs/25/" rel="alternate"/><published>2019-08-17T06:29:02.737000Z</published><updated>2019-08-17T06:29:02.737000Z</updated><author><name>Xiaoqin Fu</name><uri>https://sourceforge.net/u/xqfu/</uri></author><id>https://sourceforge.net1b9648e893fb74ef5766bced6c8aed3a0581f207</id><summary type="html">&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;</summary></entry></feed>