From a8f163a8e5d2f443915d438bcb17f19f666f729e Mon Sep 17 00:00:00 2001 From: Crivion Date: Wed, 22 Oct 2025 14:16:37 +0300 Subject: [PATCH] firewall: add-rule -> split arguments instead of quoting the whole rule --- app/Actions/Firewall/AddUfwRuleAction.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/Actions/Firewall/AddUfwRuleAction.php b/app/Actions/Firewall/AddUfwRuleAction.php index 8da66c2..95a945a 100644 --- a/app/Actions/Firewall/AddUfwRuleAction.php +++ b/app/Actions/Firewall/AddUfwRuleAction.php @@ -13,7 +13,11 @@ class AddUfwRuleAction if ($ruleSpec === '') { throw new RuntimeException('Empty rule spec'); } - $proc = Process::run(['bash', '-lc', 'sudo ufw allow ' . escapeshellarg($ruleSpec)]); + + $parts = preg_split('/\s+/', trim($ruleSpec)); + $parts = array_filter($parts, fn($v) => $v !== ''); + $proc = Process::run(array_merge(['sudo', 'ufw', 'allow'], $parts)); + if ($proc->failed()) { throw new RuntimeException('UFW allow failed: ' . $proc->errorOutput()); }