Add patches, derived from Xen security advisory, fixing:
CVE-2015-7835 aka XSA-148 CVE-2015-7869 aka XSA-149 + XSA-151 CVE-2015-7971 aka XSA-152 Bump PKGREVISION
This commit is contained in:
parent
f67ff360ae
commit
278592122d
5 changed files with 121 additions and 3 deletions
|
@ -1,9 +1,9 @@
|
|||
# $NetBSD: Makefile,v 1.45 2015/04/19 13:13:20 spz Exp $
|
||||
# $NetBSD: Makefile,v 1.46 2015/10/29 20:29:56 bouyer Exp $
|
||||
|
||||
VERSION= 4.1.6.1
|
||||
DISTNAME= xen-${VERSION}
|
||||
PKGNAME= xenkernel41-${VERSION}
|
||||
PKGREVISION= 16
|
||||
PKGREVISION= 17
|
||||
CATEGORIES= sysutils
|
||||
MASTER_SITES= http://bits.xensource.com/oss-xen/release/${VERSION}/
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
$NetBSD: distinfo,v 1.37 2015/09/14 13:36:29 joerg Exp $
|
||||
$NetBSD: distinfo,v 1.38 2015/10/29 20:29:56 bouyer Exp $
|
||||
|
||||
SHA1 (xen-4.1.6.1.tar.gz) = e5f15feb0821578817a65ede16110c6eac01abd0
|
||||
RMD160 (xen-4.1.6.1.tar.gz) = bff11421fc44a26f2cc3156713267abcb36d7a19
|
||||
|
@ -30,6 +30,9 @@ SHA1 (patch-CVE-2015-2045) = e1874bbde0cce7db4ee9260440f5280d404027d7
|
|||
SHA1 (patch-CVE-2015-2151) = aed92f50d162febc3074f7edecaf6ca418d0b42c
|
||||
SHA1 (patch-CVE-2015-2752) = 37f44989a3b3c69dea8e9de9fc34ffd5c2e8b087
|
||||
SHA1 (patch-CVE-2015-2756) = b3b133d42229ecc8c308644b17e5317cd77f9a98
|
||||
SHA1 (patch-CVE-2015-7835) = d66fe84abfb921bf435c1ed9b077012937d0c71e
|
||||
SHA1 (patch-CVE-2015-7969) = 4eb96025afae4be547f74b9e71a7d8a3a37fc60b
|
||||
SHA1 (patch-CVE-2015-7971) = 0d0d36ad99f313afb96111a832eb65ddeaf8010e
|
||||
SHA1 (patch-Config.mk) = a43ed1b3304d6383dc093acd128a7f373d0ca266
|
||||
SHA1 (patch-xen_Makefile) = d1c7e4860221f93d90818f45a77748882486f92b
|
||||
SHA1 (patch-xen_arch_x86_Rules.mk) = 6b9b4bfa28924f7d3f6c793a389f1a7ac9d228e2
|
||||
|
|
45
sysutils/xenkernel41/patches/patch-CVE-2015-7835
Normal file
45
sysutils/xenkernel41/patches/patch-CVE-2015-7835
Normal file
|
@ -0,0 +1,45 @@
|
|||
$NetBSD: patch-CVE-2015-7835,v 1.1 2015/10/29 20:29:56 bouyer Exp $
|
||||
|
||||
Patch for CVE-2015-7835 aka XSA-148 based on
|
||||
http://xenbits.xenproject.org/xsa/xsa148-4.4.patch
|
||||
|
||||
--- xen/include/asm-x86/x86_32/page.h.orig 2015-10-29 20:35:24.000000000 +0100
|
||||
+++ xen/include/asm-x86/x86_32/page.h 2015-10-29 20:38:02.000000000 +0100
|
||||
@@ -130,7 +130,9 @@
|
||||
#define BASE_DISALLOW_MASK (0xFFFFF198U & ~_PAGE_NX)
|
||||
|
||||
#define L1_DISALLOW_MASK (BASE_DISALLOW_MASK | _PAGE_GNTTAB)
|
||||
-#define L2_DISALLOW_MASK (BASE_DISALLOW_MASK & ~_PAGE_PSE)
|
||||
+#define L2_DISALLOW_MASK (unlikely(opt_allow_superpage) \
|
||||
+ ? BASE_DISALLOW_MASK & ~_PAGE_PSE \
|
||||
+ : BASE_DISALLOW_MASK )
|
||||
#define L3_DISALLOW_MASK 0xFFFFF1FEU /* must-be-zero */
|
||||
|
||||
#endif /* __X86_32_PAGE_H__ */
|
||||
--- xen/include/asm-x86/x86_64/page.h.orig 2015-10-29 20:35:36.000000000 +0100
|
||||
+++ xen/include/asm-x86/x86_64/page.h 2015-10-29 20:37:33.000000000 +0100
|
||||
@@ -167,7 +167,9 @@
|
||||
#define BASE_DISALLOW_MASK (0xFF800198U & ~_PAGE_NX)
|
||||
|
||||
#define L1_DISALLOW_MASK (BASE_DISALLOW_MASK | _PAGE_GNTTAB)
|
||||
-#define L2_DISALLOW_MASK (BASE_DISALLOW_MASK & ~_PAGE_PSE)
|
||||
+#define L2_DISALLOW_MASK (unlikely(opt_allow_superpage) \
|
||||
+ ? BASE_DISALLOW_MASK & ~_PAGE_PSE \
|
||||
+ : BASE_DISALLOW_MASK )
|
||||
#define L3_DISALLOW_MASK (BASE_DISALLOW_MASK)
|
||||
#define L4_DISALLOW_MASK (BASE_DISALLOW_MASK)
|
||||
|
||||
--- xen/arch/x86/mm.c.orig 2015-10-29 20:30:55.000000000 +0100
|
||||
+++ xen/arch/x86/mm.c 2015-10-29 20:32:56.000000000 +0100
|
||||
@@ -1898,7 +1898,10 @@
|
||||
}
|
||||
|
||||
/* Fast path for identical mapping and presence. */
|
||||
- if ( !l2e_has_changed(ol2e, nl2e, _PAGE_PRESENT) )
|
||||
+ if ( !l2e_has_changed(ol2e, nl2e,
|
||||
+ unlikely(opt_allow_superpage)
|
||||
+ ? _PAGE_PSE | _PAGE_RW | _PAGE_PRESENT
|
||||
+ : _PAGE_PRESENT) )
|
||||
{
|
||||
adjust_guest_l2e(nl2e, d);
|
||||
rc = UPDATE_ENTRY(l2, pl2e, ol2e, nl2e, pfn, vcpu, preserve_ad);
|
35
sysutils/xenkernel41/patches/patch-CVE-2015-7969
Normal file
35
sysutils/xenkernel41/patches/patch-CVE-2015-7969
Normal file
|
@ -0,0 +1,35 @@
|
|||
$NetBSD: patch-CVE-2015-7969,v 1.1 2015/10/29 20:29:56 bouyer Exp $
|
||||
|
||||
Patch for CVE-2015-7869 aka XSA-149 + XSA-151 based on
|
||||
http://xenbits.xenproject.org/xsa/xsa149.patch
|
||||
http://xenbits.xenproject.org/xsa/xsa151.patch
|
||||
|
||||
--- xen/common/domain.c.orig 2013-09-10 08:42:18.000000000 +0200
|
||||
+++ xen/common/domain.c 2015-10-29 20:44:06.000000000 +0100
|
||||
@@ -671,6 +671,7 @@
|
||||
xfree(d->pirq_to_evtchn);
|
||||
|
||||
xsm_free_security_domain(d);
|
||||
+ xfree(d->vcpu);
|
||||
free_domain_struct(d);
|
||||
|
||||
send_guest_global_virq(dom0, VIRQ_DOM_EXC);
|
||||
|
||||
--- xen/common/xenoprof.c.orig
|
||||
+++ xen/common/xenoprof.c
|
||||
@@ -239,6 +239,7 @@ static int alloc_xenoprof_struct(
|
||||
d->xenoprof->rawbuf = alloc_xenheap_pages(get_order_from_pages(npages), 0);
|
||||
if ( d->xenoprof->rawbuf == NULL )
|
||||
{
|
||||
+ xfree(d->xenoprof->vcpu);
|
||||
xfree(d->xenoprof);
|
||||
d->xenoprof = NULL;
|
||||
return -ENOMEM;
|
||||
@@ -286,6 +287,7 @@ void free_xenoprof_pages(struct domain *
|
||||
free_xenheap_pages(x->rawbuf, order);
|
||||
}
|
||||
|
||||
+ xfree(x->vcpu);
|
||||
xfree(x);
|
||||
d->xenoprof = NULL;
|
||||
}
|
35
sysutils/xenkernel41/patches/patch-CVE-2015-7971
Normal file
35
sysutils/xenkernel41/patches/patch-CVE-2015-7971
Normal file
|
@ -0,0 +1,35 @@
|
|||
$NetBSD: patch-CVE-2015-7971,v 1.1 2015/10/29 20:29:56 bouyer Exp $
|
||||
|
||||
Patch for CVE-2015-7971 aka XSA-152, based on
|
||||
http://xenbits.xenproject.org/xsa/xsa152.patch
|
||||
|
||||
--- xen/common/xenoprof.c.orig
|
||||
+++ xen/common/xenoprof.c
|
||||
@@ -676,15 +676,13 @@ ret_t do_xenoprof_op(int op, XEN_GUEST_H
|
||||
|
||||
if ( (op < 0) || (op > XENOPROF_last_op) )
|
||||
{
|
||||
- printk("xenoprof: invalid operation %d for domain %d\n",
|
||||
- op, current->domain->domain_id);
|
||||
+ gdprintk(XENLOG_DEBUG, "invalid operation %d\n", op);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if ( !NONPRIV_OP(op) && (current->domain != xenoprof_primary_profiler) )
|
||||
{
|
||||
- printk("xenoprof: dom %d denied privileged operation %d\n",
|
||||
- current->domain->domain_id, op);
|
||||
+ gdprintk(XENLOG_DEBUG, "denied privileged operation %d\n", op);
|
||||
return -EPERM;
|
||||
}
|
||||
|
||||
@@ -907,8 +905,7 @@ ret_t do_xenoprof_op(int op, XEN_GUEST_H
|
||||
spin_unlock(&xenoprof_lock);
|
||||
|
||||
if ( ret < 0 )
|
||||
- printk("xenoprof: operation %d failed for dom %d (status : %d)\n",
|
||||
- op, current->domain->domain_id, ret);
|
||||
+ gdprintk(XENLOG_DEBUG, "operation %d failed: %d\n", op, ret);
|
||||
|
||||
return ret;
|
||||
}
|
Loading…
Reference in a new issue