I want to upgrade my system to mitigate Spectre and Meltdown exploits.
The relevant Ubuntu page states that I need to update microcodes: "From a guest and non-hypervisor bare-metal perspective, as of the Feb 21 kernel updates, as far as we are aware, the mitigations for Spectre and Meltdown on 64-bit amd64, ppc64el and s390x are feature-complete as long as all microcode, firmware and hypervisor updates underneath the system are done. ..."
I have intel-microcode
and iucode-tool
installed and updated, however running dmesg | grep -i microcode
and grep -i microcode /var/log/syslog*
return nothing which makes me think that either the cpu microcode doesn't get updated or something else is wrong.
Packages are up to date and there have been restarts since the last update.
operating system: Lubuntu 16.04
CPU: Intel N3700 (Braswell)
enabled software repos: main, universe
enabled updates: xenial-security
Edit:
The output of grep name /proc/cpuinfo | sort -u
is
model name : Intel(R) Pentium(R) CPU N3700 @ 1.60GHz
My processor is not Skylake, nor Kaby lake.
In /proc/cpuinfo
hyper-threading shows up as supported, but this Intel page says it is not supported:
https://ark.intel.com/products/87261/Intel-Pentium-Processor-N3700-2M-Cache-up-to-2_40-GHz
Edit 2:
I ran sudo update-initramfs -u
and rebooted. The outputs are still the same.
Output of /usr/sbin/iucode_tool -tb -lS /lib/firmware/intel-ucode/*
:
/usr/sbin/iucode_tool: system has processor(s) with signature 0x000406c3
selected microcodes:
It seems that there is no updated microcode for my cpu, which is interesting since there was a selectable microcode in the Additional Drivers
tab previously (late 2017); now, there isn't.
Edit 3:
Output of apt list --installed | grep intel-microcode
:
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
intel-microcode/xenial-security,now 3.20180108.0+really20170707ubuntu16.04.1 amd64 [installed]
Edit 4:
Now I understand that there is no update for the cpu microcode, which means that the original problem is solved, and I will leave it as it is.
However, dmesg
and journalctl -b
should still output lines about microcode version, I believe.
I also noticed that these boot logs start at "5" instead of the tipical 1 or 0, and that there is a repeating error message which makes them truncated (dmesg
says nothing about truncation, but journalctl
says there are 371635 missed kernel messages, see below). I will ignore this for now.
March 19 06:36:40 NN systemd-journald[266]: Runtime journal (/run/log/journal/) is 8.0M, max 78.9M, 70.9M free.
March 19 06:36:40 NN systemd-journald[266]: Missed 371635 kernel messages
March 19 06:36:40 NN kernel: handle_bad_irq+0x0/0x230
March 19 06:36:40 NN kernel: ->irq_data.chip(): ffffffffbb172c40,
March 19 06:36:40 NN kernel: chv_gpio_irqchip+0x0/0x120
March 19 06:36:40 NN kernel: ->action(): (null)
March 19 06:36:40 NN kernel: IRQ_NOPROBE set
March 19 06:36:40 NN kernel: irq 115, desc: ffff9b91f5df8200, depth: 1, count: 0, unhandled: 0
March 19 06:36:40 NN kernel: ->handle_irq(): ffffffffb9ee8f70,
March 19 06:36:40 NN kernel: handle_bad_irq+0x0/0x230
March 19 06:36:40 NN kernel: ->irq_data.chip(): ffffffffbb172c40,
March 19 06:36:40 NN kernel: chv_gpio_irqchip+0x0/0x120
March 19 06:36:40 NN kernel: ->action(): (null)
March 19 06:36:40 NN kernel: IRQ_NOPROBE set
March 19 06:36:40 NN kernel: irq 115, desc: ffff9b91f5df8200, depth: 1, count: 0, unhandled: 0
March 19 06:36:40 NN kernel: ->handle_irq(): ffffffffb9ee8f70,
March 19 06:36:40 NN kernel: handle_bad_irq+0x0/0x230
March 19 06:36:40 NN kernel: ->irq_data.chip(): ffffffffbb172c40,
March 19 06:36:40 NN kernel: chv_gpio_irqchip+0x0/0x120
March 19 06:36:40 NN kernel: ->action(): (null)
March 19 06:36:40 NN kernel: IRQ_NOPROBE set
March 19 06:36:40 NN kernel: irq 115, desc: ffff9b91f5df8200, depth: 1, count: 0, unhandled: 0
March 19 06:36:40 NN kernel: ->handle_irq(): ffffffffb9ee8f70,
March 19 06:36:40 NN kernel: handle_bad_irq+0x0/0x230
March 19 06:36:40 NN kernel: ->irq_data.chip(): ffffffffbb172c40,
March 19 06:36:40 NN kernel: chv_gpio_irqchip+0x0/0x120
Based on results of
/usr/sbin/iucode_tool -tb -lS /lib/firmware/intel-ucode/*
no microcode is being loaded for your cpu because at the moment there is none. That doesn't mean that there won't be in the future. You can safely leave intel-microcode and iucode-tool installed, if there is an update containing microcode for your cpu's signature it will then be used.Ubuntu had released fixed kernal update against this exploit. The new kernal have required changes.
Reference: SecurityTeam/KnowledgeBase/SpectreAndMeltdown | Ubuntu Wiki
I am in Ubuntu 16.04, Using Nouveau display driver. In my case, Intel-microcode got uninstalled after installing new kernel.
This update is released right after intel had released bug fix for spectre bugs security vulnerability.
This should solve your problem.
If you got intel property driver replaced like in my place and still want intel-microcode property driver.
Intel Releases Linux CPU Microcodes To fix Meltdown & Spectre Bugs | bleepingcomputer.com
Currently, the new drivers are not included in Ubuntu ppa. Users may have to download it manually from Intel website.
Warning: This may cause driver conflict or instability in your Ubuntu. You have to install it on your own risk.
Download Linux Processor Microcode Data File | downloadcenter.intel.com
For me, I have no issue in my ubuntu laptop. So I don't want to take risk. I left Ubuntu team to decide what is best from my system. I am waiting update from Ubuntu driver team.
Bug in Meltdown/Spectre Intel Microcode
There was a bug in early 2018 Intel Microcode update to address Meltdown/Spectre security holes. As such the microcode had to be rolled back to a previous version.
Here is the microcode I'm using (having opted out of all updates starting January 2018):
When you install Intel Microcode Update you will get this version or something similar:
Ubuntu 16.04 LTS Menu
I'm not sure about Lubuntu menu structure but for regular Ubuntu this is how you access the Intel Microcode Update controls:
The bottom option controls Intel Microcode Updates.
Install Intel Microcode from CLI
To skip the GUI menus altogether you can install from command line:
dmesg
now shows correct outputAfter following the installation steps
dmesg
returns the desired output (unlike in your question where it shows nothing):