Description
luci-app-travelmate (and the travelmate package) contain a privilege-escalation flaw: a LuCI/rpcd session holding the luci-app-travelmate write ACL is granted config-wide UCI write access to the travelmate configuration. While the LuCI UI restricts the auto-login script picker to /etc/travelmate/*.login, this is only a frontend restriction. The backend travelmate service (running as root) reads the raw UCI 'script' and 'script_args' values and executes the configured path when the captive-portal auto-login branch (f_check() in travelmate-functions.sh) is reached. An attacker with delegated write permissions can set script to /bin/sh and script_args to attacker-controlled arguments, resulting in arbitrary command execution as root. Confirmed in luci-app-travelmate/travelmate 2.4.5-r3; travelmate 2.4.6-1 is also affected. Fixed in travelmate 2.4.6-2, which enforces the /etc/travelmate/*.login allowlist in the backend.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| openwrt | luci-app-travelmate | 2.4.5-r3 | — |
| openwrt | travelmate | < 2.4.6-2 | 2.4.6-2 |
References
- GitHub Security Advisory (GHSA-p35r-3323-6g7g) vendor-advisory
- travelmate 2.4.6-1 release commit (vulnerable) patch
- Patch Commit (travelmate 2.4.6-2, master) patch
- Patch Commit (travelmate 2.4.6-2, openwrt-25.12 backport) patch
- VulnCheck Advisory: luci-app-travelmate - Arbitrary Command Execution via UCI Script Parameter third-party-advisory