ACK Re: [GIT PULL][SRU][B] CVE-2020-8832: i915 incomplete fix for CVE-2019-14615

Timo Aaltonen tjaalton at ubuntu.com
Thu Feb 13 21:20:31 UTC 2020


On 13.2.2020 3.04, Tyler Hicks wrote:
> BugLink: https://bugs.launchpad.net/bugs/1862840
> CVE-2020-8832
> 
> [Impact]
> 
> Gregory Herrero reported that the proof-of-concept for CVE-2019-14615
> indicates that the information leak is not fixed in the Bionic 4.15
> kernel as indicated by USN-4255-1:
> 
>  https://usn.ubuntu.com/4255-1/
> 
> This only affects Ubuntu's 4.15 kernel series. Xenial (4.4), Disco
> (5.0), Eoan (5.3), and Focal (5.4) are not affected by this incomplete
> fix issue.
> 
> I've verified this by testing each Ubuntu release with the
> proof-of-concept. I then tested vanilla 4.15 with commit bc8a76a152c5
> ("drm/i915/gen9: Clear residual context state on context switch")
> applied, which is the fix for CVE-2019-14615, and verified that the
> proof-of-concept showed that the info leak was still possible. I then
> tested vanilla 4.16 with commit bc8a76a152c5 applied to verify that the
> proof-of-concept showed that the info leak was fixed.
> 
> After bisecting changes to the DRM subsystem as well as the i915 driver,
> it looks like commit d2b4b97933f5 ("drm/i915: Record the default hw
> state after reset upon load") as well as its prerequisites are necessary
> to fully fix CVE-2019-14615 in 4.15 based kernels.
> 
> [Test Case]
> 
> A proof-of-concept for CVE-2019-14615 became available once the issue
> was made public. It can be found here:
> 
>  https://github.com/HE-Wenjian/iGPU-Leak
> 
> Steps to use the proof-of-concept:
> 
>  $ git clone https://github.com/HE-Wenjian/iGPU-Leak.git
> 
>  # In one terminal
>  $ cd iGPU-Leak/demo/SLM_Leak/
>  $ ./run_victim.sh
> 
>  # In another terminal
>  $ cd iGPU-Leak/demo/SLM_Leak/
>  $ ./run_attacker.sh
> 
>  # In the terminal running run_attacker.sh, ensure that all data dumped
>  # to the terminal is zeros and that there is no non-zero data. You'll
>  # have to closely monitor the script for a minute or so to ensure that
>  # the information leak is not possible.
> 
> [Regression Potential]
> 
> High as the changes are complex in comparison to the typical SRU.
> However, the bulk of the change is to the initialization stages of the
> driver and we're just pulling back changes that landed in 4.16-rc1 to
> our 4.15 kernel. I don't see any later Fixes tags that reference the
> needed commits.
> 
> [Pull Request]
> 
> The following changes since commit a8c1e6affa4262808b062e3422686a85efa541b5:
> 
>   UBUNTU: Ubuntu-4.15.0-76.86 (2020-01-17 10:59:22 -0300)
> 
> are available in the Git repository at:
> 
>   https://git.launchpad.net/~tyhicks/ubuntu/+source/linux/+git/bionic cves/CVE-2020-8832
> 
> for you to fetch changes up to 25df7fc598b4b0fe0713915686596cf8bc8087bf:
> 
>   drm/i915: Record the default hw state after reset upon load (2020-02-11 23:17:42 +0000)
> 
> ----------------------------------------------------------------
> Chris Wilson (7):
>       drm/i915: Use same test for eviction and submitting kernel context
>       drm/i915: Force the switch to the i915->kernel_context
>       drm/i915: Move GT powersaving init to i915_gem_init()
>       drm/i915: Move intel_init_clock_gating() to i915_gem_init()
>       drm/i915: Inline intel_modeset_gem_init()
>       drm/i915: Mark the context state as dirty/written
>       drm/i915: Record the default hw state after reset upon load
> 
> Tvrtko Ursulin (1):
>       drm/i915: Define an engine class enum for the uABI
> 
>  drivers/gpu/drm/i915/gvt/scheduler.c    |   2 -
>  drivers/gpu/drm/i915/i915_debugfs.c     |   1 -
>  drivers/gpu/drm/i915/i915_drv.c         |   5 +-
>  drivers/gpu/drm/i915/i915_drv.h         |   1 -
>  drivers/gpu/drm/i915/i915_gem.c         | 144 ++++++++++++++++++++++++++++++--
>  drivers/gpu/drm/i915/i915_gem_context.c |  62 ++++----------
>  drivers/gpu/drm/i915/i915_gem_context.h |   4 +-
>  drivers/gpu/drm/i915/i915_gem_evict.c   |   3 +-
>  drivers/gpu/drm/i915/intel_display.c    |  11 ---
>  drivers/gpu/drm/i915/intel_engine_cs.c  |  55 +++++++++++-
>  drivers/gpu/drm/i915/intel_lrc.c        |  70 +++++++++++-----
>  drivers/gpu/drm/i915/intel_pm.c         |   2 -
>  drivers/gpu/drm/i915/intel_ringbuffer.c |  51 +++++++----
>  drivers/gpu/drm/i915/intel_ringbuffer.h |   9 +-
>  include/uapi/drm/i915_drm.h             |  31 +++++++
>  15 files changed, 339 insertions(+), 112 deletions(-)
> 

I don't have anything to add, looking good!

Acked-by: Timo Aaltonen <timo.aaltonen at canonical.com>

-- 
t



More information about the kernel-team mailing list