luci-proto-modemmanager: fix ACL command injection
authorTim Nordell <redacted>
Mon, 16 Mar 2026 14:24:23 +0000 (09:24 -0500)
committerFlorian Eckert <redacted>
Tue, 17 Mar 2026 07:34:07 +0000 (08:34 +0100)
commit122839294a8488f49b8e8d365145da49d9ce3104
treedfcff8d61f0c6d347aae00cd1b8cad8a6ae3718d
parentba590f87eace15ceeada9acdc13bf641478429d0
luci-proto-modemmanager: fix ACL command injection

The ACL permissions were originally authored to support just a single
set of modem interfaces, at the numbers 0-9.  Eventually this was
adjusted to support from 0 to 999 avoiding command injection.

However, as new commands were added, this was reverted again
unfortunately. Language like "regex" has been used in the commit history
for this ACL, and likely the core of the issue is confusion on how these
are parsed.  These are all parsed [1] with fnmatch(...), and not regex(..).

A future useful change could be for rpcd to set the FNM_EXTMATCH option
for fnmatch(...) to simplify this particular match statement, but that's
not considered here since that's a much broader change that needs a
longer discussion.

[1] https://github.com/openwrt/rpcd/blob/a4a5a298588960638a2e1713eb8fb858e1dbedeb/session.c#L143-L147

Fixes: 54aa70112c ("luci-proto-modemmanager: add status page")
Signed-off-by: Tim Nordell <redacted>
protocols/luci-proto-modemmanager/root/usr/share/rpcd/acl.d/luci-proto-modemmanager.json
git clone https://git.99rst.org/PROJECT