<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Core Security Punts On Disclosure</title>
	<atom:link href="http://www.liquidmatrix.org/blog/2008/05/07/core-security-punts-on-disclosure/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.liquidmatrix.org/blog/2008/05/07/core-security-punts-on-disclosure/</link>
	<description>Bringing Fire To The Village: Your Source For Computer, Network &#38; Information Security News from Dave Lewis, Security Blogger</description>
	<lastBuildDate>Mon, 15 Mar 2010 13:04:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Tim</title>
		<link>http://www.liquidmatrix.org/blog/2008/05/07/core-security-punts-on-disclosure/comment-page-1/#comment-69172</link>
		<dc:creator>Tim</dc:creator>
		<pubDate>Thu, 08 May 2008 21:07:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.liquidmatrix.org/blog/?p=3024#comment-69172</guid>
		<description>For another point of view on this topic, Chris Eng of Veracode weighs in here: 
http://www.veracode.com/blog/?p=97

Yesterday, Dave Lewis over at LiquidMatrix Security Digest cried foul at Core Security for releasing too much detail about a recent DoS vulnerability they had discovered. His specific gripe was that they provided an IDA Pro excerpt that showed where the vulnerability was triggered.

Dave asserts that publishing 16 commented assembly instructions makes this disclosure irresponsible. But look at the code — it’s completely generic, just a textbook example of what it looks like when you forget to check a return value after calling operator new. Sure, Core gives you the exact offsets into the executable, but so what? If I have the binary, then it’s not going to be too hard to find the vulnerability anyway. It’s not like Core is giving away a proof-of-concept exploit that generates the malformed registration packet required to trigger the DoS. What’s more, they provide a detailed timeline going back to January 30th of this year describing exactly how the disclosure process with the vendor transpired. This looks extremely responsible to me; I just can’t understand what is “not cool” here.

There’s another interesting angle to this, completely unrelated to Core’s disclosure process. The vulnerability itself is described in the advisory as follows:

Un-authenticated client programs connecting to the service can send a malformed packet that causes a memory allocation operation (a call to new() operator) to fail returning a NULL pointer. Due to a lack of error-checking for the result of the memory allocation operation, the program later tries to use the pointer as a destination for memory copy operation, triggering an access violation error and terminating the service. 

This may bring to mind some recent discussions on whether callers of memory allocation functions should check the return value prior to use. To summarize, one camp says “caller should check”, the other camp says “callee should exit on allocation failure.” This is a gross oversimplification and if you want more detailed arguments, read the other blog posts that I linked to. In this case, if the “exit on failure” approach were taken, the DoS scenario might still happen, whereas if the caller were checking, the error could be handled more gracefully. More fuel for the debate!</description>
		<content:encoded><![CDATA[<p>For another point of view on this topic, Chris Eng of Veracode weighs in here:<br />
<a href="http://www.veracode.com/blog/?p=97" rel="nofollow">http://www.veracode.com/blog/?p=97</a></p>
<p>Yesterday, Dave Lewis over at LiquidMatrix Security Digest cried foul at Core Security for releasing too much detail about a recent DoS vulnerability they had discovered. His specific gripe was that they provided an IDA Pro excerpt that showed where the vulnerability was triggered.</p>
<p>Dave asserts that publishing 16 commented assembly instructions makes this disclosure irresponsible. But look at the code — it’s completely generic, just a textbook example of what it looks like when you forget to check a return value after calling operator new. Sure, Core gives you the exact offsets into the executable, but so what? If I have the binary, then it’s not going to be too hard to find the vulnerability anyway. It’s not like Core is giving away a proof-of-concept exploit that generates the malformed registration packet required to trigger the DoS. What’s more, they provide a detailed timeline going back to January 30th of this year describing exactly how the disclosure process with the vendor transpired. This looks extremely responsible to me; I just can’t understand what is “not cool” here.</p>
<p>There’s another interesting angle to this, completely unrelated to Core’s disclosure process. The vulnerability itself is described in the advisory as follows:</p>
<p>Un-authenticated client programs connecting to the service can send a malformed packet that causes a memory allocation operation (a call to new() operator) to fail returning a NULL pointer. Due to a lack of error-checking for the result of the memory allocation operation, the program later tries to use the pointer as a destination for memory copy operation, triggering an access violation error and terminating the service. </p>
<p>This may bring to mind some recent discussions on whether callers of memory allocation functions should check the return value prior to use. To summarize, one camp says “caller should check”, the other camp says “callee should exit on allocation failure.” This is a gross oversimplification and if you want more detailed arguments, read the other blog posts that I linked to. In this case, if the “exit on failure” approach were taken, the DoS scenario might still happen, whereas if the caller were checking, the error could be handled more gracefully. More fuel for the debate!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dave Lewis</title>
		<link>http://www.liquidmatrix.org/blog/2008/05/07/core-security-punts-on-disclosure/comment-page-1/#comment-69169</link>
		<dc:creator>Dave Lewis</dc:creator>
		<pubDate>Thu, 08 May 2008 15:37:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.liquidmatrix.org/blog/?p=3024#comment-69169</guid>
		<description>@CG

Very true. After 6+ years working on critical infrastructure I get a little twitchy when I see something like this. Control systems are not easily patched. Trust me. It&#039;s not like applying a patch for Adobe Reader. There is far more involved in addressing an issue like this. Hence my nose being out of joint in the particular instance.

@Tyler &lt;i&gt;(if you are reading this)&lt;/i&gt; You have comments turned off on your site so I couldn&#039;t reply to your post. Regarding, &quot;We&#039;ve seen it before and we&#039;ll see it again... but the patch is out, so they aren&#039;t helping the malicious individuals... just the good guys who have time constraints.&quot; The time constraints are significant in the control system space.

---

Oh, and if everyone agreed it would be rather boring no? Thanks for the comments!</description>
		<content:encoded><![CDATA[<p>@CG</p>
<p>Very true. After 6+ years working on critical infrastructure I get a little twitchy when I see something like this. Control systems are not easily patched. Trust me. It&#8217;s not like applying a patch for Adobe Reader. There is far more involved in addressing an issue like this. Hence my nose being out of joint in the particular instance.</p>
<p>@Tyler <i>(if you are reading this)</i> You have comments turned off on your site so I couldn&#8217;t reply to your post. Regarding, &#8220;We&#8217;ve seen it before and we&#8217;ll see it again&#8230; but the patch is out, so they aren&#8217;t helping the malicious individuals&#8230; just the good guys who have time constraints.&#8221; The time constraints are significant in the control system space.</p>
<p>&#8212;</p>
<p>Oh, and if everyone agreed it would be rather boring no? Thanks for the comments!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: CG</title>
		<link>http://www.liquidmatrix.org/blog/2008/05/07/core-security-punts-on-disclosure/comment-page-1/#comment-69168</link>
		<dc:creator>CG</dc:creator>
		<pubDate>Thu, 08 May 2008 15:01:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.liquidmatrix.org/blog/?p=3024#comment-69168</guid>
		<description>honestly anyone that can write an exploit probably just needs:
&#039;An attacker can trigger the memory allocation operation failure by specifying an abnormally large length field in a Registration packet&quot; 

to figure out where to start. i highly doubt the assembly would really help someone that was not already otherwise capable of writing the exploit to figure it out.</description>
		<content:encoded><![CDATA[<p>honestly anyone that can write an exploit probably just needs:<br />
&#8216;An attacker can trigger the memory allocation operation failure by specifying an abnormally large length field in a Registration packet&#8221; </p>
<p>to figure out where to start. i highly doubt the assembly would really help someone that was not already otherwise capable of writing the exploit to figure it out.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
