CVE-2019-25370 Overview
CVE-2019-25370 is a reflected cross-site scripting (XSS) vulnerability affecting OPNsense 19.1, an open-source firewall and routing platform. The vulnerability exists in the interfaces_vlan_edit.php page, where multiple parameters fail to properly sanitize user-supplied input before rendering it in the browser. Attackers can exploit this flaw by crafting malicious POST requests containing JavaScript payloads in the tag, descr, or vlanif parameters, enabling arbitrary script execution in the context of authenticated users' sessions.
Critical Impact
Successful exploitation allows attackers to execute arbitrary JavaScript in authenticated user sessions, potentially leading to session hijacking, credential theft, or unauthorized configuration changes on the firewall.
Affected Products
- OPNsense 19.1
- OPNsense firewall appliances running version 19.1
- Web management interface (interfaces_vlan_edit.php)
Discovery Timeline
- 2026-02-15 - CVE-2019-25370 published to NVD
- 2026-02-18 - Last updated in NVD database
Technical Details for CVE-2019-25370
Vulnerability Analysis
This reflected XSS vulnerability stems from insufficient input validation and output encoding in the OPNsense web management interface. The interfaces_vlan_edit.php script accepts user input through POST parameters without proper sanitization, allowing malicious JavaScript code to be reflected back to the user's browser and executed within the security context of the OPNsense administrative interface.
The vulnerability is classified under CWE-79 (Improper Neutralization of Input During Web Page Generation), which represents one of the most common web application security flaws. In the context of a firewall management interface, successful XSS attacks can have particularly severe consequences, as attackers may be able to modify firewall rules, extract sensitive configuration data, or pivot to other network attacks.
Root Cause
The root cause is the failure to implement proper input sanitization and output encoding for user-supplied data in the VLAN interface configuration page. When processing POST requests to interfaces_vlan_edit.php, the application directly reflects the values of the tag, descr, and vlanif parameters into the HTML response without escaping special characters that have significance in HTML and JavaScript contexts.
Attack Vector
The attack vector is network-based and requires user interaction. An attacker must craft a malicious URL or form that submits a POST request to the vulnerable endpoint. The attack typically involves social engineering to trick an authenticated administrator into clicking a malicious link or visiting a page that automatically submits the crafted request. Upon successful exploitation, the injected script executes with the privileges of the authenticated user, potentially allowing the attacker to perform actions such as:
- Stealing session cookies or authentication tokens
- Modifying firewall configurations
- Creating new administrative accounts
- Capturing keystrokes or sensitive data entered by the user
The vulnerability can be exploited by submitting crafted input through the tag, descr, or vlanif parameters in POST requests to interfaces_vlan_edit.php. Malicious payloads containing JavaScript code are reflected back in the response and executed in the victim's browser context. For detailed technical analysis and proof-of-concept examples, refer to the Exploit-DB entry #46351.
Detection Methods for CVE-2019-25370
Indicators of Compromise
- Unusual POST requests to interfaces_vlan_edit.php containing script tags or JavaScript event handlers
- Web server logs showing encoded or obfuscated payloads in the tag, descr, or vlanif parameters
- Unexpected session activity or administrative changes following suspicious link clicks
- Browser console errors indicating blocked inline script execution (if CSP is partially implemented)
Detection Strategies
- Implement web application firewall (WAF) rules to detect XSS payload patterns in POST parameters
- Monitor web server access logs for requests containing common XSS indicators such as <script>, javascript:, or event handlers like onerror=
- Deploy endpoint detection solutions that can identify anomalous browser behavior resulting from XSS exploitation
- Use SentinelOne Singularity to detect post-exploitation activities that may follow successful XSS attacks
Monitoring Recommendations
- Enable verbose logging for the OPNsense web interface and review logs for suspicious activity
- Configure alerting for failed or unusual authentication attempts following potential XSS exploitation
- Monitor for unexpected configuration changes to VLAN settings or firewall rules
- Implement browser-based XSS auditing tools for security testing of administrative interfaces
How to Mitigate CVE-2019-25370
Immediate Actions Required
- Upgrade OPNsense to a version newer than 19.1 that addresses this vulnerability
- Restrict access to the OPNsense web management interface to trusted networks or IP addresses only
- Implement network segmentation to limit exposure of management interfaces
- Educate administrators about phishing and social engineering attacks that may attempt to exploit this vulnerability
Patch Information
Organizations should upgrade to a patched version of OPNsense. The official OPNsense release notes and security advisories should be consulted for specific patch information. For additional context on this vulnerability, see the OPNsense Forum Discussion and the VulnCheck OPNsense Advisory.
Workarounds
- Restrict web interface access to trusted IP addresses using firewall rules
- Disable remote management access and require local console access for configuration changes
- Implement Content Security Policy (CSP) headers at the web server level to mitigate script execution
- Use a reverse proxy with XSS filtering capabilities in front of the management interface
- Require administrators to use dedicated, hardened browsers for accessing the OPNsense management interface
# Example: Restrict management interface access to specific IP addresses
# Add to firewall rules (adjust interface and IP as needed)
pass in on egress inet proto tcp from 192.168.1.0/24 to (self) port 443
block in on egress inet proto tcp to (self) port 443
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


