tools/hv/hv_kvp_daemon.c: Netlink source address validation allows DoS
A message that is not in the archive (sent off-list or not yet received): [email protected]
PATCH 1/1 tools/hv/hv_kvp_daemon.c: Netlink source address validation allows DoS
Hi.
After discussion with KY Srinivasan and Olaf Hering I'm sending you a patch for the HyperV KVP daemon distributed in linux kernel "tools/hv/hv_kvp_daemon.c".
There is an issue in the current daemon source causing hyperv kvp daemon to exit when it processes a spoofed Netlink packet which has been sent from an untrusted local user.
This patch is fixing this, so now the Netlink messages with a non-zero nl_pid source address are just ignored.
Regards,
Tomas Hozza
Associate Software Engineer
BaseOS - Brno, CZ
From 6199072f8131056efce208f04e6985d1f9968d8e Mon Sep 17 00:00:00 2001
From: Tomas Hozza <[email protected]>
Date: Mon, 5 Nov 2012 10:08:16 +0100
Subject: [PATCH] Netlink source address validation allows DoS
The source code without this patch caused hypervkvpd to exit when it processed a spoofed Netlink packet which has been sent from an untrusted local user. Netlink messages with a non-zero nl_pid source address should just be ignored.
--- tools/hv/hv_kvp_daemon.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
tools/hv/hv_kvp_daemon.c +7 -1
@@ -1478,13 +1478,19 @@ int main(void) len =recvfrom (fd, kvp_recv_buffer,sizeof (kvp_recv_buffer),0 , addr_p, &addr_l); -if (len <0 || addr.nl_pid) { +if (len <0 ) {syslog (LOG_ERR ,"recvfrom failed; pid:%u error:%d %s" , addr.nl_pid, errno,strerror (errno));close (fd);return -1 ; } +if (addr.nl_pid) { +syslog (LOG_WARNING ,"Received packet from untrusted pid:%u" , + addr.nl_pid); +continue ; + } + incoming_msg = (struct nlmsghdr *)kvp_recv_buffer; incoming_cn_msg = (struct cn_msg *)NLMSG_DATA (incoming_msg); hv_msg = (struct hv_kvp_msg *)incoming_cn_msg->data;
Signature · 1 line
1.7.11.7
Quoted 17 lines
-----Original Message-----
From: Tomas Hozza [mailto:[email protected]]
Sent: Tuesday, November 06, 2012 10:21 AM
To: [email protected]; [email protected]; [email protected]; [email protected]; [email protected]
Cc: Olaf Hering; KY Srinivasan
Subject: [PATCH]tools/hv/hv_kvp_daemon.c: Netlink source address validation allows DoSHi.
After discussion with KY Srinivasan and Olaf Hering I'm sending you a patch for the HyperV KVP daemon distributed in linux kernel "
tools/hv/hv_kvp_daemon.c".
Quoted 6 lines
There is an issue in the current daemon source causing hyperv kvp daemon to exit when it processes a spoofed Netlink packet which has been sent from an untrusted local user.
This patch is fixing this, so now the Netlink messages with a non-zero
nl_pidsource address are just ignored.
You don't want to send the patch as an attachment. Please send the patch as part of the mail.
Regards,
K. Y
Quoted 7 lines
Regards,
Tomas Hozza
Associate Software Engineer
BaseOS - Brno, CZ
���{.n�+�������+%�����ݶ��w��{.n�+����{��G�����{ay�ʇڙ�,j��f���h��������z_�(�階�ݢj"���m������G������?����&���~��iO��z��v�^�m����������?�I�
Quoted 1 line
From
6199072f8131056efce208f04e6985d1f9968d8eMon Sep 17 00:00:00 2001
From: Tomas Hozza <[email protected]>
Date: Mon, 5 Nov 2012 10:08:16 +0100
Subject: [PATCH] Netlink source address validation allows DoS
The source code without this patch caused hypervkvpd to exit when it processed a spoofed Netlink packet which has been sent from an untrusted local user. Netlink messages with a non-zero nl_pid source address should just be ignored.
--- tools/hv/hv_kvp_daemon.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
tools/hv/hv_kvp_daemon.c +7 -1
@@ -1478,13 +1478,19 @@ int main(void) len =recvfrom (fd, kvp_recv_buffer,sizeof (kvp_recv_buffer),0 , addr_p, &addr_l); -if (len <0 || addr.nl_pid) { +if (len <0 ) {syslog (LOG_ERR ,"recvfrom failed; pid:%u error:%d %s" , addr.nl_pid, errno,strerror (errno));close (fd);return -1 ; } +if (addr.nl_pid) { +syslog (LOG_WARNING ,"Received packet from untrusted pid:%u" , + addr.nl_pid); +continue ; + } + incoming_msg = (struct nlmsghdr *)kvp_recv_buffer; incoming_cn_msg = (struct cn_msg *)NLMSG_DATA (incoming_msg); hv_msg = (struct hv_kvp_msg *)incoming_cn_msg->data;
Signature · 3 lines
1.7.11.7 ----- Original Message -----
Quoted 44 lines
Quoted 25 lines
-----Original Message-----
From: Tomas Hozza [mailto:[email protected]]
Sent: Tuesday, November 06, 2012 10:21 AM
To: [email protected]; [email protected]; [email protected]; [email protected]; [email protected]
Cc: Olaf Hering; KY Srinivasan
Subject: [PATCH]tools/hv/hv_kvp_daemon.c: Netlink source address validation
allows DoSHi.
After discussion with KY Srinivasan and Olaf Hering I'm sending you a patch for the HyperV KVP daemon distributed in linux kernel "
tools/hv/hv_kvp_daemon.c".There is an issue in the current daemon source causing hyperv kvp daemon
to exit when it processes a spoofed Netlink packet which has been sent
from an untrusted local user.Quoted 3 lines
This patch is fixing this, so now the Netlink messages with a non-zero
nl_pidsource address are just ignored.You don't want to send the patch as an attachment. Please send the patch
as part of the mail.Regards,
K. Y
Quoted 7 lines
Regards,
Tomas Hozza
Associate Software Engineer
BaseOS - Brno, CZ
Quoted 11 lines
-----Original Message-----
From: Tomas Hozza [mailto:[email protected]]
Sent: Tuesday, November 06, 2012 2:55 PM
To: KY Srinivasan
Cc: Olaf Hering; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]
Subject: Re: [PATCH]tools/hv/hv_kvp_daemon.c: Netlink source address validation allows DoS
Quoted 8 lines
From
6199072f8131056efce208f04e6985d1f9968d8eMon Sep 17 00:00:00 2001
From: Tomas Hozza <[email protected]>
Date: Mon, 5 Nov 2012 10:08:16 +0100
Subject: [PATCH] Netlink source address validation allows DoSThe source code without this patch caused hypervkvpd to exit when it processed a spoofed Netlink packet which has been sent from an untrusted local user. Netlink messages with a non-zero
nl_pidsource address should just be ignored.
Thomas,
You need a Signed-off-by line. Please refer to the documentation on how to submit a patch.
Regards,
K. Y
Quoted 34 lines
--- tools/hv/hv_kvp_daemon.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)tools/hv/hv_kvp_daemon.c +7
-1@@ -1478,13 +1478,19 @@ int main(void) len =recvfrom (fd, kvp_recv_buffer,sizeof (kvp_recv_buffer),0 , addr_p, &addr_l); -if (len <0 || addr.nl_pid) { +if (len <0 ) {syslog (LOG_ERR ,"recvfrom failed; pid:%u error:%d %s" , addr.nl_pid, errno,strerror (errno));close (fd);return -1 ; } +if (addr.nl_pid) { + syslog(LOG_WARNING, "Received packet from untrusted pid:%u", + addr.nl_pid); +continue ; + } + incoming_msg = (struct nlmsghdr *)kvp_recv_buffer; incoming_cn_msg = (struct cn_msg*)NLMSG_DATA(incoming_msg);
hv_msg= (structhv_kvp_msg*)incoming_cn_msg->data;
--
1.7.11.7
Quoted 46 lines
----- Original Message -----
Quoted 44 lines
Quoted 25 lines
-----Original Message-----
From: Tomas Hozza [mailto:[email protected]]
Sent: Tuesday, November 06, 2012 10:21 AM
To: [email protected]; [email protected]; [email protected]; [email protected]; [email protected]
Cc: Olaf Hering; KY Srinivasan
Subject: [PATCH]tools/hv/hv_kvp_daemon.c: Netlink source address validation
allows DoSHi.
After discussion with KY Srinivasan and Olaf Hering I'm sending you a patch for the HyperV KVP daemon distributed in linux kernel "
tools/hv/hv_kvp_daemon.c".There is an issue in the current daemon source causing hyperv kvp daemon
to exit when it processes a spoofed Netlink packet which has been sent
from an untrusted local user.Quoted 3 lines
This patch is fixing this, so now the Netlink messages with a non-zero
nl_pidsource address are just ignored.You don't want to send the patch as an attachment. Please send the patch
as part of the mail.Regards,
K. Y
Quoted 7 lines
Regards,
Tomas Hozza
Associate Software Engineer
BaseOS - Brno, CZ
���{.n�+�������+%�����ݶ��w��{.n�+����{��G�����{ay�ʇڙ�,j��f���h��������z_�(�階�ݢj"���m������G������?����&���~��iO��z��v�^�m����������?�I�