[Openicc] Introduction / Gutenprint]

Michael Sweet mike at easysw.com
Wed Apr 13 10:31:27 EST 2005


Robert L Krawitz wrote:
>    Date: Tue, 12 Apr 2005 15:49:19 -0400
>    From: Michael Sweet <mike at easysw.com>
> 
>    Craig Bradney wrote:
>    > ...
>    > And the case where theres only one user on a computer using ICC and
>    > the others not, and that person doesnt have rights to put files in a
>    > system dir? Surely a profile can be loaded from anywhere. Are there
>    > passwords in profiles in any case?
> 
>    No, but it is far easier to force files to be relative to a
>    controlled directory than to filter out the paths and permissions
>    allowed for a specific, possibly non-local user.  Both the System V
>    lp and Berkeley lpr print spoolers have a long history of security
>    problems caused by direct access/references to files.
> 
> This is why I think profiles should be bundled up with the file being
> printed and sent to the spooler, rather than having the spooler know
> about a restricted set of profiles and only allowing the user to pick
> from that list.  Then the user (via the non-privileged lpr command)
> would send the spooler both the file to be printed and the profile via
> IPP.  Passing the ICC profile by reference is what causes a problem;
> if it's passed by value, none of this would occur.

Problem is, I haven't yet heard of a compelling use case which
requires a per-job, user-specified destination profile.  Source
profiles, sure, but then you might use a dozen source profiles
depending on the document you are printing.

My experience has been that professional printers that care about
color management create new destination profiles on a regular basis
(e.g. each day, week, or set of ink/media) and reuse those profiles
for every job in the run.  In this case, embedding/attaching the
destination profile with the document file is unnecessary and
wasteful of disk/bandwidth.  Similarly, professionals regularly
create source profiles for their incoming imagery, but in that
case the source data will not change over time.  Ink, media, and
environment do change over time, though... :)

>    The issue isn't "are there passwords in profiles", it is "can I
>    provide a filename to CUPS which will cause it to emit an error
>    message that discloses some information that is in the file", or
>    "can I provide a filename that will cause a buffer overflow in the
>    ICC parser and execute arbitrary code"....
> 
> This is no different from "can I provide a Postscript file that will
> trigger a buffer overflow in Ghostscript and execute arbitrary code".

It is different in that PostScript exploits typically are "out in the
open", and Ghostscript has a lot more mileage than the various ICC
parsers...

> The ICC parser needs to be audited, just like Ghostscript does, since
> it runs in a system context.

Well, not really a system context, but there are definitely issues
to address and auditing to do...

-- 
______________________________________________________________________
Michael Sweet, Easy Software Products           mike at easysw dot com
Internet Printing and Publishing Software        http://www.easysw.com



More information about the openicc mailing list