{"id":"CVE-2026-58652","state":"PUBLISHED","title":"luci-app-travelmate - Arbitrary Command Execution via UCI Script Parameter","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.","publishedAt":"2026-07-02T12:28:34.022Z","updatedAt":"2026-10-29T21:16:01.526Z","severity":{"score":7.7,"label":"High","version":"4.0","vector":"CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","source":"VulnCheck"},"assigner":"VulnCheck","products":["openwrt luci-app-travelmate","openwrt travelmate"],"affected":[{"vendor":"openwrt","product":"luci-app-travelmate","defaultStatus":"affected","versions":[{"version":"2.4.5-r3","status":"affected","versionType":"custom"}]},{"vendor":"openwrt","product":"travelmate","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"2.4.6-2","versionType":"custom"},{"version":"2.4.6-2","status":"unaffected","versionType":"custom"}]}],"references":["https://github.com/openwrt/luci/security/advisories/GHSA-p35r-3323-6g7g","https://github.com/openwrt/packages/commit/71d92bcc9edbc8f95858ce82a8ff5d52500005a2","https://github.com/openwrt/packages/commit/0627b412ee3a760cc4bca9fc8a5b73de8f33ac10","https://github.com/openwrt/packages/commit/d6e457a1a70a9010195edeafdc0b8eb6e3b0f7f1","https://www.vulncheck.com/advisories/luci-app-travelmate-arbitrary-command-execution-via-uci-script-parameter"],"weaknesses":["CWE-78"],"ingestedAt":"2026-10-29T23:12:04.845Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/58xxx/CVE-2026-58652.json","commit":"dc7676b3f67d6707e4927968546e7e0125ff7ec7","baselineCommit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-58652","state":"PUBLISHED","datePublished":"2026-07-02T12:28:34.022Z","dateUpdated":"2026-10-29T21:16:01.526Z","assignerShortName":"VulnCheck","assignerOrgId":"83251b91-4cc7-4094-a5c7-464a1b83ea10","dateReserved":"2026-07-01T21:54:37.945Z"},"containers":{"cna":{"title":"luci-app-travelmate - Arbitrary Command Execution via UCI Script Parameter","descriptions":[{"lang":"en","value":"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":[{"vendor":"openwrt","product":"luci-app-travelmate","defaultStatus":"affected","versions":[{"version":"2.4.5-r3","status":"affected","versionType":"custom"}]},{"vendor":"openwrt","product":"travelmate","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"2.4.6-2","versionType":"custom"},{"version":"2.4.6-2","status":"unaffected","versionType":"custom"}]}],"references":[{"url":"https://github.com/openwrt/luci/security/advisories/GHSA-p35r-3323-6g7g","name":"GitHub Security Advisory (GHSA-p35r-3323-6g7g)","tags":["vendor-advisory"]},{"url":"https://github.com/openwrt/packages/commit/71d92bcc9edbc8f95858ce82a8ff5d52500005a2","name":"travelmate 2.4.6-1 release commit (vulnerable)"},{"url":"https://github.com/openwrt/packages/commit/0627b412ee3a760cc4bca9fc8a5b73de8f33ac10","name":"Patch Commit (travelmate 2.4.6-2, master)","tags":["patch"]},{"url":"https://github.com/openwrt/packages/commit/d6e457a1a70a9010195edeafdc0b8eb6e3b0f7f1","name":"Patch Commit (travelmate 2.4.6-2, openwrt-25.12 backport)","tags":["patch"]},{"url":"https://www.vulncheck.com/advisories/luci-app-travelmate-arbitrary-command-execution-via-uci-script-parameter","name":"VulnCheck Advisory: luci-app-travelmate - Arbitrary Command Execution via UCI Script Parameter","tags":["third-party-advisory"]}],"metrics":[{"format":"CVSS","cvssV4_0":{"version":"4.0","vectorString":"CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","attackVector":"NETWORK","attackComplexity":"HIGH","attackRequirements":"PRESENT","privilegesRequired":"LOW","userInteraction":"NONE","vulnConfidentialityImpact":"HIGH","vulnIntegrityImpact":"HIGH","vulnAvailabilityImpact":"HIGH","subConfidentialityImpact":"NONE","subIntegrityImpact":"NONE","subAvailabilityImpact":"NONE","baseScore":7.7,"baseSeverity":"HIGH"}},{"format":"CVSS","cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","attackVector":"NETWORK","attackComplexity":"HIGH","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH","baseScore":7.5,"baseSeverity":"HIGH"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-78","lang":"en","description":"Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')","type":"CWE"}]}],"providerMetadata":{"shortName":"VulnCheck","orgId":"83251b91-4cc7-4094-a5c7-464a1b83ea10","dateUpdated":"2026-10-29T21:16:01.526Z"},"datePublic":"2026-06-17T00:00:00.000Z","credits":[{"lang":"en","value":"ZwCrazyThursday","type":"reporter"}],"x_generator":{"engine":"vulncheck-endgame"}},"adp":[{"title":"CISA ADP Vulnrichment","references":[{"url":"https://github.com/openwrt/luci/security/advisories/GHSA-p35r-3323-6g7g","tags":["exploit"]}],"metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-07-02T13:16:39.810703Z","id":"CVE-2026-58652","options":[{"Exploitation":"poc"},{"Automatable":"no"},{"Technical Impact":"total"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-07-02T13:16:44.529Z"}}]}}}