<html>
    <head>
      <base href="https://bugzilla.libav.org/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Invalid memcpy in ff_mov_read_stsd_entries (libavformat/mov.c)"
   href="https://bugzilla.libav.org/show_bug.cgi?id=1110">1110</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Invalid memcpy in ff_mov_read_stsd_entries (libavformat/mov.c)
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>Libav
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>git HEAD
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>Other
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>---
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>libavformat
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>bugzilla@libav.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>probefuzzer@gmail.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Created <span class=""><a href="attachment.cgi?id=703" name="attach_703" title="poc for libav">attachment 703</a> <a href="attachment.cgi?id=703&action=edit" title="poc for libav">[details]</a></span>
poc for libav

On latest version of libav 12.1:
There is an invalid memcpy (with null pointer parameter) in
ff_mov_read_stsd_entries  function of libavformat/mov.c, which can cause denial
of service (program failure) or possibly other unspecified impacts via the POC
in the attachment. 

The code snippet is posted below. The second and third parameter of memcpy can
be manipulated by remote attackers via crafted .avi file. When the second
parameter is set to be NULL but the third non-zero, there would be a
segmentation fault and program failure. When they are both zero, the program
behavior is unpredictable.


   1843         if (sc->extradata) {
   1844             int extra_size = st->codecpar->extradata_size;
.....
   1851             memcpy(sc->extradata[pseudo_stream_id],
st->codecpar->extradata, extra_size);
......
   1854         }

To reproduce the problem, run avconv with UBSAN:
avconv -y -i $POC -b 64k OUTPUT

libav/master/src/libavformat/mov.c:1851:13: runtime error: null pointer passed
as argument 2, which is declared to never be null</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are watching all bug changes.</li>
      </ul>
    </body>
</html>