<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>Matasano Chargen - Latest Comments in Under Lab Conditions, Mark Dowd Re-creates 1997</title><link>http://matasanochargen.disqus.com/</link><description></description><language>en</language><lastBuildDate>Mon, 03 Dec 2007 11:19:27 -0000</lastBuildDate><item><title>Re: Under Lab Conditions, Mark Dowd Re-creates 1997</title><link>http://www.matasano.com/log/224/under-lab-conditions-mark-dowd-re-creates-1997/#comment-2319706</link><description>hello~~~dear All~~~~&lt;br&gt;I am just starting to learn this bug~~~~&lt;br&gt;I find this issue too. And I get the program sendtest_c from &lt;a href="http://www.securityfocus.com/bid/17192/exploit" rel="nofollow"&gt;http://www.securityfocus.com/bid/17192/exploit&lt;/a&gt;. But I don't know how to make this become a really expolitation. I think this for months. I feel that I can't go forward any more~~~~please give me some hint or help~~~~&lt;br&gt;thanks~~~</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">piscis</dc:creator><pubDate>Mon, 03 Dec 2007 11:19:27 -0000</pubDate></item><item><title>Re: Under Lab Conditions, Mark Dowd Re-creates 1997</title><link>http://www.matasano.com/log/224/under-lab-conditions-mark-dowd-re-creates-1997/#comment-2319705</link><description>Congratulations.  How'd you do it?</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Thomas Ptacek</dc:creator><pubDate>Sat, 01 Jul 2006 22:23:44 -0000</pubDate></item><item><title>Re: Under Lab Conditions, Mark Dowd Re-creates 1997</title><link>http://www.matasano.com/log/224/under-lab-conditions-mark-dowd-re-creates-1997/#comment-2319704</link><description>DONE :]</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">fingerout</dc:creator><pubDate>Sat, 01 Jul 2006 02:00:53 -0000</pubDate></item><item><title>Re: Under Lab Conditions, Mark Dowd Re-creates 1997</title><link>http://www.matasano.com/log/224/under-lab-conditions-mark-dowd-re-creates-1997/#comment-2319703</link><description>My sense of it was, addresses written over stack frames (part of the trick is getting the function to abort leaving a dangling pointer into the stack).</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Thomas Ptacek</dc:creator><pubDate>Wed, 28 Jun 2006 21:37:27 -0000</pubDate></item><item><title>Re: Under Lab Conditions, Mark Dowd Re-creates 1997</title><link>http://www.matasano.com/log/224/under-lab-conditions-mark-dowd-re-creates-1997/#comment-2319702</link><description>Or heap one, since it's possible to force sm_syslog making this static pointer = mallocated buffer.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">fingerout</dc:creator><pubDate>Wed, 28 Jun 2006 21:34:15 -0000</pubDate></item><item><title>Re: Under Lab Conditions, Mark Dowd Re-creates 1997</title><link>http://www.matasano.com/log/224/under-lab-conditions-mark-dowd-re-creates-1997/#comment-2319701</link><description>Like any other stack overflow?</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Thomas Ptacek</dc:creator><pubDate>Wed, 28 Jun 2006 20:56:49 -0000</pubDate></item><item><title>Re: Under Lab Conditions, Mark Dowd Re-creates 1997</title><link>http://www.matasano.com/log/224/under-lab-conditions-mark-dowd-re-creates-1997/#comment-2319700</link><description>Correct, but how to exploit it ;)?</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">fingerout</dc:creator><pubDate>Wed, 28 Jun 2006 20:54:08 -0000</pubDate></item><item><title>Re: Under Lab Conditions, Mark Dowd Re-creates 1997</title><link>http://www.matasano.com/log/224/under-lab-conditions-mark-dowd-re-creates-1997/#comment-2319699</link><description>I haven't gotten back to this yet, but, the static pointer can be left in a state where it's pointing into the stack.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Thomas Ptacek</dc:creator><pubDate>Wed, 28 Jun 2006 20:40:38 -0000</pubDate></item><item><title>Re: Under Lab Conditions, Mark Dowd Re-creates 1997</title><link>http://www.matasano.com/log/224/under-lab-conditions-mark-dowd-re-creates-1997/#comment-2319698</link><description>After a bit cheating (putting sleep in sm_syslog() :P) i managed to exploit the race condiotion and got: Jun 29 02:48:14 fingerout sendmail[10085]: k5T0m3Lv010085:  Séˇout waiting for inpTö˙˙˙om &lt;a href="http://fingerout.lambda.furrynet.org" rel="nofollow"&gt;fingerout.lambda.furrynet.org&lt;/a&gt; during message collect &lt;br&gt;in syslog. Now comes another part: how to exploit this static pointer overwrite;]. Any ideas?</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">fingerout</dc:creator><pubDate>Wed, 28 Jun 2006 20:14:02 -0000</pubDate></item><item><title>Re: Under Lab Conditions, Mark Dowd Re-creates 1997</title><link>http://www.matasano.com/log/224/under-lab-conditions-mark-dowd-re-creates-1997/#comment-2319697</link><description>I really want to follow up on this stuff (for what it's worth, from memory, this is basically a weaponized version of the classic C++ exception handling bug --- aborting in the middle of a function, unbeknownst to the code in that function, leaves dangling references. In this case, a dangling referencing into the stack, stored in a function static.)&lt;br&gt;&lt;br&gt;I'm a bit buried, but I'll try to get at it later on tonight.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Thomas Ptacek</dc:creator><pubDate>Tue, 27 Jun 2006 20:03:43 -0000</pubDate></item><item><title>Re: Under Lab Conditions, Mark Dowd Re-creates 1997</title><link>http://www.matasano.com/log/224/under-lab-conditions-mark-dowd-re-creates-1997/#comment-2319696</link><description>Or in any other function before this code:&lt;br&gt;        if (CollectTimeout != NULL)&lt;br&gt;                sm_clrevent(CollectTimeout);</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">fingerout</dc:creator><pubDate>Tue, 27 Jun 2006 19:33:07 -0000</pubDate></item><item><title>Re: Under Lab Conditions, Mark Dowd Re-creates 1997</title><link>http://www.matasano.com/log/224/under-lab-conditions-mark-dowd-re-creates-1997/#comment-2319695</link><description>So the only possible exploitation vector I see is to be in chompheader() when the signal is delivered.&lt;br&gt;&lt;br&gt;&lt;br&gt;MODERATOR, PLEASE MAKE THESE 3 COMMENTS ONE ;], THX</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">fingerout</dc:creator><pubDate>Tue, 27 Jun 2006 13:09:35 -0000</pubDate></item><item><title>Re: Under Lab Conditions, Mark Dowd Re-creates 1997</title><link>http://www.matasano.com/log/224/under-lab-conditions-mark-dowd-re-creates-1997/#comment-2319694</link><description>After some more code analysis I think that it is impossible for the signal to be delivered while being in sm_syslog because of headers length -&amp;gt; can't get there with CollectProgress == false (which is the condition of longjmp occurance), since if we manage to bypass setting CollectProgres to true by going into switch(istate) case IS_DOTCR thus having pbp incremented, we will land in sm_io_getc after which CollectProgres is set to true, because of:&lt;br&gt;if (c == '\r' &amp;amp;&amp;amp; !bitset(EF_CRLF_NOT_EOL, e-&amp;gt;e_flags)) {&lt;br&gt;                                istate = IS_CR;&lt;br&gt;                                continue;&lt;br&gt;}&lt;br&gt;since c is set to '\r' in IS_DOTCR and with default settings this bitset() will return false so condition will be met.&lt;br&gt;The char will be processed and we'll be back waiting for another one (then CollectProgres = true). &lt;br&gt;Please correct me if I'm wrong...</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">fingerout</dc:creator><pubDate>Tue, 27 Jun 2006 13:05:17 -0000</pubDate></item><item><title>Re: Under Lab Conditions, Mark Dowd Re-creates 1997</title><link>http://www.matasano.com/log/224/under-lab-conditions-mark-dowd-re-creates-1997/#comment-2319693</link><description>Anything new about this issue? I'm doing research on this and it seems that the only possible way of making this race occur is sleeping on sm_io_getc in switch(mstate) case MS_HEADER since after sm_io_getc at the beginnig of inner loop (for(;;))  will cause setting CollectProgress to true which results in resetting the timer, so no race (no longjmp call) will occur.&lt;br&gt;Any thoughts?</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">fingerout</dc:creator><pubDate>Tue, 27 Jun 2006 11:57:41 -0000</pubDate></item><item><title>Re: Under Lab Conditions, Mark Dowd Re-creates 1997</title><link>http://www.matasano.com/log/224/under-lab-conditions-mark-dowd-re-creates-1997/#comment-2319692</link><description>It wouldn't be a race if you won everytime, would it &lt;br&gt;Dr. Strangelove | 03.27.06 - 10:46 am | #&lt;br&gt;&lt;br&gt; Keep checking the rapture link for updates. When we get a more reliable method of exploitation, I'll post it to the Dyad page in the advisory section.&lt;br&gt;&lt;br&gt;Robert&lt;br&gt;Robert E. Lee | Homepage | 03.28.06 - 5:36 am | #</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">blog</dc:creator><pubDate>Sat, 08 Apr 2006 23:13:12 -0000</pubDate></item></channel></rss>