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.
This issue affects the versions of the foomatic package, as shipped with Red Hat Enterprise Linux 4, 5, and 6. -- This issue affects the versions of the foomatic package, as shipped with Fedora release of 14 and 15. Please schedule an update.
CVE Request: [1] http://www.openwall.com/lists/oss-security/2011/07/28/9
Created foomatic tracking bugs for this issue Affects: fedora-all [bug 726432]
Two CVEs have been assigned to this issue: CVE-2011-2923 for the perl variant. CVE-2011-2924 for the C variant. Reference: http://thread.gmane.org/gmane.comp.security.oss.general/5615/focus=5725
There's this in foomaticrip.c as well: if (debug) logh = fopen(LOG_FILE ".log", "w"); /* insecure, use for debugging only */
Reported upstream: http://bugs.linux-foundation.org/show_bug.cgi?id=936
Statement: Red Hat Product Security has rated this issue as having Low security impact. This issue is not currently planned to be addressed in future updates. For additional information, refer to the Issue Severity Classification: https://access.redhat.com/security/updates/classification/.