HIGH 7.5

CVE-2026-58652: luci-app-travelmate Root Command Execution via Privilege Escalation

A privilege-escalation flaw in luci-app-travelmate and the travelmate package allows an attacker with delegated write permissions to the travelmate configuration to execute arbitrary commands as root. The vulnerability exists because the web UI (LuCI) only restricts the auto-login script picker to a safe directory on the frontend, but the backend travelmate service—which runs as root—reads the raw UCI configuration values and executes whatever script path is specified without proper validation. An attacker can bypass the UI restriction by directly setting the script parameter to any executable (e.g., /bin/sh) and the script_args parameter to attacker-controlled commands, leading to complete system compromise.

Source data · NVD / CISA · public domain

CVSS
3.1 · 7.5 HIGH · CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
Weaknesses (CWE)
CWE-78
Affected products
0 configuration(s)
Published / Modified
2026-07-02 / 2026-07-02

NVD description (verbatim)

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; the sink is still present in travelmate 2.4.6-1 and no patched version is known.

8 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

The flaw is a path-traversal and command-injection vulnerability rooted in a trust boundary bypass. The LuCI web interface enforces a frontend whitelist restricting the script picker to /etc/travelmate/*.login, but this validation is client-side only. The backend travelmate service, invoked at the captive-portal auto-login checkpoint in the f_check() function of travelmate-functions.sh, reads the UCI configuration values 'script' and 'script_args' without validation and directly executes them via shell invocation. A user or process with the luci-app-travelmate write ACL can modify the raw UCI values (bypassing the LuCI UI) to point to any binary and pass arbitrary arguments. Classified as CWE-78 (OS Command Injection), the vulnerability affects travelmate 2.4.5-r3 and persists in version 2.4.6-1; no patched version has been publicly released.

Business impact

This vulnerability enables privilege escalation from a delegated, limited administrative role (LuCI write access to travelmate configuration) to full root command execution. On affected routers or edge devices running travelmate, an attacker with account access or the ability to manipulate local users with such roles can install backdoors, exfiltrate data, modify firewall rules, establish reverse shells, or completely compromise the device and any networks it services. For organizations operating captive-portal gateways or managing fleets of OpenWrt devices with travelmate, this represents a critical control failure—an apparently restricted administrative function becomes a path to OS-level compromise.

Affected systems

luci-app-travelmate and travelmate package versions through 2.4.6-1 are confirmed vulnerable. The vulnerability requires the attacker to hold delegated LuCI/rpcd session permissions with the luci-app-travelmate write ACL. Affected devices are typically OpenWrt-based routers or embedded systems using travelmate for captive-portal auto-login functionality. No patched version is currently known; verify with the OpenWrt/travelmate maintainers for the latest security status.

Exploitability

Exploitability is moderate-to-high given the specific prerequisites. An attacker must already possess or be granted write permissions to the travelmate LuCI configuration—this is not an unauthenticated remote attack. However, once in possession of such permissions (via credential compromise, social engineering, or intentional delegation), exploitation is trivial: directly modifying the UCI 'script' and 'script_args' values to invoke arbitrary commands requires no special tools or conditions. The CVSS score of 7.5 (HIGH) reflects the high-impact consequence (root code execution) balanced against the requirement for prior authentication and privileged role assignment. The vulnerability is not yet tracked in the CISA KEV catalog, suggesting either recent discovery or limited public awareness.

Remediation

No official patch is available as of the last update. Immediate mitigations include: (1) Restrict LuCI access and role-based access controls—audit which accounts or roles hold luci-app-travelmate write permissions and disable unnecessary delegations; (2) Implement network-level access controls to limit administrative access to affected devices; (3) Monitor UCI configuration changes, particularly to the travelmate 'script' and 'script_args' parameters, for anomalies; (4) If travelmate auto-login is not essential, disable the captive-portal auto-login functionality. Contact the OpenWrt/travelmate project directly for patch availability and timeline. Organizations should also prepare to patch as soon as a fix is released.

Patch guidance

No patched version is known at this time. Verify the latest status with the OpenWrt project and travelmate maintainers. When a patch is released, follow the vendor's update instructions for your OpenWrt variant. In the interim, apply administrative and network-level controls (see remediation_summary) to restrict exposure. Test patches in a non-production environment before rolling out to production edge devices.

Detection guidance

Monitor for suspicious modifications to UCI travelmate configuration, specifically unexpected changes to the 'script' or 'script_args' parameters outside of normal administrative workflows. Log and alert on LuCI sessions that modify travelmate settings, especially those setting script to paths outside /etc/travelmate/. Inspect running travelmate processes and their arguments via ps or systemctl status to detect if unusual binaries are being invoked. Network telemetry indicating unexpected outbound connections or commands from affected routers may signal post-exploitation activity. Baseline LuCI user roles and RBAC policies to identify unauthorized privilege grants.

Why prioritize this

This vulnerability merits HIGH priority for organizations running OpenWrt with travelmate in production. While exploitation requires prior authentication with specific permissions, the jump from delegated write access to root command execution is direct and severe. The absence of a known patch means defenders must rely on administrative controls and monitoring. Given the typical deployment of OpenWrt devices at network edges (gateways, captive portals), a compromise could provide a foothold for lateral movement or persistent access to internal networks.

Risk score, explained

CVSS 3.1 score of 7.5 (HIGH) reflects: Attack Vector = Network (remotely exploitable once credentials are obtained), Attack Complexity = High (requires prior possession of write permissions and specific role), Privileges Required = Low (delegated role, not full admin), User Interaction = None, Scope = Unchanged, and Confidentiality/Integrity/Availability Impact = High (root code execution). The 'High' complexity and privilege requirement prevent a 9.0+ score, but the certainty of root-level impact justifies the 7.5 rating. Organizations should treat this as a critical control gap if they operate affected devices with high-trust RBAC roles.

Frequently asked questions

What if I don't use the captive-portal auto-login feature in travelmate?

The vulnerability specifically exists in the auto-login code path (f_check() function). If auto-login is disabled or not used, the vulnerable sink is not reached during normal operation. However, it is prudent to audit and restrict access to travelmate configuration regardless, as future changes to the codebase or misconfiguration could activate the code path inadvertently.

Can I exploit this vulnerability without any credentials or access?

No. Exploitation requires holding or obtaining a LuCI/rpcd session with the luci-app-travelmate write ACL. This is not an unauthenticated remote code execution vulnerability. An attacker must either compromise a valid account with those permissions, be granted them intentionally, or exploit a separate vulnerability to obtain them.

Why doesn't the LuCI UI restriction prevent this attack?

The LuCI web interface enforces a whitelist on the frontend, restricting the script picker dropdown to /etc/travelmate/*.login. However, this is a UI-level control only. The backend travelmate service reads the raw UCI configuration file and does not re-validate the script path. An attacker can bypass the UI entirely by directly modifying the UCI configuration (using uci set commands or direct file editing) if they have the required permissions, rendering the UI whitelist ineffective.

How do I check if I'm affected?

Check your travelmate version using opkg list-installed | grep travelmate. If you have luci-app-travelmate or travelmate version 2.4.6-1 or earlier, you are potentially affected. Verify that travelmate auto-login is enabled and that users or roles with luci-app-travelmate write permissions exist in your deployment. Query your UCI configuration with uci show travelmate to inspect the current script and script_args settings for any anomalies.

This analysis is based on the CVE record and vendor data available as of the publication date. No patched version is publicly known; readers should verify the latest status directly with the OpenWrt and travelmate projects. This explainer does not constitute legal or compliance advice. Exploit code is not provided. Organizations must conduct their own risk assessment based on their specific deployment and access control posture. CVSS scores represent severity in isolation; business risk depends on your environment, exposure, and controls. Source: NVD (public-domain), retrieved 2026-08-11. Analysis generated by SEC.co (claude-haiku-4-5).