Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <4E317978.6010709@redhat.com>
Date: Thu, 28 Jul 2011 17:00:08 +0200
From: Jan Lieskovsky <jlieskov@...hat.com>
To: "Steven M. Christey" <coley@...us.mitre.org>,
        Tim Waugh <twaugh@...hat.com>
CC: oss-security@...ts.openwall.com
Subject: CVE Request -- foomatic (foomatic-filters): foomatic-rip (debug mode)
 insecure temporary file use in renderer command line by processing PostScript
 data

Hello Josh, Steve, vendors,

   by further investigation of hplip CVE-2011-2722 issue:
   [2] https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2011-2722

Tim Waugh noticed the similar issue being present also in foomatic-rip
universal print filter, when debug mode is enabled. Further details:

It was found that foomatic-rip filter used insecurely created temporary
file for storage of PostScript data by rendering the data, intended to 
be sent to the PostScript filter, when the debug mode was enabled. A 
local attacker could use this flaw to conduct symlink attacks (overwrite 
arbitrary file accessible with the privileges of the user running the 
foomatic-rip universal print filter).

Relevant source code part (Perl script part / foomatic-rip.in):
===============================================================
    100 my $logfile = "/tmp/foomatic-rip";
   ..
   3454  # In debug mode save the data supposed to be fed
           into the
   3455  # renderer also into a file
   3456  if ($debug) {
   3457    $commandline = "tee -a ${logfile}.ps | ( $commandline )";
   3458  }

Note: The $logfile variable declaration (line #100) is not an insecure
       temporary file use issue itself, since this danger (and its proper
       usage) is documented in /etc/foomatic/filters.conf file.

Relevant source code part (C script part / renderer.c):
========================================================
    436  /* Save the data supposed to be fed into the renderer
           also int        o a file*/
    437  dstrprepend(commandline, "tee -a " LOG_FILE ".ps | ( ");
    438  dstrcat(commandline, ")");
    439  }

Note: The LOG_FILE variable declaration by itself is not an insecure
       temporary file use, since this danger (and its proper usage)
       is documented in /etc/foomatic/filters.conf file.

References:
[1] https://bugzilla.redhat.com/show_bug.cgi?id=726426

Credit: Issue discovered by Tim Waugh

Could you allocate a CVE id for this?

Thank you && Regards, Jan.
--
Jan iankko Lieskovsky / Red Hat Security Response Team

Powered by blists - more mailing lists

Please check out the Open Source Software Security Wiki, which is counterpart to this mailing list.

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.