[MIR] intel-microcode & iucode-tool (multiverse -> restricted)

Bug #1388889 reported by Dimitri John Ledkov
12
This bug affects 1 person
Affects Status Importance Assigned to Milestone
intel
Fix Released
Undecided
Unassigned
intel-microcode (Ubuntu)
Fix Released
Undecided
Unassigned
iucode-tool (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

MIR: Main Inclusion Report intel-microcode (multiverse -> restricted)

[Availability]

* Available from multiverse for i386 amd64 architectures

[Rationale]

* intel-microcode package installs and performs early loading of Intel CPU microcodes to update and rectify CPU bugs, in the field, post general availability.

* Also see request to install intel-microcode by default, when Intel CPUs are detected https://bugs.launchpad.net/ubuntu/+source/ubuntu-drivers-common/+bug/1386257

* This would help to mitigate bugs in the field, for example, like the recent Errata that prompted to disable TSX on certain line of CPUs.

[Security]

* intel-microcode are essentially firmware blobs that are loaded onto compatible CPUs. It's had/impossible to inspect the blobs themselves, thus this package is multiverse, and requested to move into restricted. From packaging point of view, it simply ships an initramfs-tools hook.

[QA]

* Package requires no further configuration after installation.
* Package does not deal with exotic hardware, on the contrary Intel CPUs have a large/majority market share of the i386/amd64 Ubuntu ports.
* Dependencies iucode-tool is required, which is also requested to move into restricted.

description: updated
summary: - MIR: Main Inclusion Report intel-microcode (multiverse -> restricted)
+ [MIR] intel-microcode & iucode-tool (multiverse -> restricted)
Revision history for this message
Dimitri John Ledkov (xnox) wrote :

In terms of bug subscribers, I'm hoping that ~canonical-kernel-team & ~intel-team can be jointly subscribed to both packages.

Revision history for this message
Michael Terry (mterry) wrote :

Jamie, I'll hand off to you because I'm not versed in whatever security implications exist here.

Changed in iucode-tool (Ubuntu):
assignee: nobody → Jamie Strandboge (jdstrand)
Changed in intel-microcode (Ubuntu):
assignee: nobody → Jamie Strandboge (jdstrand)
Changed in intel-microcode (Ubuntu):
assignee: Jamie Strandboge (jdstrand) → Seth Arnold (seth-arnold)
Changed in iucode-tool (Ubuntu):
assignee: Jamie Strandboge (jdstrand) → Seth Arnold (seth-arnold)
Revision history for this message
Seth Arnold (seth-arnold) wrote :

I reviewed iucode-tool version 1.1.1-1 as checked into vivid. This should
not be considered a full security audit but rather a quick gauge of
maintainability.

- iucode-tool manages and loads firmware for Intel CPUs
- Build-Depends: debhelper, autotools-dev, automake, autoconf
- No cryptography
- No networking
- Does not daemonize
- No pre/post inst/rm
- No initscripts
- No dbus services
- No setuid
- One binary, iucode_tool, and symlink iucode-tool
- No sudo fragments
- No udev rules
- No cronjobs
- No test suite, not really a surprise
- Clean build logs

- No subprocesses spawned
- Memory management is careful
- File names are given by the platform
- Logging looks safe
- No environment variables used
- No cryptography
- No networking
- No privileged portions of code
- No temporary files
- No WebKit
- No PolicyKit
- No JavaScript
- Clean cppcheck

iucode-tool is short and sweet: careful, methodical, some nice helper
routines, good comments.

Security team ACK for promoting to restricted or main as appropriate.

Revision history for this message
Seth Arnold (seth-arnold) wrote :

I reviewed intel-microcode version 2.20140913.1ubuntu2 as checked into
vivid. This should not be considered a full security audit but rather a
quick gauge of maintainability.

- intel-microcode provides scripts to load microcode during early boot and
  intel-supplied microcode
- Build-Depends: debhelper, iucode-tool
- No cryptography
- No networking
- Does not daemonize
- No pre/post inst/rm
- No init scripts
- No dbus services
- No setuid
- No binaries
- No sudo fragments
- No udev rules
- No test suite, unsurprisingly
- No cronjobs
- Clean build logs

- Subprocesses are spawned extensively, shell scripts; nearly all looked
  safe
- No memory management
- Files written to are controlled by platform, e.g.
  /sys/devices/system/cpu/cpu*/microcode/reload and
  /sys/devices/system/cpu/microcode/reload
- No environment variables
- No cryptography
- No networking
- No privileged portions of code
- The only temporary file handling is in a maintainer-only script
  debian/diff-latest-pack.sh -- it has predictable /tmp/ names; not a big
  deal if the packager using this tool is aware of the limitation.
- No WebKit
- No PolicyKit
- No JavaScript
- slight problem with static analysis, line 92 of debian/initramfs.hook is
  probably a bug.

Here's the two issues I found with this package; the first is unlikely to
be a real problem in actual service and the second hasn't actually caused
problems despite being in deployed use -- but it's probably a bug all the
same:

debian/diff-latest-pack.sh -- it has predictable /tmp/ names; not a big
deal if the packager using this tool is aware of the limitation.

Line 92 of debian/initramfs.hook is probably a bug:
if $(dpkg --compare-versions 3.9 le ${version}) ; then

Please fix at the earliest convenience.

Security team ACK for migrating to restricted or main as appropriate.

Changed in intel-microcode (Ubuntu):
assignee: Seth Arnold (seth-arnold) → nobody
Changed in iucode-tool (Ubuntu):
assignee: Seth Arnold (seth-arnold) → nobody
Revision history for this message
Henrique de Moraes Holschuh (hmh) wrote :

I am the Debian upstream for both packages (intel-microcode and iucode-tool), and upstream author for iucode-tool.

Thank you for the kind comments on iucode-tool :-)

As for intel-microcode, you guys are dealing with an outdated package version. The new one in Debian addresses the Haswell microcode update issue by switching to enforced early initramfs mode updates...

This simplified the packaging a lot, but it also means there were extensive changes to all scripts, so the intel-microcode security analysis likely needs to be redone when you resync with Debian.

Also, the intel-microcode package version you're considering can be a hazard when dealing with Intel microcode updates with visible effects at the ISA level, like the Haswell "disable TSX" microcode update. It can result in an unusable system, as your QA team found out, which forced you guys to revert to the previous Intel microcode update data.

The newer version of intel-microcode in Debian enforces the safe use of early microcode updates, which allows the use of Intel microcode update data 20140913 and newer. You should consider a resync as soon as pratical.

Tim Gardner (timg-tpi)
Changed in intel-microcode (Ubuntu):
assignee: nobody → Chris J Arges (arges)
Revision history for this message
Michael Terry (mterry) wrote :

iucode-tool looks fine from a packaging/maintenance perspective. I see that Henrique (the upstream & Debian maintainer) is watching Ubuntu bugs, which is awesome, thanks! But as a matter of policy, we like to see a team bug subscriber to Ubuntu bugs as well, for whomever agrees to look after the package in Ubuntu.

Dimitri, what team wanted this in restricted? Foundations?

As for intel-microcode, looks like it is going to be updated soon? I'll wait to review until after, then.

Changed in iucode-tool (Ubuntu):
status: New → Incomplete
Revision history for this message
Dimitri John Ledkov (xnox) wrote : Re: [Bug 1388889] Re: [MIR] intel-microcode & iucode-tool (multiverse -> restricted)

On 3 December 2014 at 11:30, Henrique de Moraes Holschuh
<email address hidden> wrote:
> I am the Debian upstream for both packages (intel-microcode and iucode-
> tool), and upstream author for iucode-tool.
>
> Thank you for the kind comments on iucode-tool :-)
>
> As for intel-microcode, you guys are dealing with an outdated package
> version. The new one in Debian addresses the Haswell microcode update
> issue by switching to enforced early initramfs mode updates...
>
> This simplified the packaging a lot, but it also means there were
> extensive changes to all scripts, so the intel-microcode security
> analysis likely needs to be redone when you resync with Debian.
>
> Also, the intel-microcode package version you're considering can be a
> hazard when dealing with Intel microcode updates with visible effects at
> the ISA level, like the Haswell "disable TSX" microcode update. It can
> result in an unusable system, as your QA team found out, which forced
> you guys to revert to the previous Intel microcode update data.
>
> The newer version of intel-microcode in Debian enforces the safe use of
> early microcode updates, which allows the use of Intel microcode update
> data 20140913 and newer. You should consider a resync as soon as
> pratical.
>

Right, this was pointed out to me. I'll make sure the updated package
is merged in properly before proceeding with this.

--
Regards,

Dimitri.

Revision history for this message
Dimitri John Ledkov (xnox) wrote :

On 3 December 2014 at 14:30, Michael Terry <email address hidden> wrote:
> iucode-tool looks fine from a packaging/maintenance perspective. I see
> that Henrique (the upstream & Debian maintainer) is watching Ubuntu
> bugs, which is awesome, thanks! But as a matter of policy, we like to
> see a team bug subscriber to Ubuntu bugs as well, for whomever agrees to
> look after the package in Ubuntu.
>
> Dimitri, what team wanted this in restricted? Foundations?
>

~intel-team & ~canonical-kernel hopefully.

I'll be adding integration in the installer. Patches pending review.

> As for intel-microcode, looks like it is going to be updated soon? I'll
> wait to review until after, then.
>
> ** Changed in: iucode-tool (Ubuntu)
> Status: New => Incomplete
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1388889
>
> Title:
> [MIR] intel-microcode & iucode-tool (multiverse -> restricted)
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/intel/+bug/1388889/+subscriptions

--
Regards,

Dimitri.

Revision history for this message
Dimitri John Ledkov (xnox) wrote :

latest intel-microcode synced from Debian into Vivid.
dpkg compare-versions bug is rectified in that version.
predictable tmp name is still there, but it's packager's script only as pointed out.

Revision history for this message
Henrique de Moraes Holschuh (hmh) wrote :

On Thu, 04 Dec 2014, Dimitri John Ledkov wrote:
> On 3 December 2014 at 11:30, Henrique de Moraes Holschuh
> <email address hidden> wrote:
> > I am the Debian upstream for both packages (intel-microcode and iucode-
> > tool), and upstream author for iucode-tool.
> >
> > Thank you for the kind comments on iucode-tool :-)
> >
> > As for intel-microcode, you guys are dealing with an outdated package
> > version. The new one in Debian addresses the Haswell microcode update
> > issue by switching to enforced early initramfs mode updates...
> >
> > This simplified the packaging a lot, but it also means there were
> > extensive changes to all scripts, so the intel-microcode security
> > analysis likely needs to be redone when you resync with Debian.
> >
> > Also, the intel-microcode package version you're considering can be a
> > hazard when dealing with Intel microcode updates with visible effects at
> > the ISA level, like the Haswell "disable TSX" microcode update. It can
> > result in an unusable system, as your QA team found out, which forced
> > you guys to revert to the previous Intel microcode update data.
> >
> > The newer version of intel-microcode in Debian enforces the safe use of
> > early microcode updates, which allows the use of Intel microcode update
> > data 20140913 and newer. You should consider a resync as soon as
> > pratical.
>
> Right, this was pointed out to me. I'll make sure the updated package
> is merged in properly before proceeding with this.

I just ask that you guys notify me of any issues you find, so that I can fix
them post-haste in Debian as well.

--
  "One disk to rule them all, One disk to find them. One disk to bring
  them all and in the darkness grind them. In the Land of Redmond
  where the shadows lie." -- The Silicon Valley Tarot
  Henrique Holschuh

Changed in iucode-tool (Ubuntu):
status: Incomplete → New
Changed in intel-microcode (Ubuntu):
assignee: Chris J Arges (arges) → nobody
Michael Terry (mterry)
Changed in iucode-tool (Ubuntu):
status: New → Fix Committed
Revision history for this message
Michael Terry (mterry) wrote :

intel-microcode is fine from my side, but Henrique mentioned that the packaging and scripts changed enough in the latest version that Seth might want to look it over again. So assigning to Seth for a final OK.

Changed in intel-microcode (Ubuntu):
assignee: nobody → Seth Arnold (seth-arnold)
Revision history for this message
Seth Arnold (seth-arnold) wrote :

Thanks for the quick turn-around, the new version of intel-microcode looks good -- it fixed the little issue I spotted earlier and feels simpler.

Security team ACK for promoting intel-microcode to main or restricted as appropriate.

Thanks

Changed in intel-microcode (Ubuntu):
assignee: Seth Arnold (seth-arnold) → nobody
Michael Terry (mterry)
Changed in intel-microcode (Ubuntu):
status: New → Fix Committed
Revision history for this message
Dimitri John Ledkov (xnox) wrote :

Seeded into ubuntu.vivid server-ship, ship-live, usb-ship-live to have intel-microcode in the package pool on all images.
ubuntu-drivers update will be next.

Revision history for this message
Matthias Klose (doko) wrote :

Override component to main
intel-microcode 3.20140913.1 in vivid: multiverse/admin -> main
intel-microcode 3.20140913.1 in vivid amd64: multiverse/admin/extra/100% -> main
intel-microcode 3.20140913.1 in vivid i386: multiverse/admin/extra/100% -> main
3 publications overridden.

Changed in intel-microcode (Ubuntu):
status: Fix Committed → Fix Released
Revision history for this message
Matthias Klose (doko) wrote :

Override component to main
iucode-tool 1.1.1-1 in vivid: multiverse/utils -> main
iucode-tool 1.1.1-1 in vivid amd64: multiverse/utils/optional/100% -> main
iucode-tool 1.1.1-1 in vivid i386: multiverse/utils/optional/100% -> main
3 publications overridden.

Changed in iucode-tool (Ubuntu):
status: Fix Committed → Fix Released
Revision history for this message
Matthias Klose (doko) wrote :

Override component to restricted
intel-microcode 3.20140913.1 in vivid: main/admin -> restricted
intel-microcode 3.20140913.1 in vivid amd64: main/admin/extra/100% -> restricted
intel-microcode 3.20140913.1 in vivid i386: main/admin/extra/100% -> restricted
3 publications overridden.

Revision history for this message
Matthias Klose (doko) wrote :

Override component to restricted
iucode-tool 1.1.1-1 in vivid: main/utils -> restricted
iucode-tool 1.1.1-1 in vivid amd64: main/utils/optional/100% -> restricted
iucode-tool 1.1.1-1 in vivid i386: main/utils/optional/100% -> restricted
3 publications overridden.

Revision history for this message
Colin Watson (cjwatson) wrote :

I'm unsubscribing the ubuntu-archive team from this bug since the intel task is still open and shows up on our to-do list. Feel free to resubscribe us if there's still some action for us to take here.

Revision history for this message
Dimitri John Ledkov (xnox) wrote :

sorry for any inconvenience cause. this is operating as expected.

Changed in intel:
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.