Package: caca-utils
Version: 0.99.beta19-2.2
Tags: patch, security

Dear Maintainer,
the caca-utils package has mailcap entries with quoted %-escapes. That is 
considered unsafe. Proper escaping should be left to the programs using the 
entry.

This Lintian tag is triggered:
https://lintian.debian.org/tags/quoted-placeholder-in-mailcap-entry.html

See also grave bug #930908, which was recently closed because "a Lintian test 
already exists":
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=930908

I'm using the "security" tag because the affected rules in combination with 
certain mail user agents (or document openers) are the cause of a shell command 
injection vulnerability.

If you need more information let me know.

Thanks,
MNZ
diff -ru a/debian/caca-utils.mime b/debian/caca-utils.mime
--- a/debian/caca-utils.mime	2021-03-10 14:59:27.000000000 +0100
+++ b/debian/caca-utils.mime	2021-04-23 18:46:35.794788587 +0200
@@ -1,45 +1,45 @@
-image/gif; /usr/bin/cacaview '%s'; description=GIF Image; nametemplate=%s.gif; test=test -n "$DISPLAY"; priority=1
-image/gif; unset DISPLAY\; /usr/bin/cacaview '%s'; description=GIF Image; nametemplate=%s.gif; needsterminal; priority=1
+image/gif; /usr/bin/cacaview %s; description=GIF Image; nametemplate=%s.gif; test=test -n "$DISPLAY"; priority=1
+image/gif; unset DISPLAY\; /usr/bin/cacaview %s; description=GIF Image; nametemplate=%s.gif; needsterminal; priority=1

-image/jpeg; /usr/bin/cacaview '%s'; description=JPEG Image; nametemplate=%s.jpg; test=test -n "$DISPLAY"; priority=1
-image/jpeg; unset DISPLAY\; /usr/bin/cacaview '%s'; description=JPEG Image; nametemplate=%s.jpg; needsterminal; priority=1
+image/jpeg; /usr/bin/cacaview %s; description=JPEG Image; nametemplate=%s.jpg; test=test -n "$DISPLAY"; priority=1
+image/jpeg; unset DISPLAY\; /usr/bin/cacaview %s; description=JPEG Image; nametemplate=%s.jpg; needsterminal; priority=1

-image/png; /usr/bin/cacaview '%s'; description=PNG Image; nametemplate=%s.png; test=test -n "$DISPLAY"; priority=1
-image/png; unset DISPLAY\; /usr/bin/cacaview '%s'; description=PNG Image; nametemplate=%s.png; needsterminal; priority=1
+image/png; /usr/bin/cacaview %s; description=PNG Image; nametemplate=%s.png; test=test -n "$DISPLAY"; priority=1
+image/png; unset DISPLAY\; /usr/bin/cacaview %s; description=PNG Image; nametemplate=%s.png; needsterminal; priority=1

-image/tiff; /usr/bin/cacaview '%s'; description=TIFF Image; nametemplate=%s.tiff; test=test -n "$DISPLAY"; priority=1
-image/tiff; unset DISPLAY\; /usr/bin/cacaview '%s'; description=TIFF Image; nametemplate=%s.tiff; needsterminal; priority=1
+image/tiff; /usr/bin/cacaview %s; description=TIFF Image; nametemplate=%s.tiff; test=test -n "$DISPLAY"; priority=1
+image/tiff; unset DISPLAY\; /usr/bin/cacaview %s; description=TIFF Image; nametemplate=%s.tiff; needsterminal; priority=1

-image/bmp; /usr/bin/cacaview '%s'; description=BMP Image; nametemplate=%s.bmp; test=test -n "$DISPLAY"; priority=1
-image/bmp; unset DISPLAY\; /usr/bin/cacaview '%s'; description=BMP Image; nametemplate=%s.bmp; needsterminal; priority=1
+image/bmp; /usr/bin/cacaview %s; description=BMP Image; nametemplate=%s.bmp; test=test -n "$DISPLAY"; priority=1
+image/bmp; unset DISPLAY\; /usr/bin/cacaview %s; description=BMP Image; nametemplate=%s.bmp; needsterminal; priority=1

-image/x-ms-bmp; /usr/bin/cacaview '%s'; description=BMP Image; nametemplate=%s.bmp; test=test -n "$DISPLAY"; priority=1
-image/x-ms-bmp; unset DISPLAY\; /usr/bin/cacaview '%s'; description=BMP Image; nametemplate=%s.bmp; needsterminal; priority=1
+image/x-ms-bmp; /usr/bin/cacaview %s; description=BMP Image; nametemplate=%s.bmp; test=test -n "$DISPLAY"; priority=1
+image/x-ms-bmp; unset DISPLAY\; /usr/bin/cacaview %s; description=BMP Image; nametemplate=%s.bmp; needsterminal; priority=1

-image/x-cmu-raster; /usr/bin/cacaview '%s'; description=CMU-RasterFile Image; nametemplate=%s.ras; test=test -n "$DISPLAY"; priority=1
-image/x-cmu-raster; unset DISPLAY\; /usr/bin/cacaview '%s'; description=CMU-RasterFile Image; nametemplate=%s.ras; needsterminal; priority=1
+image/x-cmu-raster; /usr/bin/cacaview %s; description=CMU-RasterFile Image; nametemplate=%s.ras; test=test -n "$DISPLAY"; priority=1
+image/x-cmu-raster; unset DISPLAY\; /usr/bin/cacaview %s; description=CMU-RasterFile Image; nametemplate=%s.ras; needsterminal; priority=1

-image/g3fax; /usr/bin/cacaview '%s'; description=G3-FAX Image; nametemplate=%s.g3; test=test -n "$DISPLAY"; priority=1
-image/g3fax; unset DISPLAY\; /usr/bin/cacaview '%s'; description=G3-FAX Image; nametemplate=%s.g3; needsterminal; priority=1
+image/g3fax; /usr/bin/cacaview %s; description=G3-FAX Image; nametemplate=%s.g3; test=test -n "$DISPLAY"; priority=1
+image/g3fax; unset DISPLAY\; /usr/bin/cacaview %s; description=G3-FAX Image; nametemplate=%s.g3; needsterminal; priority=1

-image/targa; /usr/bin/cacaview '%s'; description=TARGA Image; nametemplate=%s.tga; test=test -n "$DISPLAY"; priority=1
-image/targa; unset DISPLAY\; /usr/bin/cacaview '%s'; description=TARGA Image; nametemplate=%s.tga; needsterminal; priority=1
+image/targa; /usr/bin/cacaview %s; description=TARGA Image; nametemplate=%s.tga; test=test -n "$DISPLAY"; priority=1
+image/targa; unset DISPLAY\; /usr/bin/cacaview %s; description=TARGA Image; nametemplate=%s.tga; needsterminal; priority=1

-image/x-portable-bitmap; /usr/bin/cacaview '%s'; description=PBM Image; nametemplate=%s.pbm; test=test -n "$DISPLAY"; priority=1
-image/x-portable-bitmap; unset DISPLAY\; /usr/bin/cacaview '%s'; description=PBM Image; nametemplate=%s.pbm; needsterminal; priority=1
+image/x-portable-bitmap; /usr/bin/cacaview %s; description=PBM Image; nametemplate=%s.pbm; test=test -n "$DISPLAY"; priority=1
+image/x-portable-bitmap; unset DISPLAY\; /usr/bin/cacaview %s; description=PBM Image; nametemplate=%s.pbm; needsterminal; priority=1

-image/x-portable-graymap; /usr/bin/cacaview '%s'; description=PGM Image; nametemplate=%s.pgm; test=test -n "$DISPLAY"; priority=1
-image/x-portable-graymap; unset DISPLAY\; /usr/bin/cacaview '%s'; description=PGM Image; nametemplate=%s.pgm; needsterminal; priority=1
+image/x-portable-graymap; /usr/bin/cacaview %s; description=PGM Image; nametemplate=%s.pgm; test=test -n "$DISPLAY"; priority=1
+image/x-portable-graymap; unset DISPLAY\; /usr/bin/cacaview %s; description=PGM Image; nametemplate=%s.pgm; needsterminal; priority=1

-image/x-portable-anymap; /usr/bin/cacaview '%s'; description=PNM Image; nametemplate=%s.pnm; test=test -n "$DISPLAY"; priority=1
-image/x-portable-anymap; unset DISPLAY\; /usr/bin/cacaview '%s'; description=PNM Image; nametemplate=%s.pnm; needsterminal; priority=1
+image/x-portable-anymap; /usr/bin/cacaview %s; description=PNM Image; nametemplate=%s.pnm; test=test -n "$DISPLAY"; priority=1
+image/x-portable-anymap; unset DISPLAY\; /usr/bin/cacaview %s; description=PNM Image; nametemplate=%s.pnm; needsterminal; priority=1

-image/x-portable-pixmap; /usr/bin/cacaview '%s'; description=PPM Image; nametemplate=%s.ppm; test=test -n "$DISPLAY"; priority=1
-image/x-portable-pixmap; unset DISPLAY\; /usr/bin/cacaview '%s'; description=PPM Image; nametemplate=%s.ppm; needsterminal; priority=1
+image/x-portable-pixmap; /usr/bin/cacaview %s; description=PPM Image; nametemplate=%s.ppm; test=test -n "$DISPLAY"; priority=1
+image/x-portable-pixmap; unset DISPLAY\; /usr/bin/cacaview %s; description=PPM Image; nametemplate=%s.ppm; needsterminal; priority=1

-image/x-rgb; /usr/bin/cacaview '%s'; description=RGB Image; nametemplate=%s.rgb; test=test -n "$DISPLAY"; priority=1
-image/x-rgb; unset DISPLAY\; /usr/bin/cacaview '%s'; description=RGB Image; nametemplate=%s.rgb; needsterminal; priority=1
+image/x-rgb; /usr/bin/cacaview %s; description=RGB Image; nametemplate=%s.rgb; test=test -n "$DISPLAY"; priority=1
+image/x-rgb; unset DISPLAY\; /usr/bin/cacaview %s; description=RGB Image; nametemplate=%s.rgb; needsterminal; priority=1

-image/x-xpixmap; /usr/bin/cacaview '%s'; description=XPM Image; nametemplate=%s.xpm; test=test -n "$DISPLAY"; priority=1
-image/x-xpixmap; unset DISPLAY\; /usr/bin/cacaview '%s'; description=XPM Image; nametemplate=%s.xpm; needsterminal; priority=1
+image/x-xpixmap; /usr/bin/cacaview %s; description=XPM Image; nametemplate=%s.xpm; test=test -n "$DISPLAY"; priority=1
+image/x-xpixmap; unset DISPLAY\; /usr/bin/cacaview %s; description=XPM Image; nametemplate=%s.xpm; needsterminal; priority=1

Reply via email to