[PATCH net] netfilter: nf_log: fix uninit read in nf_log_proc_dostring

Subsystems: netfilter, networking [general], the rest

STALE2957d

2 messages, 2 authors, 2018-06-26 · open the first message on its own page

[PATCH net] netfilter: nf_log: fix uninit read in nf_log_proc_dostring

From: Jann Horn <jannh@google.com>
Date: 2018-06-20 16:33:58

When proc_dostring() is called with a non-zero offset in strict mode, it
doesn't just write to the ->data buffer, it also reads. Make sure it
doesn't read uninitialized data.

Fixes: c6ac37d8d884 ("netfilter: nf_log: fix error on write NONE to [...]")
Signed-off-by: Jann Horn <jannh@google.com>
---
 net/netfilter/nf_log.c | 4 ++++
 1 file changed, 4 insertions(+)
diff --git a/net/netfilter/nf_log.c b/net/netfilter/nf_log.c
index 426457047578..2c47f9ec3511 100644
--- a/net/netfilter/nf_log.c
+++ b/net/netfilter/nf_log.c
@@ -424,6 +424,10 @@ static int nf_log_proc_dostring(struct ctl_table *table, int write,
 	if (write) {
 		struct ctl_table tmp = *table;
 
+		/* proc_dostring() can append to existing strings, so we need to
+		 * initialize it as an empty string.
+		 */
+		buf[0] = '\0';
 		tmp.data = buf;
 		r = proc_dostring(&tmp, write, buffer, lenp, ppos);
 		if (r)
-- 
2.18.0.rc1.244.gcf134e6275-goog

Re: [PATCH net] netfilter: nf_log: fix uninit read in nf_log_proc_dostring

From: Pablo Neira Ayuso <pablo@netfilter.org>
Date: 2018-06-26 16:05:14

On Wed, Jun 20, 2018 at 06:33:45PM +0200, Jann Horn wrote:
When proc_dostring() is called with a non-zero offset in strict mode, it
doesn't just write to the ->data buffer, it also reads. Make sure it
doesn't read uninitialized data.
Applied, thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help