CVE-2026-58392: OPNsense: Stored XSS in Services: NTP GPS
OPNsense is a FreeBSD based firewall and routing platform. Prior to version 26.1.11, the NTP GPS page stores the operator-supplied initcmd value in base64 form, applies legacyhtmlescapeformdata() to the encoded string, and then uses base64decode() to decode the value directly into the GPS initialization-command textarea in src/www/servicesntpdgps.php. Because decoding occurs after escaping, stored HTML remains unescaped at the output sink. A user with page-services-ntp-gps privilege can store a value that closes the textarea, and script executes in the session of any user who later opens the GPS page. The script can read CSRF material and perform authenticated actions, including actions available to an administrator. This issue is fixed in version 26.1.11.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
OPNsenseto a version that resolves this vulnerability.Fixed in 26.1.11
Event History
Frequently Asked Questions
Who can exploit this issue, and who is at risk from the stored payload?
A user with the page-services-ntp-gps privilege can store the malicious initialization-command value. Any user who later opens the NTP GPS page can have script executed in their authenticated session, including an administrator.
What access or interaction is required for exploitation?
The attacker needs authenticated access with page-services-ntp-gps privilege to save the payload. Exploitation then requires a victim to open the GPS page containing that stored value.
What could an attacker do through a compromised victim session?
The injected script can read CSRF material and perform authenticated actions available to the victim. If an administrator visits the affected page, this can include administrator-level actions.
Which versions are affected, and what is the remediation?
OPNsense versions prior to 26.1.11 are affected. Upgrade to version 26.1.11, which fixes the issue.