If you want to keep it running all the time, you could limit it's cpu useage with a program like
It picks a target based on a PID, an executable filename, or the absolute path of the executable. You'd probably want to use the absolute path:
cpulimit --path=/usr/bin/fwupdate --limit 10 &
Or here's an example using
pgrep to find a PID:
cpulimit -p $(pgrep fwupdate) --limit 10 &
It should be able to kill instead of just "limit" too, with
--kill, I'm not sure if it still needs a
--limit set to know when to kill...
Or you could occasionally / regularly run
pkill fwupdate to kill it whenever it's running.
The program does sound like it's getting stuck in some sort of "check for updates" loop, so likely a bug. I doubt you'd want to check for firmware updates very often, so if I weren't using the program I'd probably just remove / purge it too (if it's not vital to lots of other packages), it's only about 200k, then re-install it temporarily to check for updates. There are ways to stop it from running at boot too, I think it might be a systemd service (or at least the .deb has a fwupdate-cleanup.service file in /lib/systemd/system).