☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
SOON 🐛 CWE-1385
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-15580

CVE-2026-15580 Vulnerability in N-able
📅 PUBLISHED: 2026-08-21 00:00 UTC 🔄 UPDATED: 2026-08-22 00:00 UTC
⏳ SCORE PENDING — ANALYSIS IN PROGRESS [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: < 3.49.6
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
SOON
PENDING NVD
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-15580 is an unvalidated postMessage vulnerability in the N-able PassPortal browser extension (versions prior to 3.49.6) that permits vault token disclosure, leading to Authentication Abuse. An attacker who can deliver malicious content to a page with which the extension interacts can invoke the extension's messaging API to exfiltrate authentication tokens or session material for the password vault. The flaw is classified as CWE-1385 (Missing Origin Validation in WebSocket Handshake / postMessage) and currently has no known active exploitation, public proof-of-concept, or vendor-confirmed patch; the extension version 3.49.6 is indicated as the fixing release. Enterprise environments using PassPortal for credential storage face a significant risk of credential theft via browser-based attack vectors.

⚡ 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

Technical Analysis

The vulnerability resides in the N-able PassPortal browser extension's handling of postMessage events. The postMessage API is a standard browser mechanism for cross-origin communication between windows, frames, and extension contexts. In a secure implementation, the receiving side must strictly validate the event.origin property to ensure that messages originate from a trusted source (e.g., the vendor's own web application domain). Failure to perform this validation — or performing it insufficiently — allows any web page the user visits to send crafted messages to the extension, and the extension will process them as legitimate commands.

In this case, the NVD description indicates that the PassPortal extension (before version 3.49.6) processes postMessage events without adequate origin validation. Because browser extensions run with elevated privileges relative to normal web content, the extension's messaging listener can be reached from any tab in the browser. When a user browses to an attacker-controlled website, that site's JavaScript can call window.postMessage() targeting the extension's context. If the extension responds by exposing internal state or by performing sensitive actions, the attacker can retrieve vault authentication tokens.

The phrase "vault token disclosure" in the NVD description implies that the message handler, when invoked, returns or exposes tokens used to authenticate the user against the PassPortal vault backend. The "Authentication Abuse" consequence indicates that the disclosed token can be replayed or used to impersonate the user, granting the attacker access to stored credentials without knowledge of the master password.

The exact mechanism — whether the token is returned in the message response, stored in a variable accessible via the message handler, or used to trigger additional API calls — is not disclosed in the NVD description. Insufficient technical detail is available regarding the specific message structure, handler function names, or internal API endpoints. The attack surface is the browser extension's message-passing interface, reachable from any web page loaded in the same browser session.

Affected attack surface includes all browser installations running PassPortal version 3.49.5 or earlier. The extension would respond to postMessage events from any origin, meaning the flaw is exploitable via standard drive-by web browsing, malicious advertisements, or phishing pages. Because the extension interacts with the vault's backend API, the token disclosure may also enable lateral access to other systems where the vault credentials are reused.

Exploitation Scenarios

No public PoC or exploit code is available for CVE-2026-15580; the following attack chain is inferred from the vulnerability class (unvalidated postMessage) and the NVD description.

Step 1 — Reconnaissance / Target Identification. The attacker identifies a target environment using N-able PassPortal. This can be accomplished through passive browsing fingerprinting (extension presence is often detectable via navigator properties or resource requests), or through active enumeration of enterprise browser deployments. The attacker does not require prior access to the target network; the victim is any user who has the PassPortal extension installed and is browsing the web.

Step 2 — Triggering the Vulnerability Class. The attacker hosts a malicious web page (or injects script into a legitimate page via ad network or XSS on a third-party site) that contains JavaScript designed to interact with the PassPortal extension. The page uses the window.postMessage() API to send a message to the extension's content script or background script. Because the extension does not validate event.origin, it accepts the message.

Step 3 — Payload / Execution Method. At the vulnerability-class level, the attacker crafts a message that requests the current vault session token or authentication state. The message format is specific to the PassPortal extension internals, which are not publicly documented; however, common patterns for such attacks involve sending a message with an action identifier (such as "getToken", "getSession", or similar) and reading the response via a message event listener. The extension processes the request and returns the vault token in a response message. This is a client-side data exfiltration — no network-level exploitation is required.

Step 4 — Post-Exploitation Impact. With the stolen vault token, the attacker can replay it against the PassPortal backend API to authenticate as the victim. This grants access to all passwords and secrets stored in the vault. If the attacker also captures the user's master password hash or uses the session to trigger password-autofill features, the impact expands to credential takeover across all services for which the vault stores credentials. The attacker may also use the authenticated session to modify vault contents, delete entries, or extract the user's full credential database.

Impact Assessment

Business Impact: The primary impact is the complete compromise of all secrets managed by the affected PassPortal vault. For enterprises, this includes service accounts, application credentials, database passwords, API keys, and end-user credentials. The "vault token disclosure" permits authentication abuse that bypasses master-password verification, meaning the attacker does not need to crack a password to access the vault's contents.

Affected Systems: Any workstation or managed device where the PassPortal browser extension version < 3.49.6 is installed. Common browsers include Chrome, Firefox, and Edge, depending on how the extension is packaged by N-able.

Blast Radius: The blast radius is broad because credential vaults often contain highly privileged access. A single compromised vault can lead to domain-wide compromise if service account credentials are stored. Because the attack is client-side, traditional network segmentation and firewall controls do not prevent it; detection must occur at the browser/endpoint level.

CVSS Assessment: No CVSS score is available from the CNA. Based on the vulnerability class (CWE-1385) and the authentication-bypass consequence, a reasonable estimate would score in the high-critical range (7.5–9.0) given the potential for credential theft, but this is an estimate only and must not be used in place of an official score.

Detection Guidance

Sigma Rule

title: Suspicious postMessage Interaction with N-able PassPortal Extension
id: 6f2b0c5e-8a1d-4e9f-b2c4-d12a3f6ab789
status: experimental
description: Detects web pages attempting to interact with the PassPortal browser extension via postMessage, which may indicate exploitation of CVE-2026-15580.
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2026-15580
author: Valtersit Threat Intel Team
date: 2026/01/15
logsource:
    product: windows
    category: browser_extension
detection:
    selection:
        ExtensionID|contains: 'PassPortal'
        MessageEvent|contains:
            - 'token'
            - 'session'
            - 'getVault'
            - 'auth'
        OriginValidation: 'false'
    condition: selection
level: high
falsepositives:
    - Legitimate PassPortal web application communicating with the extension
    - Development testing by internal staff

YARA Rule

rule Nable_PassPortal_Token_Disclosure_Exfil
{
    meta:
        author = "Valtersit Threat Intel"
        description = "Detects JavaScript attempting to exploit unvalidated postMessage in N-able PassPortal extension"
        cve = "CVE-2026-15580"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-15580"
    strings:
        $postMessage = "postMessage" ascii
        $token_ref = "token" ascii nocase
        $vault_ref = "PassPortal" ascii nocase
        $auth_ref = "session" ascii nocase
        $origin_bypass = "event.origin" ascii
        $target_origin = "targetOrigin" ascii
    condition:
        $postMessage and $vault_ref and ($token_ref or $auth_ref) and
        (
            2 of ($origin_bypass, $target_origin) or
            #postMessage > 1
        )
}

Suricata IDS Rule

alert http any any -> any any (msg:"CVE-2026-15580 - N-able PassPortal Token Disclosure postMessage Exploit Attempt"; flow:established,to_server; content:"postMessage"; http_uri; nocase; content:"PassPortal"; http_uri; nocase; pcre:"/[\"'](?:token|session|vault)[\"']/i"; classtype:attempted-user; sid:10015580; rev:1; metadata:created_at 2026_01_15, updated_at 2026_01_15, cve CVE-2026-15580;)

Elastic Detection

any where
  process.name : ("chrome.exe", "firefox.exe", "msedge.exe") and
  event.action : ("content_script", "extension_message") and
  wildcard(process.args, "*PassPortal*") and
  wildcard(process.args, "*token*") or
  wildcard(process.args, "*postMessage*")

Splunk SPL Query

index=endpoint OR index=browser 
| search (sourcetype="chrome:extension" OR sourcetype="firefox:extension") 
| search "PassPortal" AND ("token" OR "session" OR "postMessage")
| stats count by host, user, src_ip, dest_ip, _time
| where count > 5
| table _time, host, user, src_ip, dest_ip, count

Wazuh OSSEC Rule

<group name="browser,passportal,">
    <rule id="836039" level="12">
        <if_sid>100155</if_sid>
        <match>PassPortal</match>
        <match>token</match>
        <description>CVE-2026-15580: Suspicious postMessage interaction with PassPortal extension detected - possible token disclosure</description>
        <mitre>
            <id>T1190</id>
        </mitre>
        <group>attack_initial_access,attack_credential_access</group>
    </rule>
</group>

Mitigation & Patch Guidance

Patch Confidence: 0/4 — UNPATCHED. No patch evidence is available from any tracked source. The NVD description implies version 3.49.6 is the fixing release, but no vendor advisory or changelog has been published. Until the vendor releases an official update, treat the vulnerability as actively exploitable.

Immediate Mitigations:

  1. Upgrade Immediately: If version 3.49.6 or later becomes available, deploy it to all endpoints. Until then, consider whether the PassPortal extension is essential for daily operations.
  2. Restrict Extension Usage: If disabling is not feasible, restrict use of the PassPortal extension to dedicated, isolated browser profiles that do not browse untrusted websites.
  3. Block Untrusted Origins: Implement browser-level or extension-manager policies that blacklist known malicious domains and enforce a strict allowlist for sites the extension is permitted to interact with.
  4. Rotate Vault Credentials: As a precaution, rotate all credentials stored in PassPortal vaults that may have been exposed to monitored browsing sessions, especially those involving suspicious web activity.
  5. Monitor for Anomalous Vault Access: Enable audit logging on the PassPortal backend and alert on unusual token usage patterns, such as access from unexpected IPs or at abnormal hours.

Patches / Upgrades: Monitor the N-able security advisory page and the vendor's GitHub or release notes for version 3.49.6. Apply the update immediately upon availability. Verify the extension's manifest permissions and confirm the vendor has implemented strict event.origin validation.

Long-Term Hardening:

  1. Adopt Defense-in-Depth: Use browser isolation technologies (e.g., remote browser isolation) that prevent untrusted web content from executing directly on endpoints, neutralizing client-side extension attacks.
  2. Implement Application Controls: Use allowlisting tools to restrict which browser extensions can be installed and executed, and enforce regular extension updates via central management.
  3. Security Awareness Training: Educate users about the risk of browsing untrusted sites while credential-management extensions are active, and discourage the use of personal browsing on managed devices.
  4. Audit Extension Permissions: Periodically review all installed extensions for excessive permissions or known vulnerabilities, and prioritize the removal of high-risk extensions.
  5. Stay Informed on CWE-1385: Treat all extensions that handle authentication tokens with rigorous origin-validation requirements; raise these requirements with vendors as part of procurement.

References

  1. NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2026-15580 — Official NVD record with the vulnerability description and references.
  2. N-able Security Advisories: https://www.n-able.com/security — Vendor advisory page; monitor here for the official fix announcement and patched version 3.49.6.
  3. CWE-1385 Description: https://cwe.mitre.org/data/definitions/1385.html — Common Weakness Enumeration entry for Missing Origin Validation, which describes the vulnerability class patterns.
  4. CISA Known Exploited Vulnerabilities Catalog: https://www.cisa.gov/known-exploited-vulnerabilities-catalog — Confirms CVE-2026-15580 is NOT listed; no active exploitation evidence known at time of writing.
  5. No threat-actor campaigns or exploit-in-the-wild evidence has been reported for CVE-2026-15580 at this time. Organizations should still treat this as a high-priority patching target given the sensitive nature of password vaults.
👁️ 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.

http.title:"PassPortal"
http.html:"PassPortal"
product:"N-able PassPortal"
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-15580/ · 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.