group.of.nepali.translators team mailing list archive
-
group.of.nepali.translators team
-
Mailing list archive
-
Message #33081
[Bug 1842437] Re: Xenial: libblkid: fix false-positive/misdetection of nilfs2 filesystem with udev
This bug was fixed in the package util-linux - 2.27.1-6ubuntu3.9
---------------
util-linux (2.27.1-6ubuntu3.9) xenial; urgency=medium
* d/p/libblkid-nilfs2-add-length-check-before-crc32.patch:
Fix misdetection/false-positive of nilfs2 filesystem on
device with magic bytes coincidentally on end of device
and bad checksum ignored by udev blkid. (LP: #1842437)
-- Mauricio Faria de Oliveira <mfo@xxxxxxxxxxxxx> Tue, 03 Sep 2019
11:32:50 -0300
** Changed in: util-linux (Ubuntu Xenial)
Status: Fix Committed => Fix Released
--
You received this bug notification because you are a member of नेपाली
भाषा समायोजकहरुको समूह, which is subscribed to Xenial.
Matching subscriptions: Ubuntu 16.04 Bugs
https://bugs.launchpad.net/bugs/1842437
Title:
Xenial: libblkid: fix false-positive/misdetection of nilfs2 filesystem
with udev
Status in util-linux package in Ubuntu:
Fix Released
Status in util-linux source package in Xenial:
Fix Released
Bug description:
[Impact]
* Users / systemd can fail to mount a filesystem by UUID
(e.g., during boot, triggering emergency shell prompt)
if the magic bytes for the nilfs filesystem are written
to the right place in a partition of another filesystem,
(for whatever reason or coincidence).
* Note this can happen after the filesystem/mount is working
correctly, so a change of behavior/problem can potentially
be noticed when trying to mount the filesystem again, which
can very well be the next time the system boots.
* This happens because if udev blkid detects more than one
filesystem, it does not print the UUID env vars required
to create the /dev/disk/by-id symlinks and other things.
* The fix enhances the check for valid nilfs superblock by
specifically checking a value read from disk to be valid/
within a value range, which addresses this one occurrence
and prevents a lot more.
[Test Case]
* Synthetic test case written for this problem on comment #6.
[Regression Potential]
* Low. The code is contained in the probe for the nilfs filesystem.
* This just makes it be more restrictive about the possibly valid
values for a few bytes read from disk (that now need to be within
the acceptable range of valid values) so this only decreases false-
positives, and cannot increase false-negatives of valid filesystems.
[Original Description]
The nilfs filesystem has a backup superblock at the end of the device.
If the magic number is coincidentally found at the right position
and the filesystem is on a partition/not-wholedisk device,
the only check left is for checksum verification,
which is explicitly ignored in 'udev built-in blkid'.
This causes blkid to detect one actually valid filesystem with a
superblock at the beginning of the device (e.g., ext4), and then
an invalid nilfs2 filesystem due to a coincidental magic number
at the end of the device.
And this causes blkid to break out of the safeprobe routine
(which expects a single filesystem to be detected), and not
print the UUIDs, thus not creating /dev/disk/by-uuid/ links
which prevent mounting the partition by-uuid at boot time,
causing emergency shell/boot failures.
This upstream fix resolved the problem by introducing a check
for the 'bytes' paramenters in the superblock, which is read
from disk, and turns out to have an out-of-range value.
- 'liblkid: Add length check in probe_nilfs2 before crc32'
https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/commit/?id=ac681a310c32319423297544833932f4d689a7a2
$ git describe --contains ac681a310c32319423297544833932f4d689a7a2
v2.29-rc1~172
Xenial, which is v2.27.1-based, is the only release that needs it.
Bionic is v2.31.1, so all post-Xenial supported releases have it.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/util-linux/+bug/1842437/+subscriptions
References