fwupd can assert on xb_lzma_decompressor_convert on invalid firmware files
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
libxmlb (Ubuntu) |
Fix Released
|
Medium
|
Unassigned | ||
Jammy |
Triaged
|
Medium
|
Unassigned |
Bug Description
[ Impact ]
fwupd can crash on invalid metadata files
[ Test case ]
- Download the corrupted test metadata from this bug:
wget https:/
-O /tmp/fwupd-
- Replace your repo metadata
sudo tar xvf /tmp/fwupd-
- Start fwupd daemon
sudo /usr/libexec/
- The daemon should not crash once libxmlb is updated
[ Regression Potential ]
- Updates may be not available in fwupdmgr
---
After downloading firmware database files fwupd could crash because of this:
Starting program: /usr/libexec/
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_
15:47:33.085 FuDebug verbose to info (on console 1)
15:47:33.086 FuEngine starting fwupd 1.9.9…
[New Thread 0x7ffff33ff640 (LWP 159733)]
15:47:33.096 FuRemoteList loading remote from /etc/fwupd/
15:47:33.096 FuRemoteList loading remote from /etc/fwupd/
15:47:33.096 FuRemoteList loading remote from /etc/fwupd/
15:47:33.097 FuRemoteList loading remote from /etc/fwupd/
15:47:33.097 FuRemoteList loading remote from /etc/fwupd/
15:47:33.097 FuRemoteList loading remote from /etc/fwupd/
15:47:33.097 FuRemoteList enabled remotes: dell-esrt[1000], fwupd[1000], vendor-
15:47:33.097 FuEngine client certificate now exists: nothing to do
15:47:33.142 FuQuirks loading quirks from /usr/share/
15:47:33.142 FuQuirks loading quirks from /var/lib/
15:47:33.143 FuContext SMBIOS Manufacturer=LENOVO
15:47:33.143 FuContext SMBIOS EnclosureKind=a
15:47:33.143 FuContext SMBIOS Family=ThinkPad P14s Gen 4
15:47:33.143 FuContext SMBIOS ProductName=
15:47:33.143 FuContext SMBIOS ProductSku=
15:47:33.143 FuContext SMBIOS BiosVendor=LENOVO
15:47:33.143 FuContext SMBIOS BiosVersion=
15:47:33.143 FuContext SMBIOS BiosMajorRelease=01
15:47:33.143 FuContext SMBIOS BiosMinorRelease=10
15:47:33.143 FuContext SMBIOS FirmwareMajorRe
15:47:33.143 FuContext SMBIOS FirmwareMinorRe
15:47:33.143 FuContext SMBIOS BaseboardManufa
15:47:33.143 FuContext SMBIOS BaseboardProduc
15:47:33.143 FuContext failed to load fdt: cannot find /sys/firmware/fdt or override /var/lib/
15:47:33.146 FuContext added udev subsystem watch of firmware-attributes
15:47:33.218 FuBiosSettings loaded 91 BIOS settings
15:47:33.218 FuBiosSettings Disabling changing SecureBoot since Allow3rdPartyUEFICA is Disable
15:47:33.218 FuEngine loading metadata for remote 'vendor-directory'
15:47:33.218 FuEngine ignoring: /usr/share/
15:47:33.218 FuEngine ignoring: Errore nell'aprire la directory «/var/lib/
15:47:33.218 FuEngine ignoring: Errore nell'aprire la directory «/usr/share/
**
ERROR:.
Bail out! ERROR:.
Thread 1 "fwupd" received signal SIGABRT, Aborted.
__pthread_
44 ./nptl/
(gdb) bt
#0 __pthread_
#1 __pthread_
#2 __GI___pthread_kill (threadid=
#3 0x00007ffff7442476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/
#4 0x00007ffff74287f3 in __GI_abort () at ./stdlib/abort.c:79
#5 0x00007ffff7743b57 in g_assertion_message
(domain=
#6 0x00007ffff779d70f in g_assertion_
(domain=0x0, file=0x7ffff7eb412e "../src/
#7 0x00007ffff7e9d548 in () at /lib/x86_
#8 0x00007ffff78aeec5 in read_internal
(stream=
#9 0x00007ffff78dd1f7 in g_input_stream_read
(stream=
at ../../.
#10 0x00007ffff7ea324c in xb_builder_compile () at /lib/x86_
#11 0x00007ffff7ea4175 in xb_builder_ensure () at /lib/x86_
#12 0x00007ffff7c8a249 in fu_engine_
(self=
at ../src/
#13 0x00007ffff7c916e3 in fu_engine_load
(self=
at ../src/
#14 0x0000555555561c92 in fu_daemon_setup
(self=
at ../src/
#15 0x000055555555c078 in main (argc=<optimized out>, argv=<optimized out>) at ../src/
(gdb)
--
This has been fixed upstream via https:/
Changed in libxmlb (Ubuntu Jammy): | |
status: | New → Triaged |
Changed in libxmlb (Ubuntu): | |
status: | Triaged → Fix Released |
Changed in libxmlb (Ubuntu Jammy): | |
importance: | Undecided → Medium |
Debdiff attached