Package: e2fsprogs Version: 1.41.9-1 Severity: normal Hello,
appearently blkid cannot deal very well with somewhat special
characters in filesystem labels. I am not sure how dangerous (read:
security) this really is but at least it's annoying. Programs that
parse the blkid output might return strange results if fooled by e.g.
an USB stick plugged by an attacker.
For the sake of this example I'll use an ext3 fs on /dev/loop0.
# tune2fs -L 'La"bel' /dev/loop0
# blkid | grep /dev/loop0
/dev/loop0: LABEL="La"bel" UUID="321345c2-d851-4f4f-ab68-ba60307a8532"
SEC_TYPE="ext2" TYPE="ext3"
This is not bad per se but cheap parsers might consider the label
being "La" only. This probably applies to blkid itself, now changing
the label:
# tune2fs -L 'La bel' /dev/loop0
# blkid | grep /dev/loop0
/dev/loop0: LABEL="La bel" bel" UUID="321345c2-d851-4f4f-ab68-ba60307a8532"
SEC_TYPE="ext2" TYPE="ext3" UUID="321345c2-d851-4f4f-ab68-ba60307a8532"
^^^^^
adds some garbage to the output, and duplicates the UUID. This is
found in /etc/blkid.tab, too, while the label itself is as specified.
Another funny thing one could do (after clearing /etc/blkid.tab) is
# tune2fs -L '" TYPE="vfat' /dev/loop0
# blkid | grep /dev/loop0
/dev/loop0: LABEL="" TYPE="vfat" UUID="321345c2-d851-4f4f-ab68-ba60307a8532"
SEC_TYPE="ext2" TYPE="ext3"
If there are filesystems that allow long volume labels (24 to 44
characters) it is also possible to inject fake UUIDs.
Please provide protection against such pitfalls. My
suggestions:
* Escape potentially dangerous characters in the blkid output (might
break existing applications), or
* in each line of blkid's output, print the label as the last record[1]
so '"<EOL>' marks the end of the label (not very comfortable
for blkid.tab), or
* provide another, machine readable output format.
Regards,
Christoph
[1] On a side note, a defined order of all records would be helpful,
too (This might apply to lenny only but I cannot reproduce this
right now).
-- System Information:
Debian Release: squeeze/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: i386 (i686)
Kernel: Linux 2.6.27.30 (SMP w/4 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages e2fsprogs depends on:
ii e2fslibs 1.41.9-1 ext2/ext3/ext4 file system librari
ii libblkid1 2.16-3 block device id library
ii libc6 2.9-25 GNU C Library: Shared libraries
ii libcomerr2 1.41.9-1 common error description library
ii libss2 1.41.9-1 command-line interface parsing lib
ii libuuid1 2.16-3 Universally Unique ID library
e2fsprogs recommends no packages.
Versions of packages e2fsprogs suggests:
pn e2fsck-static <none> (no description available)
pn gpart <none> (no description available)
pn parted <none> (no description available)
-- no debconf information
signature.asc
Description: Digital signature

