From c0ccc95d9ad86db9bd180ca9a86984e1e17c153f Mon Sep 17 00:00:00 2001 From: Thomas Lamprecht Date: Tue, 20 Jul 2021 21:43:00 +0200 Subject: [PATCH] backport "seq_file: disallow extremely large seq buffer allocations" Signed-off-by: Thomas Lamprecht --- ...08-seq-file-disallow-extremely-large.patch | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 patches/kernel/0008-seq-file-disallow-extremely-large.patch diff --git a/patches/kernel/0008-seq-file-disallow-extremely-large.patch b/patches/kernel/0008-seq-file-disallow-extremely-large.patch new file mode 100644 index 0000000..fe4be93 --- /dev/null +++ b/patches/kernel/0008-seq-file-disallow-extremely-large.patch @@ -0,0 +1,34 @@ +From 8cae8cd89f05f6de223d63e6d15e31c8ba9cf53b Mon Sep 17 00:00:00 2001 +From: Eric Sandeen +Date: Tue, 13 Jul 2021 17:49:23 +0200 +Subject: seq_file: disallow extremely large seq buffer allocations + +There is no reasonable need for a buffer larger than this, and it avoids +int overflow pitfalls. + +Fixes: 058504edd026 ("fs/seq_file: fallback to vmalloc allocation") +Suggested-by: Al Viro +Reported-by: Qualys Security Advisory +Signed-off-by: Eric Sandeen +Cc: stable@kernel.org +Signed-off-by: Linus Torvalds +--- + fs/seq_file.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/fs/seq_file.c b/fs/seq_file.c +index b117b212ef288..4a2cda04d3e29 100644 +--- a/fs/seq_file.c ++++ b/fs/seq_file.c +@@ -32,6 +32,9 @@ static void seq_set_overflow(struct seq_file *m) + + static void *seq_buf_alloc(unsigned long size) + { ++ if (unlikely(size > MAX_RW_COUNT)) ++ return NULL; ++ + return kvmalloc(size, GFP_KERNEL_ACCOUNT); + } + +-- +cgit 1.2.3-1.el7