{"id":"CVE-2026-61875","state":"PUBLISHED","title":"luci-app-upnp Stored XSS via UPnP Port Mapping Description","description":"luci-app-upnp contains a stored cross-site scripting vulnerability that allows unauthenticated LAN clients to inject JavaScript via UPnP IGD AddPortMapping SOAP requests. Attackers can send malicious HTML in the NewPortMappingDescription field, which miniupnpd stores and luci-app-upnp renders without output encoding, executing the payload when administrators view the UPnP or Status pages.","publishedAt":"2026-07-12T12:06:36.956Z","updatedAt":"2026-09-30T17:20:19.772Z","severity":{"score":8.7,"label":"High","version":"4.0","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:L/SC:N/SI:N/SA:N","source":"VulnCheck"},"assigner":"VulnCheck","products":["openwrt luci"],"affected":[{"vendor":"openwrt","product":"luci","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"24.10.8","versionType":"custom"},{"version":"25.12.0","status":"affected","lessThan":"25.12.5","versionType":"custom"}],"modules":["luci-app-upnp"]}],"references":["https://github.com/openwrt/luci/security/advisories/GHSA-8v49-6387-7f89","https://www.vulncheck.com/advisories/luci-app-upnp-stored-xss-via-upnp-port-mapping-description"],"weaknesses":["CWE-79"],"ingestedAt":"2026-10-29T20:12:32.778Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/61xxx/CVE-2026-61875.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-61875","state":"PUBLISHED","datePublished":"2026-07-12T12:06:36.956Z","dateUpdated":"2026-09-30T17:20:19.772Z","assignerShortName":"VulnCheck","assignerOrgId":"83251b91-4cc7-4094-a5c7-464a1b83ea10","dateReserved":"2026-07-10T21:54:26.760Z"},"containers":{"cna":{"title":"luci-app-upnp Stored XSS via UPnP Port Mapping Description","descriptions":[{"lang":"en","value":"luci-app-upnp contains a stored cross-site scripting vulnerability that allows unauthenticated LAN clients to inject JavaScript via UPnP IGD AddPortMapping SOAP requests. Attackers can send malicious HTML in the NewPortMappingDescription field, which miniupnpd stores and luci-app-upnp renders without output encoding, executing the payload when administrators view the UPnP or Status pages."}],"affected":[{"vendor":"openwrt","product":"luci","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"24.10.8","versionType":"custom"},{"version":"25.12.0","status":"affected","lessThan":"25.12.5","versionType":"custom"}],"modules":["luci-app-upnp"]}],"references":[{"url":"https://github.com/openwrt/luci/security/advisories/GHSA-8v49-6387-7f89","name":"GitHub Security Advisory (GHSA-8v49-6387-7f89)","tags":["vendor-advisory"]},{"url":"https://www.vulncheck.com/advisories/luci-app-upnp-stored-xss-via-upnp-port-mapping-description","name":"VulnCheck Advisory: luci-app-upnp Stored XSS via UPnP Port Mapping Description","tags":["third-party-advisory"]}],"metrics":[{"format":"CVSS","cvssV4_0":{"version":"4.0","vectorString":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:L/SC:N/SI:N/SA:N","attackVector":"NETWORK","attackComplexity":"LOW","attackRequirements":"NONE","privilegesRequired":"NONE","userInteraction":"PASSIVE","vulnConfidentialityImpact":"HIGH","vulnIntegrityImpact":"HIGH","vulnAvailabilityImpact":"LOW","subConfidentialityImpact":"NONE","subIntegrityImpact":"NONE","subAvailabilityImpact":"NONE","baseScore":8.7,"baseSeverity":"HIGH"}},{"format":"CVSS","cvssV3_1":{"attackComplexity":"LOW","attackVector":"ADJACENT_NETWORK","availabilityImpact":"HIGH","baseScore":8.8,"baseSeverity":"HIGH","confidentialityImpact":"HIGH","integrityImpact":"HIGH","privilegesRequired":"NONE","scope":"CHANGED","userInteraction":"REQUIRED","vectorString":"CVSS:3.1/AV:A/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H","version":"3.1"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-79","lang":"en","description":"Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')","type":"CWE"}]}],"providerMetadata":{"shortName":"VulnCheck","orgId":"83251b91-4cc7-4094-a5c7-464a1b83ea10","dateUpdated":"2026-09-30T17:20:19.772Z"},"datePublic":"2026-06-27T00:00:00.000Z","cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:a:openwrt:luci:*:*:*:*:*:*:*:*"}]}]}],"credits":[{"lang":"en","value":"lujiefsi","type":"reporter"}],"x_generator":{"engine":"vulncheck-endgame"}},"adp":[{"title":"CISA ADP Vulnrichment","references":[{"url":"https://github.com/openwrt/luci/security/advisories/GHSA-8v49-6387-7f89","tags":["exploit"]}],"metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-07-13T14:19:23.887144Z","id":"CVE-2026-61875","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-13T14:19:53.274Z"}}]}}}