Hi Malithi,

Seems that when you log.error(message, e); the stack trace does not get
sanitized, but if you do log.error(e); then the stack trace get sanitized.

Currently we are developing Jaggery app; when an exception occurred in
Jaggery code, Rhino engine logs the stack trace and that stack trace is
sanitized. Looks like our issue goes to Jaggery.

I also notices that in Jaggery, logging exceptions like log.error(e);
outputs a sanitized stack trace. One can avoid that by logging
exceptions log.error(message,
e); like this.

Hoping to discuss this with the Jaggery team. Thank you very much for your
assistance regarding this matter.


On Thu, Nov 19, 2015 at 12:26 PM, Malithi Edirisinghe <[email protected]>
wrote:

> Hi Sajith,
>
> Actually the stack trace does not get sanitized. Could you please give
> some example.
> I have tried a simple test as below
>
> try {
>     log.info("XACML policy schema loaded \n successfully.");
>     throw new Exception("Test \n Exception");
> } catch (Exception e) {
>     log.error("Logging Test \n Exception", e);
> }
>
> But this prints the log properly and here the stack trace is not
> sanitized. Only the message that you log as an error or debug log gets
> sanitized. Even if you refer the code line that I have pointed above you
> will see it.
>
> So the output of the above code segment will be something like below.
>
> [2015-11-19 01:02:07,246]  INFO
> {org.wso2.carbon.identity.entitlement.internal.SchemaBuilder} -  XACML
> policy schema loaded _ successfully. (Sanitized)
>
> [2015-11-19 01:02:07,246] ERROR
> {org.wso2.carbon.identity.entitlement.internal.SchemaBuilder} -  Logging
> Test _ Exception (Sanitized)
>
> java.lang.Exception: Test
>
>  Exception
>
> at
> org.wso2.carbon.identity.entitlement.internal.SchemaBuilder.run(SchemaBuilder.java:46)
>
> at java.lang.Thread.run(Thread.java:722)
>
> Here you can clearly see that the stack trace is not sanitized. It prints
> the new line character in the exception as it is in the stack trace.
>
> Thanks,
>
> Malithi.
>
> On Thu, Nov 19, 2015 at 11:59 AM, Sajith Ariyarathna <[email protected]>
> wrote:
>
>> Hi Malithi,
>>
>> My concern is that current fix sanitizing stack traces even though stack
>> trace does not have CRLF injections in it. I believe sanitizing log
>> messages (e.g. log.error(message) , excaption.getMessage() )
>> is sufficient to prevent  CRLF injections in logs.
>>
>> I think we can overcome this problem with the my earlier proposed
>> approach (extending log4j PatternLayout class and overriding the format
>>  method).
>>
>> Thanks.
>>
>>
>> On Thu, Nov 19, 2015 at 1:07 AM, Malithi Edirisinghe <[email protected]>
>> wrote:
>>
>>> Hi Sajith,
>>>
>>> With the present fix there's no way that stack traces could be sanitized
>>> unless e.getMessage is explicitly used as the log message.
>>>
>>> As you can see at [1] only the logging message is sanitized here.
>>> Could you please elaborate more in case i'm misunderstanding your
>>> concern.
>>>
>>> [1]
>>> https://github.com/wso2/carbon-kernel/pull/278/files#diff-5859ce33cfadc4c7933a6a08a605f8d1R72
>>>
>>> Thanks,
>>> Malithi.
>>>
>>> On Wed, Nov 18, 2015 at 6:42 PM, Sajith Ariyarathna <[email protected]>
>>> wrote:
>>>
>>>> Hi All,
>>>>
>>>> Me and RasikaP dig a little deep to find a solution to this problem.
>>>>
>>>> Instead of sanitizing final log message, you can sanitize when it is
>>>> formatted by extending the PatternLayout [1] class. Refer this code [2],
>>>> where public String format(LoggingEvent event) method is overridden to
>>>> achieve a custom log message formatting.  You can configure log4j
>>>> (log4j.xml) to use your extended Pattern Layout class by adding <layout
>>>> class="org.apache.log4j.MyPatternLayout"> in your <appender> .
>>>>
>>>> WDYT?
>>>>
>>>> [1]
>>>> http://grepcode.com/file/repo1.maven.org/maven2/log4j/log4j/1.2.17/org/apache/log4j/PatternLayout.java?av=f
>>>>
>>>> [2]
>>>> http://apache-logging.6191.n7.nabble.com/how-to-search-and-replace-message-text-in-outgoing-log-messages-td35625.html#a35919
>>>>
>>>> Thanks.
>>>>
>>>> On Wed, Nov 18, 2015 at 4:18 PM, Sajith Ariyarathna <[email protected]>
>>>> wrote:
>>>>
>>>>> Hi Malithi,
>>>>>
>>>>> The problem with the given fix is that, even stack traces are
>>>>> sanitized. IMO, you don't need to sanitize stack traces. Sanitizing log
>>>>> messages (log.error("message"), exception.getMessage() ) is
>>>>> sufficient to prevent log forging.
>>>>>
>>>>> This problem affects to all products. I think we have to fix this ASAP.
>>>>>
>>>>> Thanks.
>>>>>
>>>>> On Wed, Nov 18, 2015 at 3:24 PM, Malithi Edirisinghe <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Hi All,
>>>>>>
>>>>>> This was added for a security fix [1] and was discussed at
>>>>>> security-leads@ [2]. So the present fix affects to the existing
>>>>>> appenders (CarbonConsoleAppender, CarbonDailyRollingFileAppender,
>>>>>> MemoryAppender).
>>>>>> The other option that we could have done is to extend the existing
>>>>>> appenders and introduce a Secured set of appenders such that only those
>>>>>> will sanitize the logging message. But, with the present fix I'm afraid
>>>>>> that other than configuring the appender at log4j.properties to some in
>>>>>> built log4j appender we won't be able to get rid of this sanitization 
>>>>>> logic
>>>>>> at logging.
>>>>>>
>>>>>> [1] https://support.wso2.com/jira/browse/SECINTDEV-5
>>>>>> [2] 'Preventing CRLF Injection when logging'
>>>>>>
>>>>>> Thanks,
>>>>>> Malithi.
>>>>>>
>>>>>> On Wed, Nov 18, 2015 at 3:05 PM, Viraj Senevirathne <[email protected]>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi Krishantha,
>>>>>>>
>>>>>>> We have observed that* Log Mediator in ESB* is affected due to this
>>>>>>> change. If there are new lines in the message payload it very 
>>>>>>> inconvenient
>>>>>>> and hard to read the logs. And user cannot see actual payload as it is,
>>>>>>> because this functionality change the message log.
>>>>>>>
>>>>>>> Thanks,
>>>>>>>
>>>>>>> On Wed, Nov 18, 2015 at 2:58 PM, Sajith Ariyarathna <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>> Hi All,
>>>>>>>>
>>>>>>>> We are using carbon.kernel.version 4.4.2 in MDM 2.0.0 SNAPSHOT and
>>>>>>>> we face the same problem (new lines are replaced with underscores in 
>>>>>>>> logs).
>>>>>>>> Because of this behavior, it is very hard to debug/find problems by 
>>>>>>>> reading
>>>>>>>> error logs. Is there any way to by pass/stop this behavior without 
>>>>>>>> patching
>>>>>>>> the carbon kernel?
>>>>>>>>
>>>>>>>> Thanks.
>>>>>>>>
>>>>>>>> On Fri, Oct 30, 2015 at 11:57 AM, Viraj Senevirathne <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> Hi Kasun,
>>>>>>>>>
>>>>>>>>> It seems that it has happened due to this commit
>>>>>>>>> https://github.com/wso2/carbon-kernel/commit/e0b6ae7d9f4cdee2f0bf3744b2a3ce02c3b808bf
>>>>>>>>> . We removed it and patched the kernel then issue was resolved. What 
>>>>>>>>> can we
>>>>>>>>> do about this?
>>>>>>>>>
>>>>>>>>> Thank You,
>>>>>>>>>
>>>>>>>>> On Fri, Oct 30, 2015 at 9:15 AM, Kasun Gajasinghe <[email protected]
>>>>>>>>> > wrote:
>>>>>>>>>
>>>>>>>>>> Can you guys go through recent commits to org.wso2.carbon.logging
>>>>>>>>>> component and find out if any of those caused this issue?
>>>>>>>>>>
>>>>>>>>>> On Oct 29, 2015, at 9:23 PM, Jagath Sisirakumara Ariyarathne <
>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>
>>>>>>>>>> Hi Carbon Team,
>>>>>>>>>>
>>>>>>>>>> Any thought to figure out the issue is much appreciated.
>>>>>>>>>>
>>>>>>>>>> Thanks.
>>>>>>>>>>
>>>>>>>>>> On Wed, Oct 28, 2015 at 3:42 PM, Viraj Senevirathne <
>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi All,
>>>>>>>>>>>
>>>>>>>>>>> We have upgraded the carbon version in ESB from 4.4.1 to 4.4.2.
>>>>>>>>>>> Then we have encountered following issue.
>>>>>>>>>>>
>>>>>>>>>>> *In carbon.kernel.version 4.4.1 and earlier carbon versions*
>>>>>>>>>>>
>>>>>>>>>>> TID: [-1234] [] [2015-10-23 16:43:26,614]  INFO
>>>>>>>>>>> {org.apache.synapse.mediators.builtin.LogMediator} -  To:
>>>>>>>>>>> /services/sendReciveProxy.sendReciveProxyHttpSoap11Endpoint, 
>>>>>>>>>>> WSAction:
>>>>>>>>>>> urn:getQuote, SOAPAction: urn:getQuote, MessageID:
>>>>>>>>>>> urn:uuid:333b6811-04aa-4c6a-94fb-3edc4d56065d, Direction: request,
>>>>>>>>>>> Envelope: <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope
>>>>>>>>>>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
>>>>>>>>>>> xmlns:xsd="http://services.samples/xsd"; xmlns:ser="
>>>>>>>>>>> http://services.samples";><soapenv:Body>
>>>>>>>>>>>       <ser:getQuote>
>>>>>>>>>>>          <!--Optional:-->
>>>>>>>>>>>          <ser:request>
>>>>>>>>>>>             <!--Optional:-->
>>>>>>>>>>>             <xsd:symbol>IBM</xsd:symbol>
>>>>>>>>>>>          </ser:request>
>>>>>>>>>>>       </ser:getQuote>
>>>>>>>>>>>    </soapenv:Body></soapenv:Envelope>
>>>>>>>>>>> {org.apache.synapse.mediators.builtin.LogMediator}
>>>>>>>>>>>
>>>>>>>>>>> *Same log in carbon.kernel.version 4.4.2 *
>>>>>>>>>>>
>>>>>>>>>>> [2015-10-28 15:38:36,027]  INFO - LogMediator To:
>>>>>>>>>>> /services/callOutOnly.callOutOnlyHttpSoap11Endpoint, WSAction: 
>>>>>>>>>>> urn:mediate,
>>>>>>>>>>> SOAPAction: urn:mediate, MessageID:
>>>>>>>>>>> urn:uuid:61f4b04c-0906-4228-975e-1b8f1be7450d, Direction: request,
>>>>>>>>>>> Envelope: <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope
>>>>>>>>>>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
>>>>>>>>>>> xmlns:wsa="http://www.w3.org/2005/08/addressing";><soapenv:Body>_
>>>>>>>>>>>         <m:placeOrder xmlns:m="http://services.samples";>_
>>>>>>>>>>>  <m:order>_            <m:price>3.141593E0</m:price>_
>>>>>>>>>>>  <m:quantity>4</m:quantity>_            <m:symbol>IBM</m:symbol>_
>>>>>>>>>>>  </m:order>_        </m:placeOrder>_
>>>>>>>>>>>  </soapenv:Body></soapenv:Envelope> (Sanitized)
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> As you can see all the new lines are replaced with _ .
>>>>>>>>>>>
>>>>>>>>>>> What could be the issue here?
>>>>>>>>>>>
>>>>>>>>>>> Thank you,
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> Viraj Senevirathne
>>>>>>>>>>> Software Engineer; WSO2, Inc.
>>>>>>>>>>>
>>>>>>>>>>> Mobile : +94 71 958 0269
>>>>>>>>>>> Email : [email protected]
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Jagath Ariyarathne
>>>>>>>>>> Technical Lead
>>>>>>>>>> WSO2 Inc.  http://wso2.com/
>>>>>>>>>> Email: [email protected]
>>>>>>>>>> Mob  : +94 77 386 7048
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Viraj Senevirathne
>>>>>>>>> Software Engineer; WSO2, Inc.
>>>>>>>>>
>>>>>>>>> Mobile : +94 71 958 0269
>>>>>>>>> Email : [email protected]
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Dev mailing list
>>>>>>>>> [email protected]
>>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Sajith Ariyarathna
>>>>>>>> Software Engineer; WSO2, Inc.;  http://wso2.com/
>>>>>>>> mobile: +94 77 6602284, +94 71 3951048
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Viraj Senevirathne
>>>>>>> Software Engineer; WSO2, Inc.
>>>>>>>
>>>>>>> Mobile : +94 71 958 0269
>>>>>>> Email : [email protected]
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>>
>>>>>> *Malithi Edirisinghe*
>>>>>> Senior Software Engineer
>>>>>> WSO2 Inc.
>>>>>>
>>>>>> Mobile : +94 (0) 718176807
>>>>>> [email protected]
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Sajith Ariyarathna
>>>>> Software Engineer; WSO2, Inc.;  http://wso2.com/
>>>>> mobile: +94 77 6602284, +94 71 3951048
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Sajith Ariyarathna
>>>> Software Engineer; WSO2, Inc.;  http://wso2.com/
>>>> mobile: +94 77 6602284, +94 71 3951048
>>>>
>>>
>>>
>>>
>>> --
>>>
>>> *Malithi Edirisinghe*
>>> Senior Software Engineer
>>> WSO2 Inc.
>>>
>>> Mobile : +94 (0) 718176807
>>> [email protected]
>>>
>>
>>
>>
>> --
>> Sajith Ariyarathna
>> Software Engineer; WSO2, Inc.;  http://wso2.com/
>> mobile: +94 77 6602284, +94 71 3951048
>>
>
>
>
> --
>
> *Malithi Edirisinghe*
> Senior Software Engineer
> WSO2 Inc.
>
> Mobile : +94 (0) 718176807
> [email protected]
>



-- 
Sajith Ariyarathna
Software Engineer; WSO2, Inc.;  http://wso2.com/
mobile: +94 77 6602284, +94 71 3951048
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to