[GTALUG] Device Firmware updates getting easier (Logitech users, heads up!)

Scott Sullivan scott at ss.org
Thu May 25 09:18:15 EDT 2017


http://fwupd.org

Firmware Update Deamon. This wonderful utility/service creates a 
consistent means for hardware vendors to provided and apply firmware 
updates to devices. Dell is on board and now so is Logitech.

The tools and infrastructure a written by the developer that created and 
released the ColorHug. The ColorHug is an open source color measurement 
device for monitor color calibration. He initial was fixing his own need 
to provided easy firmware updates to the ColorHug.

fwupd came on my radar a few months ago, when there was news reporting 
about improved Thunderbolt 3 support for the Dell laptops, and fwupd was 
the delivery mechanism. But at the time I didn't have any Dell laptops, 
so it was just a curiosity.

Now what I do have is a lot of Logitech K400 keyboards, and no easy 
means of updating the vulnerable firmware. fwupd now changes that.

https://blogs.gnome.org/hughsie/2017/05/22/updating-logitech-hardware-on-linux/



My Experience
=============

[scott at failfast ~]$ sudo dnf install fwupd
# This got me version 0.7.5-1.fc25, which didn't quite work out of box. 
No matter, were upgrading anyways.

[scott at failfast ~]$ fwupdmgr get-devices
Error calling StartServiceByName for org.freedesktop.fwupd: 
GDBus.Error:org.freedesktop.DBus.Error.Spawn.ChildExited: Launch helper 
exited with unknown return code 127

[scott at failfast ~]$ sudo dnf update fwupd --enablerepo=updates-testing
Failed to synchronize cache for repo 'xvitaly-purple-skypeweb', disabling.
Last metadata expiration check: 0:00:19 ago on Thu May 25 08:45:40 2017.
Dependencies resolved.
====================================================================================================================
  Package                Arch                   Version 
       Repository                       Size
====================================================================================================================
Upgrading:
  fwupd                  x86_64                 0.9.2-2.fc25 
       updates-testing                 256 k
      replacing  libebitdo.x86_64 0.7.5-1.fc25
  libdfu                 x86_64                 0.9.2-2.fc25 
       updates-testing                  88 k

Transaction Summary
====================================================================================================================
Upgrade  2 Packages

Total download size: 344 k
Is this ok [y/N]: y
Downloading Packages:
(1/2): libdfu-0.9.2-2.fc25.x86_64.rpm 
            283 kB/s |  88 kB     00:00
(2/2): fwupd-0.9.2-2.fc25.x86_64.rpm 
            489 kB/s | 256 kB     00:00
--------------------------------------------------------------------------------------------------------------------
Total 
            438 kB/s | 344 kB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
   Upgrading   : libdfu-0.9.2-2.fc25.x86_64 
                                         1/5
   Upgrading   : fwupd-0.9.2-2.fc25.x86_64 
                                         2/5
   Cleanup     : fwupd-0.7.5-1.fc25.x86_64 
                                         3/5
   Cleanup     : libdfu-0.7.5-1.fc25.x86_64 
                                         4/5
   Obsoleting  : libebitdo-0.7.5-1.fc25.x86_64 
                                         5/5
   Verifying   : fwupd-0.9.2-2.fc25.x86_64 
                                         1/5
   Verifying   : libdfu-0.9.2-2.fc25.x86_64 
                                         2/5
   Verifying   : libdfu-0.7.5-1.fc25.x86_64 
                                         3/5
   Verifying   : fwupd-0.7.5-1.fc25.x86_64 
                                         4/5
   Verifying   : libebitdo-0.7.5-1.fc25.x86_64 
                                         5/5

Upgraded:
   fwupd.x86_64 0.9.2-2.fc25 
libdfu.x86_64 0.9.2-2.fc25

Complete!

# Let's follow the instructions on the blog post.

[scott at failfast ~]$ sudo vi /etc/fwupd.conf
[scott at failfast ~]$ sudo service restart fwupd
[scott at failfast ~]$ fwupdmgr refresh

[scott at failfast ~]$ fwupdmgr get-devices
[ Redacted other Devices ]

Unifying Receiver
   Guid:                 77d843f7-682c-57e8-8e29-584f5b4f52a1
   Guid:                 9d131a0c-a606-580f-8eda-80587250b8d6
   UniqueID: 
system/*/lvfs/firmware/com.logitech.Unifying.RQR12.firmware/*
   DeviceID:             /sys/devices/pci0000:00/0000:00:14.0/usb1/1-2
   Description:          <p>A Unifying receiver allows you to connect 
multiple compatible keyboards and mice to a laptop or desktop computer 
with a single USB receiver. Updating the firmware on your Unifying 
receiver improves performance, adds new features and fixes security 
issues.</p>
   Plugin:               unifying
   Flags:                allow-online|supported
   DeviceVendor:         Logitech
   Version:              RQR12.01_B0019
   VersionBootloader:    BOT01.02_B0014
   Created:              2017-05-25
   AppstreamId:          com.logitech.Unifying.RQR12.firmware
   Summary:              Firmware for the Logitech Unifying receiver
   UpdateDescription:    <p>RQR12.07_B0029:</p><p>This release addresses 
an unencrypted keystroke injection issue known as Bastille security 
issue #11. The vulnerability is complex to replicate and would require a 
hacker to be physically close to a 
target.</p><p>RQR12.05_B0028:</p><p>This release addresses an force 
pairing issue, an unencrypted keystroke injection issue and fake mouse 
issue known as Bastille security issues #1, #2 and #3. The 
vulnerabilities are complex to replicate and would require a hacker to 
be physically close to a target.</p>
   UpdateVersion:        RQR12.07_B0029
   UpdateHash:           d0d33e760ab6eeed6f11b9f9bd7e83820b29e970
   UpdateChecksumKind:   sha1
   License:              Proprietary
   UpdateUri: 
https://secure-lvfs.rhcloud.com/downloads/938fec082652c603a1cdafde7cd25d76baadc70d-Logitech-Unifying-RQR12.07_B0029.cab
   UrlHomepage:          http://support.logitech.com/en-us/software/unifying
   Vendor:               Logitech
   Trusted:              none

[scott at failfast ~]$ fwupdmgr update
Downloading RQR12.07_B0029 for Unifying Receiver...
Failed to save file: Failed to rename file 
'/tmp/938fec082652c603a1cdafde7cd25d76baadc70d-Logitech-Unifying-RQR12.07_B0029.cab.RKFS0Y' 
to 
'/tmp/938fec082652c603a1cdafde7cd25d76baadc70d-Logitech-Unifying-RQR12.07_B0029.cab': 
g_rename() failed: Operation not permitted
[scott at failfast ~]$ sudo fwupdmgr update
Downloading RQR12.07_B0029 for Unifying Receiver...
Updating RQR12.07_B0029 on Unifying Receiver...
Restarting deviceā€¦     [****************************************]
USB error on device 046d:aaaa : No such device (it may have been 
disconnected) [-4]

# at this point removing and reconnecting the USB dongle didn't show it 
as updated, but this turned to just require a restart of fwupd.

[scott at failfast ~]$ sudo systemctl restart fwupd
[scott at failfast ~]$ fwupdmgr get-devices
Unifying Receiver
   Guid:                 77d843f7-682c-57e8-8e29-584f5b4f52a1
   Guid:                 9d131a0c-a606-580f-8eda-80587250b8d6
   DeviceID: 
/sys/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.3/1-3.3.2
   Plugin:               unifying
   Flags:                allow-online|supported
   DeviceVendor:         Logitech
   Version:              RQR12.07_B0029
   VersionBootloader:    BOT01.02_B0014
   Created:              2017-05-25


-- 
Scott Sullivan


More information about the talk mailing list