Sophie

Sophie

distrib > Mageia > 6 > armv7hl > media > core-updates-src > by-pkgid > b38cfb2472165b3ab7312a12efeaeed4 > files > 4

busybox-1.25.1-1.1.mga6.src.rpm

From 4e314faa0aecb66717418e9a47a4451aec59262b Mon Sep 17 00:00:00 2001
From: Denys Vlasenko <vda.linux@googlemail.com>
Date: Thu, 20 Nov 2014 17:24:33 +0000
Subject: modprobe,rmmod: reject module names with slashes

function                                             old     new   delta
add_probe                                             86     113     +27

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
---
diff --git a/modutils/modprobe.c b/modutils/modprobe.c
index f08f085..f090428 100644
--- a/modutils/modprobe.c
+++ b/modutils/modprobe.c
@@ -238,6 +238,17 @@ static void add_probe(const char *name)
 {
 	struct module_entry *m;
 
+	/*
+	 * get_or_add_modentry() strips path from name and works
+	 * on remaining basename.
+	 * This would make "rmmod dir/name" and "modprobe dir/name"
+	 * to work like "rmmod name" and "modprobe name",
+	 * which is wrong, and can be abused via implicit modprobing:
+	 * "ifconfig /usbserial up" tries to modprobe netdev-/usbserial.
+	 */
+	if (strchr(name, '/'))
+		bb_error_msg_and_die("malformed module name '%s'", name);
+
 	m = get_or_add_modentry(name);
 	if (!(option_mask32 & (OPT_REMOVE | OPT_SHOW_DEPS))
 	 && (m->flags & MODULE_FLAG_LOADED)
--
cgit v0.9.1