<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>DZCORE</title>
	<atom:link href="http://dzcore.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://dzcore.wordpress.com</link>
	<description>Open Source &#38; Computer Security</description>
	<lastBuildDate>Wed, 19 Jan 2011 21:29:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='dzcore.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>DZCORE</title>
		<link>http://dzcore.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://dzcore.wordpress.com/osd.xml" title="DZCORE" />
	<atom:link rel='hub' href='http://dzcore.wordpress.com/?pushpress=hub'/>
		<item>
		<title>we have a new home</title>
		<link>http://dzcore.wordpress.com/2011/01/19/new-home/</link>
		<comments>http://dzcore.wordpress.com/2011/01/19/new-home/#comments</comments>
		<pubDate>Wed, 19 Jan 2011 21:25:26 +0000</pubDate>
		<dc:creator>tixxdz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://dzcore.wordpress.com/?p=85</guid>
		<description><![CDATA[Hi, Just to tell you that I&#8217;m still alive and we have started a new site opendz.org, we hope to publish our stuff there. If you need more info: currently I&#8217;m doing research in the embedded systems world, and sorry if I&#8217;m not a true blogger. opendz.org. Thx.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dzcore.wordpress.com&amp;blog=7964695&amp;post=85&amp;subd=dzcore&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hi,</p>
<p>Just to tell you that I&#8217;m still alive and we have started a new site <a href="http://opendz.org">opendz.org</a>, we hope to publish our stuff there.</p>
<p>If you need more info: currently I&#8217;m doing research in the embedded systems world, and sorry if I&#8217;m not a true blogger.</p>
<p><a href="http://opendz.org">opendz.org</a>.</p>
<p>Thx.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dzcore.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dzcore.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dzcore.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dzcore.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dzcore.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dzcore.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dzcore.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dzcore.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dzcore.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dzcore.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dzcore.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dzcore.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dzcore.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dzcore.wordpress.com/85/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dzcore.wordpress.com&amp;blog=7964695&amp;post=85&amp;subd=dzcore&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dzcore.wordpress.com/2011/01/19/new-home/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">tixxdz</media:title>
		</media:content>
	</item>
		<item>
		<title>[DZC-2009-001] The Movie Player and VLC Media Player Real Data Transport parsing integer underflow</title>
		<link>http://dzcore.wordpress.com/2009/07/27/dzc-2009-001-the-movie-player-and-vlc-media-player-real-data-transport-parsing-integer-underflow/</link>
		<comments>http://dzcore.wordpress.com/2009/07/27/dzc-2009-001-the-movie-player-and-vlc-media-player-real-data-transport-parsing-integer-underflow/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 20:42:43 +0000</pubDate>
		<dc:creator>tixxdz</dc:creator>
				<category><![CDATA[Advisories]]></category>

		<guid isPermaLink="false">http://dzcore.wordpress.com/?p=20</guid>
		<description><![CDATA[hello I have published a security advisory for Mplayer and VLC: [DZC-2009-001] Advisory blog post: Advisory: The Movie Player and VLC Media Player Real Data Transport parsing integer underflow. Affected products: The Movie player &#60;= svn r29446 [1] VLC media player &#60;= 1.0.0 [2] Possible others applications that use the xine lib code [3]. Discovred [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dzcore.wordpress.com&amp;blog=7964695&amp;post=20&amp;subd=dzcore&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>hello</p>
<p>I have published a security advisory for Mplayer and VLC: <a href="https://sites.google.com/site/dzcore/misc/dzcore-2009-001-advisory.txt">[DZC-2009-001]</a></p>
<p>Advisory blog post:</p>
<p>Advisory:<br />
The Movie Player and VLC Media Player Real Data Transport<br />
parsing integer underflow.</p>
<p>Affected products:<br />
The Movie player &lt;= svn r29446 [1]<br />
VLC media player &lt;= 1.0.0 [2]<br />
Possible others applications that use the xine lib code [3].</p>
<p>Discovred by:<br />
tixxDZ<br />
DZCORE Labs, Algeria</p>
<p>Date reported:<br />
2009/07/25</p>
<p>Release Date:<br />
2009/07/27</p>
<p>Solutions:<br />
VLC: update to VLC media player 1.0.1 [2] [4].<br />
Mplayer: update to svn r29447.</p>
<p>&#8212;&#8212;&#8212;<br />
Abstract:<br />
&#8212;&#8212;&#8212;</p>
<p>Mplayer<br />
Source file:  stream/realrtsp/real.c<br />
function:       <span style="color:#0000ff;">int real_get_rdt_chunk(rtsp_t *rtsp_session, char **buffer, int rdt_rawdata)</span></p>
<p>VLC<br />
Source file:  modules/access/rtsp/real.c<br />
function:       <span style="color:#0000ff;">int real_get_rdt_chunk_header(rtsp_client_t *rtsp_session, rmff_pheader_t *ph)</span></p>
<p>The original code is part of the xine library [3]:<br />
Source file:  src/input/libreal/real.c<br />
function: <span style="color:#0000ff;"> int real_get_rdt_chunk(rtsp_t *rtsp_session, unsigned char **buffer)</span></p>
<p>Function real_get_rdt_chunk() calls rtsp_read_data() to read RDT (Real Data Transport) chunks headers from the network and after that it will parse them.<br />
A controled variable is used to allocate a buffer and later passed on to the rtsp_read_data() function in order to specify the length of an RDT chunk data to read from the network.<br />
An integer underflow can be triggered when parsing a malformed RDT header chunk, a remote attacker can exploit it to execute arbitrary code in the context of the application.</p>
<p>The xine lib [3] seems not to be vulnerable due to an additional check in the xio_rw_abort() funcion (file: src/xine-engine/io_helper.c), which takes the length of an RDT packet as an off_t type and performs some comparison checks (line: 350) before reading chunks from the network.<br />
The Movie player [1] and the VLC media player [2] are vulnerable, the length of an RDT packet is passed as an unsigned int to their own network read functions.</p>
<p>&#8212;&#8212;&#8212;&#8211;<br />
Descripton:<br />
&#8212;&#8212;&#8212;&#8211;<br />
xine-lib source file:   src/input/libreal/real.c</p>
<p><span style="color:#0000ff;">int real_get_rdt_chunk(rtsp_t *rtsp_session, unsigned char **buffer) {</span></p>
<p><span style="color:#0000ff;">int n=1;<br />
uint8_t header[8];<br />
rmff_pheader_t ph;<br />
int size;<br />
int flags1;<br />
int unknown1;<br />
uint32_t ts;</span></p>
<p><span style="color:#0000ff;">n=rtsp_read_data(rtsp_session, header, 8);<br />
if (n&lt;8) return 0;<br />
if (header[0] != 0&#215;24)<br />
{<br />
lprintf(&#8220;rdt chunk not recognized: got 0x%02x\n&#8221;, header[0]);<br />
return 0;<br />
}<br />
size=(header[1]&lt;&lt;16)+(header[2]&lt;&lt;8)+(header[3]); <strong><span style="color:#ff0000;">/* [1] */</span></strong><br />
flags1=header[4];<br />
if ((flags1!=0&#215;40)&amp;&amp;(flags1!=0&#215;42))<br />
{<br />
lprintf(&#8220;got flags1: 0x%02x\n&#8221;,flags1);<br />
if (header[6]==0&#215;06)<br />
{<br />
lprintf(&#8220;got end of stream packet\n&#8221;);<br />
return 0;<br />
}<br />
&#8230;<br />
size-=9;  <strong><span style="color:#ff0000;">/* [2] */</span></strong><br />
}<br />
unknown1=(header[5]&lt;&lt;16)+(header[6]&lt;&lt;8)+(header[7]);<br />
n=rtsp_read_data(rtsp_session, header, 6);</span></p>
<p><span style="color:#0000ff;">if (n&lt;6) return 0;<br />
ts=_X_BE_32(header); </span></p>
<p><span style="color:#0000ff;">lprintf(&#8220;ts: %u size: %u, flags: 0x%02x, unknown values: %u<br />
0x%02x 0x%02x\n&#8221;,<br />
ts, size, flags1, unknown1, header[4], header[5]);</span></p>
<p><span style="color:#0000ff;">size+=2; <span style="color:#ff0000;"><strong>/* [3] */</strong></span></span></p>
<p><span style="color:#0000ff;">ph-&gt;object_version=0;</span></p>
<p><span style="color:#0000ff;">ph-&gt;length=size; <strong><span style="color:#ff0000;">/* [4] */</span></strong><br />
ph-&gt;stream_number=(flags1&gt;&gt;1)&amp;1;<br />
ph-&gt;timestamp=ts;<br />
ph-&gt;reserved=0;<br />
ph-&gt;flags=0;      /* TODO: determine keyframe flag and insert here? */<br />
</span></p>
<p><span style="color:#0000ff;">xine_buffer_ensure_size(*buffer, 12+size); <strong><span style="color:#ff0000;">/* [5] */</span></strong><br />
</span></p>
<p><span style="color:#0000ff;">rmff_dump_pheader(&amp;ph, *buffer); <strong> </strong><br />
</span></p>
<p><span style="color:#0000ff;">size-=12; <strong><span style="color:#ff0000;">/* [6] */</span></strong></span></p>
<p><span style="color:#0000ff;">n=rtsp_read_data(rtsp_session, (*buffer)+12, size); <strong><span style="color:#ff0000;">/* [7] */</span></strong><br />
</span></p>
<p><span style="color:#0000ff;">return (n &lt;= 0) ? 0 : n+12;</span></p>
<p><span style="color:#0000ff;">}</span></p>
<p><strong><span style="color:#ff0000;">[1] </span></strong>The signed int size variable is filled with data from the network.</p>
<p><strong><span style="color:#ff0000;">[2] [3]</span></strong> Some arithmetics operations, we assume that at the end size == 11.</p>
<p><strong><span style="color:#ff0000;">[4]</span></strong> The value of the size variable is assigned to the ph-&gt;length.</p>
<p><span style="color:#ff0000;"><strong>[5]</strong></span> The size variable is used to allocate (realloc) space for the buffer.</p>
<p><strong><span style="color:#ff0000;">[6]</span></strong> An integer underflow is triggered, size == 0xffffffff.</p>
<p><strong><span style="color:#ff0000;">[7]</span></strong> The size variable is passed to the rtsp_read_data() function as an<br />
unsigned integer in order to specify the length of an RDT packet.</p>
<p>Mplayer:<br />
Mplayer is vulnerable, the rtsp_read_data() function passes the<br />
length to the read_stream() function (file: stream/librtsp/rtsp.c) as<br />
a size_t type which can lead to read a big amount of data from the<br />
network and cause a heap overflow.</p>
<p>VLC:<br />
VLC is vulnerable, the real_get_rdt_chunk_header() function will read<br />
and parse the header, the vulnerable call to the rtsp_read_data()<br />
function is made by the real_get_rdt_chunk() function, the length is<br />
passed to the __net_Read() function (file: src/network/io.c) as a<br />
size_t type which can lead to read a big amount of data from the<br />
network and cause a heap overflow.</p>
<p>&#8212;&#8212;&#8211;<br />
Patches:<br />
&#8212;&#8212;&#8211;</p>
<p>VLC<br />
Official patch by the VideoLAN team (Patch development time: 2 hours) [4].</p>
<p>Mplayer<br />
Official patch by the Mplayer team, please update svn to revision 29447.</p>
<p>&#8212;&#8212;&#8212;&#8211;<br />
References:<br />
&#8212;&#8212;&#8212;&#8211;</p>
<p>[1]     http://www.mplayerhq.hu/<br />
[2]     http://www.videolan.org/<br />
[3]     http://www.xine-project.org/<br />
[4]     http://git.videolan.org/?p=vlc.git;a=commitdiff;h=dc74600c97eb834<br />
c08674676e209afa842053aca</p>
<p>&#8212;&#8212;&#8212;&#8211;<br />
Disclaimer:<br />
&#8212;&#8212;&#8212;&#8211;</p>
<p>The document is provided as is without warranty of any kind. The content<br />
may change without notice. In no event shall the author be liable for any<br />
special, direct or indirect damages, losses or unlawful offences.<br />
Use at your own risk.</p>
<p>Copyright (c) 2009 tix tixxDZ, DZCORE Labs. All rights reserved.</p>
<p>#end</p>
<p>PS: the <a href="http://archives.neohapsis.com/archives/bugtraq/2009-07/0198.html">original Advisory</a> published on bugtraq contains an unofficial patch of mine to the Mplayer, however the Mplayer Team responded quickly and a patch is available, please update to svn revision 29447.<br />
PS: the VideoLan team had already corrected the bug and normally the VLC version 1.0.1 will be available soon.</p>
<p><strong>EDIT:</strong><br />
<span style="color:#ff0000;"><strong>[5]</strong></span> Allocating (realloc) memory for the buffer (memory size: 12 + 11 bytes)<br />
<span style="color:#ff0000;"><strong>[6]</strong></span> Integer underflow, size == -1 == 0xffffffff<br />
<strong><span style="color:#ff0000;">[7]</span></strong> The size variable is used as an unsigned integer to read data from the network, please see the conversion table below:</p>
<ul>
<li>32bit signed int max value:  2147483647 (0x7fffffff)</li>
<li>32bit signed int min value:   -2147483648 (0&#215;80000000)</li>
<li>32bit unsigned int max value:  4294967295 (0xffffffff)</li>
<li>32bit unsigned int min value:   0</li>
</ul>
<p>so if we are dealing with an unsigned int the value -1 will be converted to 4294967295 and in this case the network function will try to read 4GB of data into the buffer.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dzcore.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dzcore.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dzcore.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dzcore.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dzcore.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dzcore.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dzcore.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dzcore.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dzcore.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dzcore.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dzcore.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dzcore.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dzcore.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dzcore.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dzcore.wordpress.com&amp;blog=7964695&amp;post=20&amp;subd=dzcore&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dzcore.wordpress.com/2009/07/27/dzc-2009-001-the-movie-player-and-vlc-media-player-real-data-transport-parsing-integer-underflow/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">tixxdz</media:title>
		</media:content>
	</item>
	</channel>
</rss>
