[Pkg-xen-changes] r602 - in branches/etch/xen-3.0/debian: . patches

Bastian Blank waldi at alioth.debian.org
Tue Jul 15 18:18:46 UTC 2008


Author: waldi
Date: Tue Jul 15 18:18:45 2008
New Revision: 602

Log:
Fix CVE-2007-0998.

* debian/changelog: Update.
* debian/patches/00list: Add CVE-2007-0998.dpatch.
* debian/patches/CVE-2007-0998.dpatch: Add.


Added:
   branches/etch/xen-3.0/debian/patches/CVE-2007-0998.dpatch   (contents, props changed)
Modified:
   branches/etch/xen-3.0/debian/changelog
   branches/etch/xen-3.0/debian/patches/00list

Modified: branches/etch/xen-3.0/debian/changelog
==============================================================================
--- branches/etch/xen-3.0/debian/changelog	(original)
+++ branches/etch/xen-3.0/debian/changelog	Tue Jul 15 18:18:45 2008
@@ -1,5 +1,7 @@
 xen-3.0 (3.0.3-0-5) UNRELEASED; urgency=low
 
+  * Disable access to the qemu monitor.
+    See: CVE-2007-0998
   * Clear debug registers for HVM guests.
     See: CVE-2007-5906
   * Fix range checks in ioemu block support.

Modified: branches/etch/xen-3.0/debian/patches/00list
==============================================================================
--- branches/etch/xen-3.0/debian/patches/00list	(original)
+++ branches/etch/xen-3.0/debian/patches/00list	Tue Jul 15 18:18:45 2008
@@ -13,3 +13,4 @@
 CVE-2007-5906
 CVE-2008-0928
 CVE-2008-2004
+CVE-2007-0998

Added: branches/etch/xen-3.0/debian/patches/CVE-2007-0998.dpatch
==============================================================================
--- (empty file)
+++ branches/etch/xen-3.0/debian/patches/CVE-2007-0998.dpatch	Tue Jul 15 18:18:45 2008
@@ -0,0 +1,105 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+
+ at DPATCH@
+diff -r 9333e98676f8 -r e63d316ff894 tools/ioemu/vnc.c
+--- a/tools/ioemu/vnc.c	Sat Jul 12 13:32:21 2008 +0200
++++ b/tools/ioemu/vnc.c	Tue Jul 15 20:17:06 2008 +0200
+@@ -111,8 +111,6 @@ struct VncState
+     int visible_y;
+     int visible_w;
+     int visible_h;
+-
+-    int ctl_keys;               /* Ctrl+Alt starts calibration */
+ };
+ 
+ #define DIRTY_PIXEL_BITS 64
+@@ -849,80 +847,17 @@ static void pointer_event(VncState *vs, 
+ 
+ static void do_key_event(VncState *vs, int down, uint32_t sym)
+ {
++    int keycode;
++
+     sym &= 0xFFFF;
+ 
+-    if (is_graphic_console()) {
+-	int keycode;
+-
+-	keycode = keysym2scancode(vs->kbd_layout, sym);
+-	if (keycode & 0x80)
+-	    kbd_put_keycode(0xe0);
+-	if (down)
+-	    kbd_put_keycode(keycode & 0x7f);
+-	else
+-	    kbd_put_keycode(keycode | 0x80);
+-    } else if (down) {
+-	int qemu_keysym = 0;
+-
+-	if (sym <= 128) /* normal ascii */
+-	    qemu_keysym = sym;
+-	else {
+-	    switch (sym) {
+-	    case XK_Up: qemu_keysym = QEMU_KEY_UP; break;
+-	    case XK_Down: qemu_keysym = QEMU_KEY_DOWN; break;
+-	    case XK_Left: qemu_keysym = QEMU_KEY_LEFT; break;
+-	    case XK_Right: qemu_keysym = QEMU_KEY_RIGHT; break;
+-	    case XK_Home: qemu_keysym = QEMU_KEY_HOME; break;
+-	    case XK_End: qemu_keysym = QEMU_KEY_END; break;
+-	    case XK_Page_Up: qemu_keysym = QEMU_KEY_PAGEUP; break;
+-	    case XK_Page_Down: qemu_keysym = QEMU_KEY_PAGEDOWN; break;
+-	    case XK_BackSpace: qemu_keysym = QEMU_KEY_BACKSPACE; break;
+-	    case XK_Delete: qemu_keysym = QEMU_KEY_DELETE; break;
+-	    case XK_Return:
+-	    case XK_Linefeed: qemu_keysym = sym; break;
+-	    default: break;
+-	    }
+-	}
+-	if (qemu_keysym != 0)
+-	    kbd_put_keysym(qemu_keysym);
+-    }
+-
+-    if (down) {
+-	switch (sym) {
+-	case XK_Control_L:
+-	    vs->ctl_keys |= 1;
+-	    break;
+-
+-	case XK_Alt_L:
+-	    vs->ctl_keys |= 2;
+-	    break;
+-
+-	default:
+-	    break;
+-	}
+-    } else {
+-	switch (sym) {
+-	case XK_Control_L:
+-	    vs->ctl_keys &= ~1;
+-	    break;
+-
+-	case XK_Alt_L:
+-	    vs->ctl_keys &= ~2;
+-	    break;
+-
+-	case XK_1 ... XK_9:
+-	    if ((vs->ctl_keys & 3) != 3)
+-		break;
+-
+-	    console_select(sym - XK_1);
+-	    if (is_graphic_console()) {
+-		/* tell the vga console to redisplay itself */
+-		vga_hw_invalidate();
+-		vnc_dpy_update(vs->ds, 0, 0, vs->ds->width, vs->ds->height);
+-	    }
+-	    break;
+-	}
+-    }
++    keycode = keysym2scancode(vs->kbd_layout, sym);
++    if (keycode & 0x80)
++	kbd_put_keycode(0xe0);
++    if (down)
++	kbd_put_keycode(keycode & 0x7f);
++    else
++	kbd_put_keycode(keycode | 0x80);
+ }
+ 
+ static void key_event(VncState *vs, int down, uint32_t sym)



More information about the Pkg-xen-changes mailing list