diff --git a/package/base-files/files/lib/functions/network.sh b/package/base-files/files/lib/functions/network.sh
index 5ffe2ca0b9d2ce003e7eb35cb3f95b257363e565..ead69aa626621f12e4614a5b6ff78e0c81b63152 100644
--- a/package/base-files/files/lib/functions/network.sh
+++ b/package/base-files/files/lib/functions/network.sh
@@ -25,6 +25,10 @@ __network_parse_ifstatus()
 	local __list
 	local __old_ns
 
+	case "$__iface" in
+		*[^a-zA-Z0-9_]*) return 1 ;;
+	esac
+
 	__network_export __tmp "${__key}__parsed" && return 0
 	__tmp="$(ubus call network.interface."$__iface" status 2>/dev/null)"
 	[ -n "$__tmp" ] || return 1