diff --git a/Documentation/Developers/CHANGELOG-RENE b/Documentation/Developers/CHANGELOG-RENE
index ea8e2c132..f6b516299 100644
--- a/Documentation/Developers/CHANGELOG-RENE
+++ b/Documentation/Developers/CHANGELOG-RENE
@@ -1,4 +1,8 @@
 
+*) 2003-11-13 (2.0.0-rc2 - 2.0.0-rc3)
+
+ - Sebastian Jaenicke: added zebra security patches
+
 *) 2003-11-12 (2.0.0-rc2 - 2.0.0-rc3)
 
  - Juergen Sawinski: fixed rene/nxcomp to only install the major library
diff --git a/package/tsa/zebra/50zebra-0.91a-netlink.patch b/package/tsa/zebra/50zebra-0.91a-netlink.patch
new file mode 100644
index 000000000..10a340aa7
--- /dev/null
+++ b/package/tsa/zebra/50zebra-0.91a-netlink.patch
@@ -0,0 +1,71 @@
+--- zebra-0.91a/zebra/rt_netlink.c.netlink	Tue Jan 23 03:10:04 2001
++++ zebra-0.91a/zebra/rt_netlink.c	Wed Oct 29 22:46:44 2003
+@@ -46,9 +46,8 @@
+   int seq;
+   struct sockaddr_nl snl;
+   char *name;
+-} netlink =	{ -1, 0, {0}, "netlink-listen" },	/* kernel messages */
+-  netlink_cmd = { -1, 0, {0}, "netlink-cmd" },          /* command channel */
+-  netlink_addr = {-1, 0, {0}, "netlink-addr" };		/* address channel */
++} netlink_sock ={ -1, 0, {0}, "netlink-listen" },	/* kernel messages */
++  netlink_cmd = { -1, 0, {0}, "netlink-cmd" };          /* command channel */
+ 
+ struct message nlmsg_str[] =
+ {
+@@ -206,6 +205,13 @@
+ 	  return -1;
+ 	}
+ 
++      /* JF: Ignore messages that aren't from the kernel */
++      if ( snl.nl_pid != 0 )
++        {
++          zlog ( NULL, LOG_ERR, "Ignoring message from pid %u", snl.nl_pid );
++        continue;
++      }
++
+       for (h = (struct nlmsghdr *) buf; NLMSG_OK (h, status); 
+ 	   h = NLMSG_NEXT (h, status))
+ 	{
+@@ -1052,7 +1058,7 @@
+   snl.nl_family = AF_NETLINK;
+ 
+   /* Talk to netlink socket. */
+-  ret = netlink_talk (&req.n, &netlink);
++  ret = netlink_talk (&req.n, &netlink_sock);
+   if (ret < 0)
+     return -1;
+ 
+@@ -1270,7 +1276,7 @@
+   if (family == AF_INET)
+     nl = &netlink_cmd;
+   else
+-    nl = &netlink;
++    nl = &netlink_sock;
+ 
+   /* Talk to netlink socket. */
+   return netlink_talk (&req.n, nl);
+@@ -1384,8 +1390,8 @@
+   int sock;
+ 
+   sock = THREAD_FD (thread);
+-  ret = netlink_parse_info (netlink_information_fetch, &netlink);
+-  thread_add_read (master, kernel_read, NULL, netlink.sock);
++  ret = netlink_parse_info (netlink_information_fetch, &netlink_sock);
++  thread_add_read (master, kernel_read, NULL, netlink_sock.sock);
+ 
+   return 0;
+ }
+@@ -1401,10 +1407,10 @@
+ #ifdef HAVE_IPV6
+   groups |= RTMGRP_IPV6_ROUTE|RTMGRP_IPV6_IFADDR;
+ #endif /* HAVE_IPV6 */
+-  netlink_socket (&netlink, groups);
++  netlink_socket (&netlink_sock, groups);
+   netlink_socket (&netlink_cmd, 0);
+ 
+   /* Register kernel socket. */
+-  if (netlink.sock > 0)
+-    thread_add_read (master, kernel_read, NULL, netlink.sock);
++  if (netlink_sock.sock > 0)
++    thread_add_read (master, kernel_read, NULL, netlink_sock.sock);
+ }
diff --git a/package/tsa/zebra/60zebra-0.91a-remote_dos.patch b/package/tsa/zebra/60zebra-0.91a-remote_dos.patch
new file mode 100644
index 000000000..6b8ccccd4
--- /dev/null
+++ b/package/tsa/zebra/60zebra-0.91a-remote_dos.patch
@@ -0,0 +1,23 @@
+--- zebra-0.91a/lib/vty.c.orig	Thu Feb  1 02:18:05 2001
++++ zebra-0.91a/lib/vty.c	Wed Oct 15 19:50:34 2003
+@@ -1103,13 +1103,16 @@
+       break;
+     case SE: 
+       {
+-	char *buffer = (char *)vty->sb_buffer->head->data;
+-	int length = vty->sb_buffer->length;
++	char *buffer;
++	int length;
+ 
+-	if (buffer == NULL)
++	if (!vty->iac_sb_in_progress)
+ 	  return 0;
+ 
+-	if (!vty->iac_sb_in_progress)
++	buffer = (char *)vty->sb_buffer->head->data;
++	length = vty->sb_buffer->length;
++
++	if (buffer == NULL)
+ 	  return 0;
+ 
+ 	if (buffer[0] == '\0')