]> xenbits.xensource.com Git - xen.git/commitdiff
xen: arm: Correctly handle do_sysreg exception injection from 64-bit userspace
authorIan Campbell <ian.campbell@citrix.com>
Tue, 12 Aug 2014 13:50:13 +0000 (15:50 +0200)
committerJan Beulich <jbeulich@suse.com>
Tue, 12 Aug 2014 13:50:13 +0000 (15:50 +0200)
The do_sysreg case was missing a return, so it would increment PC and
inject the trap to the second instruction of the handler.

This is CVE-2014-5148 / XSA-103.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Acked-by: Julien Grall <julien.grall@linaro.org>
master commit: f2ae8bfa498831ee6343d672066b898d3cd73892
master date: 2014-08-12 15:38:01 +0200

xen/arch/arm/traps.c

index e763f12a5517c1b1c58fc069cf14a881006bc225..4c910c810f274b2099e8e86060ddc1802f0c0e9f 100644 (file)
@@ -1683,6 +1683,7 @@ static void do_sysreg(struct cpu_user_regs *regs,
                      hsr.bits & HSR_SYSREG_REGS_MASK);
 #endif
             inject_undef_exception(regs, sysreg.len);
+            return;
         }
     }