* Re: Xen Security Advisory 20 (CVE-2012-4535) - Timer overflow DoS vulnerability - Further bugfixes
[not found] <E1TYG2A-0000z4-Uh@xenbits.xen.org>
@ 2012-11-13 13:12 ` Andrew Cooper
2012-11-16 16:16 ` [PATCH] " Ian Jackson
0 siblings, 1 reply; 2+ messages in thread
From: Andrew Cooper @ 2012-11-13 13:12 UTC (permalink / raw)
To: xen-devel; +Cc: Keir Fraser, Jan Beulich
[-- Attachment #1: Type: text/plain, Size: 239 bytes --]
Now this vulnerability has been publicly disclosed, here are 3 further
related bugfixes which are not security problems themselves.
--
Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer
T: +44 (0)1223 225 900, http://www.citrix.com
[-- Attachment #2: validate-timers.patch --]
[-- Type: text/x-patch, Size: 1432 bytes --]
# HG changeset patch
# Parent e0361d2401bbfc454794ad477c4848e6134c5c31
common/timers: Prevent guests timeouts which would overflow timer calculations
None of these have security implications, but will cause the timers to
expire instantly, rather than a long time into the future.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
diff -r e0361d2401bb xen/common/domain.c
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -896,6 +896,9 @@ long do_vcpu_op(int cmd, int vcpuid, XEN
if ( copy_from_guest(&set, arg, 1) )
return -EFAULT;
+ if ( set.timeout_abs_ns > STIME_MAX )
+ return -EINVAL;
+
if ( (set.flags & VCPU_SSHOTTMR_future) &&
(set.timeout_abs_ns < NOW()) )
return -ETIME;
diff -r e0361d2401bb xen/common/schedule.c
--- a/xen/common/schedule.c
+++ b/xen/common/schedule.c
@@ -739,6 +739,9 @@ static long do_poll(struct sched_poll *s
if ( sched_poll->nr_ports > 128 )
return -EINVAL;
+ if ( sched_poll->timeout > STIME_MAX )
+ return -EINVAL;
+
if ( !guest_handle_okay(sched_poll->ports, sched_poll->nr_ports) )
return -EFAULT;
@@ -829,6 +832,9 @@ static long domain_watchdog(struct domai
if ( id > NR_DOMAIN_WATCHDOG_TIMERS )
return -EINVAL;
+ if ( SECONDS(timeout) > STIME_DELTA_MAX )
+ return -EINVAL;
+
spin_lock(&d->watchdog_lock);
if ( id == 0 )
[-- Attachment #3: Type: text/plain, Size: 126 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 2+ messages in thread
* [PATCH] Re: Xen Security Advisory 20 (CVE-2012-4535) - Timer overflow DoS vulnerability - Further bugfixes
2012-11-13 13:12 ` Xen Security Advisory 20 (CVE-2012-4535) - Timer overflow DoS vulnerability - Further bugfixes Andrew Cooper
@ 2012-11-16 16:16 ` Ian Jackson
0 siblings, 0 replies; 2+ messages in thread
From: Ian Jackson @ 2012-11-16 16:16 UTC (permalink / raw)
To: Andrew Cooper; +Cc: Keir Fraser, Jan Beulich, xen-devel
Andrew Cooper writes ("Re: [Xen-devel] Xen Security Advisory 20 (CVE-2012-4535) - Timer overflow DoS vulnerability - Further bugfixes"):
> Now this vulnerability has been publicly disclosed, here are 3 further
> related bugfixes which are not security problems themselves.
This seems to have been dropped. I have added [PATCH] to the Subject.
Ian.
> common/timers: Prevent guests timeouts which would overflow timer calculations
>
> None of these have security implications, but will cause the timers to
> expire instantly, rather than a long time into the future.
>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>
> diff -r e0361d2401bb xen/common/domain.c
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -896,6 +896,9 @@ long do_vcpu_op(int cmd, int vcpuid, XEN
> if ( copy_from_guest(&set, arg, 1) )
> return -EFAULT;
>
> + if ( set.timeout_abs_ns > STIME_MAX )
> + return -EINVAL;
> +
> if ( (set.flags & VCPU_SSHOTTMR_future) &&
> (set.timeout_abs_ns < NOW()) )
> return -ETIME;
> diff -r e0361d2401bb xen/common/schedule.c
> --- a/xen/common/schedule.c
> +++ b/xen/common/schedule.c
> @@ -739,6 +739,9 @@ static long do_poll(struct sched_poll *s
> if ( sched_poll->nr_ports > 128 )
> return -EINVAL;
>
> + if ( sched_poll->timeout > STIME_MAX )
> + return -EINVAL;
> +
> if ( !guest_handle_okay(sched_poll->ports, sched_poll->nr_ports) )
> return -EFAULT;
>
> @@ -829,6 +832,9 @@ static long domain_watchdog(struct domai
> if ( id > NR_DOMAIN_WATCHDOG_TIMERS )
> return -EINVAL;
>
> + if ( SECONDS(timeout) > STIME_DELTA_MAX )
> + return -EINVAL;
> +
> spin_lock(&d->watchdog_lock);
>
> if ( id == 0 )
>
> ----------------------------------------------------------------------
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2012-11-16 16:16 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <E1TYG2A-0000z4-Uh@xenbits.xen.org>
2012-11-13 13:12 ` Xen Security Advisory 20 (CVE-2012-4535) - Timer overflow DoS vulnerability - Further bugfixes Andrew Cooper
2012-11-16 16:16 ` [PATCH] " Ian Jackson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).