r1003 - in /unstable/vlc/debian: changelog patches/sec-httpd_formatstring.diff patches/sec-rtsp_remote_dos.diff patches/sec-subtitle_buffer_overflow.diff patches/sec-vlcopt_support.diff patches/series

lool at users.alioth.debian.org lool at users.alioth.debian.org
Fri Jan 11 15:54:29 UTC 2008


Author: lool
Date: Fri Jan 11 15:54:28 2008
New Revision: 1003

URL: http://svn.debian.org/wsvn/pkg-multimedia/?sc=1&rev=1003
Log:
* Ack NMU by Nico Golde; thanks!
* Non-maintainer upload by security team.
* This update addresses the following security issues
  (CVE ids pending; Closes: #458318):
  - Fix format string issue in internal webserver that could lead to
    to arbitrary code execution (sec-httpd_formatstring.diff).
  - Disable m3u EXTVLCOPT parsing if no command line option is specified
    (--m3u-extvlcopt) to prevent browser plugins to control stream output
    and thus overwriting arbitrary files of the user running vlc
    (sec-vlcopt_support.diff).
  - Fix stack-based buffer overflow in subtitle parsing
    (sec-subtitle_buffer_overflow.diff).
  - Fix NULL pointer dereference in the rtsp/rtp module by checking return
    of the httpd_MsgGet function (sec-rtsp_remote_dos.diff).

Added:
    unstable/vlc/debian/patches/sec-httpd_formatstring.diff
    unstable/vlc/debian/patches/sec-rtsp_remote_dos.diff
    unstable/vlc/debian/patches/sec-subtitle_buffer_overflow.diff
    unstable/vlc/debian/patches/sec-vlcopt_support.diff
Modified:
    unstable/vlc/debian/changelog
    unstable/vlc/debian/patches/series

Modified: unstable/vlc/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-multimedia/unstable/vlc/debian/changelog?rev=1003&op=diff
==============================================================================
--- unstable/vlc/debian/changelog (original)
+++ unstable/vlc/debian/changelog Fri Jan 11 15:54:28 2008
@@ -14,7 +14,28 @@
   * debian/control:
     + Dropped the libcdio-dev versioned build-dep to ease backports.
 
+  [ Loic Minier ]
+  * Ack NMU by Nico Golde; thanks!
+
  -- Christophe Mutricy <xtophe at videolan.org>  Thu, 27 Dec 2007 15:50:10 +0100
+
+vlc (0.8.6.c-4.1) unstable; urgency=high
+
+  * Non-maintainer upload by security team.
+  * This update addresses the following security issues
+    (CVE ids pending; Closes: #458318):
+    - Fix format string issue in internal webserver that could lead to
+      to arbitrary code execution (sec-httpd_formatstring.diff).
+    - Disable m3u EXTVLCOPT parsing if no command line option is specified
+      (--m3u-extvlcopt) to prevent browser plugins to control stream output
+      and thus overwriting arbitrary files of the user running vlc
+      (sec-vlcopt_support.diff).
+    - Fix stack-based buffer overflow in subtitle parsing
+      (sec-subtitle_buffer_overflow.diff).
+    - Fix NULL pointer dereference in the rtsp/rtp module by checking return
+      of the httpd_MsgGet function (sec-rtsp_remote_dos.diff).
+
+ -- Nico Golde <nion at debian.org>  Fri, 11 Jan 2008 15:05:10 +0100
 
 vlc (0.8.6.c-4) unstable; urgency=high
 

Added: unstable/vlc/debian/patches/sec-httpd_formatstring.diff
URL: http://svn.debian.org/wsvn/pkg-multimedia/unstable/vlc/debian/patches/sec-httpd_formatstring.diff?rev=1003&op=file
==============================================================================
--- unstable/vlc/debian/patches/sec-httpd_formatstring.diff (added)
+++ unstable/vlc/debian/patches/sec-httpd_formatstring.diff Fri Jan 11 15:54:28 2008
@@ -1,0 +1,12 @@
+diff -Nurad vlc-0.8.6.c.orig/src/network/httpd.c vlc-0.8.6.c/src/network/httpd.c
+--- vlc-0.8.6.c.orig/src/network/httpd.c	2008-01-03 20:18:35.000000000 +0100
++++ vlc-0.8.6.c/src/network/httpd.c	2008-01-03 20:21:06.000000000 +0100
+@@ -414,7 +414,7 @@
+     psz_connection = httpd_MsgGet( &cl->query, "Connection" );
+     if( psz_connection != NULL )
+     {
+-        httpd_MsgAdd( answer, "Connection", psz_connection );
++        httpd_MsgAdd( answer, "Connection", "%s", psz_connection );
+     }
+ 
+     httpd_MsgAdd( answer, "Content-Length", "%d", answer->i_body );

Added: unstable/vlc/debian/patches/sec-rtsp_remote_dos.diff
URL: http://svn.debian.org/wsvn/pkg-multimedia/unstable/vlc/debian/patches/sec-rtsp_remote_dos.diff?rev=1003&op=file
==============================================================================
--- unstable/vlc/debian/patches/sec-rtsp_remote_dos.diff (added)
+++ unstable/vlc/debian/patches/sec-rtsp_remote_dos.diff Fri Jan 11 15:54:28 2008
@@ -1,0 +1,32 @@
+diff -Nurad vlc-0.8.6.c.orig/modules/misc/rtsp.c vlc-0.8.6.c/modules/misc/rtsp.c
+--- vlc-0.8.6.c.orig/modules/misc/rtsp.c	2008-01-03 20:18:46.000000000 +0100
++++ vlc-0.8.6.c/modules/misc/rtsp.c	2008-01-03 20:34:21.000000000 +0100
+@@ -678,6 +678,12 @@
+         {
+             psz_playnow = httpd_MsgGet( query, "x-playNow" );
+             psz_transport = httpd_MsgGet( query, "Transport" );
++            if( psz_transport == NULL )
++            {
++                answer->i_status = 400;
++                answer->psz_status = strdup( "Bad request" );
++                break; 
++            }
+             msg_Dbg( p_vod, "HTTPD_MSG_SETUP: transport=%s", psz_transport );
+ 
+             if( strstr( psz_transport, "unicast" ) &&
+diff -Nurad vlc-0.8.6.c.orig/modules/stream_out/rtp.c vlc-0.8.6.c/modules/stream_out/rtp.c
+--- vlc-0.8.6.c.orig/modules/stream_out/rtp.c	2008-01-03 20:18:50.000000000 +0100
++++ vlc-0.8.6.c/modules/stream_out/rtp.c	2008-01-03 21:10:18.000000000 +0100
+@@ -1855,6 +1855,12 @@
+         case HTTPD_MSG_SETUP:
+         {
+             char *psz_transport = httpd_MsgGet( query, "Transport" );
++            if( psz_transport == NULL )
++            {
++                answer->i_status = 400;
++                answer->psz_status = strdup( "Bad request" );
++                break;
++            }
+ 
+             //fprintf( stderr, "HTTPD_MSG_SETUP: transport=%s\n", psz_transport );
+ 

Added: unstable/vlc/debian/patches/sec-subtitle_buffer_overflow.diff
URL: http://svn.debian.org/wsvn/pkg-multimedia/unstable/vlc/debian/patches/sec-subtitle_buffer_overflow.diff?rev=1003&op=file
==============================================================================
--- unstable/vlc/debian/patches/sec-subtitle_buffer_overflow.diff (added)
+++ unstable/vlc/debian/patches/sec-subtitle_buffer_overflow.diff Fri Jan 11 15:54:28 2008
@@ -1,0 +1,43 @@
+diff -Nurad vlc-0.8.6.c.orig/modules/demux/subtitle.c vlc-0.8.6.c/modules/demux/subtitle.c
+--- vlc-0.8.6.c.orig/modules/demux/subtitle.c	2008-01-03 20:18:51.000000000 +0100
++++ vlc-0.8.6.c/modules/demux/subtitle.c	2008-01-03 21:01:29.000000000 +0100
+@@ -723,8 +723,8 @@
+         i_stop  = 0;
+ 
+         memset( buffer_text, '\0', MAX_LINE );
+-        if( sscanf( s, "{%d}{}%[^\r\n]", &i_start, buffer_text ) == 2 ||
+-            sscanf( s, "{%d}{%d}%[^\r\n]", &i_start, &i_stop, buffer_text ) == 3)
++        if( sscanf( s, "{%d}{}%8192[^\r\n]", &i_start, buffer_text ) == 2 ||
++            sscanf( s, "{%d}{%d}%8192[^\r\n]", &i_start, &i_stop, buffer_text ) == 3)
+         {
+             break;
+         }
+@@ -949,8 +949,8 @@
+     demux_sys_t *p_sys = p_demux->p_sys;
+     text_t      *txt = &p_sys->txt;
+ 
+-    char buffer_text[ 10 * MAX_LINE];
+-    char buffer_text2[ 10 * MAX_LINE];
++    char buffer_text[ 10 * MAX_LINE + 1];
++    char buffer_text2[ 10 * MAX_LINE + 1];
+     char *s;
+     int64_t     i_start;
+     int64_t     i_stop;
+@@ -981,7 +981,7 @@
+          * Dialogue: Layer#,0:02:40.65,0:02:41.79,Wolf main,Cher,0000,0000,0000,,Et les enregistrements de ses ondes delta ?
+          */
+         if( sscanf( s,
+-                    "Dialogue: %[^,],%d:%d:%d.%d,%d:%d:%d.%d,%[^\r\n]",
++                    "Dialogue: %[^,],%d:%d:%d.%d,%d:%d:%d.%d,%81920[^\r\n]",
+                     buffer_text2,
+                     &h1, &m1, &s1, &c1,
+                     &h2, &m2, &s2, &c2,
+@@ -1075,7 +1075,7 @@
+         i_start = 0;
+ 
+         memset( buffer_text, '\0', MAX_LINE );
+-        if( sscanf( p, "%d:%d:%d%[ :]%[^\r\n]", &h, &m, &s, &c, buffer_text ) == 5 )
++        if( sscanf( p, "%d:%d:%d%[ :]%81920[^\r\n]", &h, &m, &s, &c, buffer_text ) == 5 )
+         {
+             i_start = ( (int64_t)h * 3600*1000 +
+                         (int64_t)m * 60*1000 +

Added: unstable/vlc/debian/patches/sec-vlcopt_support.diff
URL: http://svn.debian.org/wsvn/pkg-multimedia/unstable/vlc/debian/patches/sec-vlcopt_support.diff?rev=1003&op=file
==============================================================================
--- unstable/vlc/debian/patches/sec-vlcopt_support.diff (added)
+++ unstable/vlc/debian/patches/sec-vlcopt_support.diff Fri Jan 11 15:54:28 2008
@@ -1,0 +1,73 @@
+diff -Nurad vlc-0.8.6.c.orig/modules/demux/playlist/m3u.c vlc-0.8.6.c/modules/demux/playlist/m3u.c
+--- vlc-0.8.6.c.orig/modules/demux/playlist/m3u.c	2008-01-11 14:30:15.000000000 +0100
++++ vlc-0.8.6.c/modules/demux/playlist/m3u.c	2008-01-11 14:49:35.000000000 +0100
+@@ -137,6 +137,8 @@
+     mtime_t    i_duration = -1;
+     char       **ppsz_options = NULL;
+     int        i_options = 0, i;
++    vlc_bool_t b_enable_extvlcopt = config_GetInt( p_demux, "m3u-extvlcopt" );
++
+ 
+     playlist_item_t *p_item, *p_current;
+ 
+@@ -188,20 +190,28 @@
+                     psz_name = strdup( psz_name );
+                 if ( psz_artist )
+                     psz_artist = strdup( psz_artist );
+-            }
+             else if( !strncasecmp( psz_parse, "EXTVLCOPT:",
+                                    sizeof("EXTVLCOPT:") -1 ) )
+             {
+-                /* VLC Option */
+-                char *psz_option;
+-                psz_parse += sizeof("EXTVLCOPT:") -1;
+-                if( !*psz_parse ) goto error;
++                if( b_enable_extvlcopt )
++                {
++                    /* VLC Option */
++                    char *psz_option;
++                    psz_parse += sizeof("EXTVLCOPT:") -1;
++                    if( !*psz_parse ) goto error;
+ 
+-                psz_option = MaybeFromLocaleDup( psz_parse );
+-                if( psz_option )
+-                    INSERT_ELEM( ppsz_options, i_options, i_options,
+-                                 psz_option );
++                    psz_option = MaybeFromLocaleDup( psz_parse );
++                    if( psz_option )
++                        INSERT_ELEM( ppsz_options, i_options, i_options,
++                                     psz_option );
++                }
++                else
++                {
++                    msg_Err( p_demux, "m3u EXTVLCOPT parsing is disabled for security reasons. If you need it and trust the m3u playlist you are trying to open, please append --m3u-extvlcopt to your command line." );
++                }
++            }
+             }
++
+         }
+         else if( *psz_parse )
+         {
+--- vlc-0.8.6.c.orig/modules/demux/playlist/playlist.c	2008-01-11 14:30:14.000000000 +0100
++++ vlc-0.8.6.c/modules/demux/playlist/playlist.c	2008-01-11 14:49:35.000000000 +0100
+@@ -42,6 +42,11 @@
+ #define SHOW_ADULT_LONGTEXT N_( "Show NC17 rated video streams when " \
+                 "using shoutcast video playlists." )
+ 
++#define EXTVLCOPT_TEXT N_( "Enable parsing of EXTVLCOPT: options" )
++#define EXTVLCOPT_LONGTEXT N_( "Enable parsing of EXTVLCOPT: options in m3u " \
++    "playlists. This option is default disabled to prevent untrusted sources " \
++    "using VLC options without the user's knowledge." )
++
+ vlc_module_begin();
+     add_shortcut( "playlist" );
+     set_category( CAT_INPUT );
+@@ -67,6 +72,8 @@
+         set_description( _("M3U playlist import") );
+         add_shortcut( "m3u-open" );
+         set_capability( "demux2", 10 );
++        add_bool( "m3u-extvlcopt", VLC_FALSE, NULL,
++                  EXTVLCOPT_TEXT, EXTVLCOPT_LONGTEXT, VLC_FALSE );
+         set_callbacks( E_(Import_M3U), E_(Close_M3U) );
+     add_submodule();
+         set_description( _("PLS playlist import") );

Modified: unstable/vlc/debian/patches/series
URL: http://svn.debian.org/wsvn/pkg-multimedia/unstable/vlc/debian/patches/series?rev=1003&op=diff
==============================================================================
--- unstable/vlc/debian/patches/series (original)
+++ unstable/vlc/debian/patches/series Fri Jan 11 15:54:28 2008
@@ -7,3 +7,7 @@
 104_notify.diff
 200_osdmenu_paths.diff
 300_manpage_syntax.diff
+sec-httpd_formatstring.diff
+sec-vlcopt_support.diff
+sec-rtsp_remote_dos.diff
+sec-subtitle_buffer_overflow.diff




More information about the pkg-multimedia-commits mailing list