Skip to main content

WeKnora EUVDEUVD-2026-111552

| CVE-2026-118376 MEDIUM
Server-Side Request Forgery (SSRF) (CWE-918)
2026-10-28 VulnCheck GHSA-29gq-28qv-vr5m
6.0
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate with low-privilege WeKnora account
  2. Delivery
    Submit URL encoding internal IP as NAT64 IPv6
  3. Exploit
    Bypass isRestrictedIP() public-address check
  4. Execution
    Server fetches internal or metadata endpoint
  5. Impact
    Exfiltrate internal data or cloud credentials

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Credential Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires an authenticated low-privilege account (PR:L) with access to the web_fetch tool or URL-based knowledge import feature. The attacker must supply a URL whose hostname resolves to a NAT64 well-known-prefix IPv6 address (64:ff9b::/96, RFC 6052) - or the deprecated IPv4-compatible ::a.b.c.d form - that embeds a restricted internal IPv4 such as a cloud metadata address (169.254.169.254) or RFC1918 host. Limiting factors: only WeKnora versions 0.2.11 through before 0.8.2 are affected; the AT:P metric reflects a required condition (the server must have a usable network path to the embedded target for the fetch to succeed); authentication is mandatory; and impact is confidentiality-only (no integrity or availability effect). Reaching cloud credentials additionally depends on the instance running in a cloud environment with an accessible metadata endpoint.

Impact

The vendor CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N, base 6.0, medium) describes a network-reachable but authenticated flaw whose only impact is confidentiality on the vulnerable system. The AT:P (attack requirement present) and PR:L (low-privilege authentication) signals both temper the network vector: this is not an unauthenticated internet-wide bug. No EPSS score is provided in the input, so exploitation probability cannot be quantified, and the vulnerability is not listed in CISA KEV - there is no confirmed active exploitation. The vuln.today decision label is 'this_month,' indicating a real but non-emergency remediation priority rather than act_now. The practical severity is driven by what SSRF to cloud metadata can yield: although rated confidentiality-only, reaching an endpoint like 169.254.169.254 can expose cloud credentials that enable follow-on compromise, so the downstream consequence may exceed the base score. Net assessment: a genuine, patch-this-cycle issue for operators of affected WeKnora instances, not a drop-everything emergency, but higher-impact than its 6.0 implies where the host runs in a cloud environment with a reachable metadata service. Missing data to note: no EPSS and no CVSS 3.1 vector were supplied; only the 4.0 vector is available.

Exploit ScenarioDerived

A low-privileged authenticated user of WeKnora submits a URL (via the web_fetch tool or URL-based knowledge import) whose host resolves to a NAT64-prefixed IPv6 address such as 64:ff9b::a9fe:a9fe, which embeds the internal IPv4 169.254.169.254. The flawed isRestrictedIP() fails to look inside the NAT64 encoding and classifies the address as public, so the server dials it and returns internal-service or cloud-metadata content to the attacker. No public exploit is identified at time of analysis; a VulnCheck advisory and a GitHub issue describe the weakness.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 28, 2026

Server-side request forgery guard bypass in WeKnora: the isRestrictedIP()/ipclass address classifier treats NAT64-encoded IPv6 addresses (64:ff9b::/96) and deprecated IPv4-compatible ::a.b.c.d forms as ordinary public addresses, so a restricted embedded IPv4 such as 169.254.169.254 or an RFC1918 host slips past the filter. Exploitation requires an authenticated low-privilege account (PR:L) able to reach the web_fetch tool or URL-based knowledge import, and a network path from the server to the embedded target (AT:P); impact is confidentiality-only, with internal service or cloud metadata exposure but no integrity or availability effect. All versions from 0.2.11 through before 0.8.2 are affected and fixed in v0.8.2; no public exploit was identified at time of analysis, the issue carries a medium CVSS 4.0 base score of 6.0, and no CISA KEV entry exists.

RemediationAI

Upgrade to WeKnora v0.8.2, which is the vendor-released fix version (https://github.com/Tencent/WeKnora/releases/tag/v0.8.2). The two patch commits are ff818b681f10bc29edbc48fe35f00009dc276bfa (adds NAT64 and IPv4-compatible branches to _is_restricted_ip in docreader/utils/ssrf.py and repoints the Yunzhijia webhook dialer at the shared classifier) and d7ccd5ba517cc3968e6d5000a2ab0f4b51ef1dda (introduces the internal/ipclass package that decodes embedded IPv4 addresses from 6to4, Teredo, NAT64 64:ff9b::/96 and ::a.b.c.d); both are required, since the Python and Go guards are independent code paths. The vendor's own framing in the commit message is that hand-rolled per-call-site 'is this private' checks are the root cause, so operators who have locally patched or forked these files should rebase onto v0.8.2 rather than keep a one-off fix. Until an upgrade is deployed, exposure is bounded by the authenticated, low-privilege prerequisite: restricting which accounts can use the web_fetch tool and URL-based knowledge import, and refusing imports of URLs whose hostname is an IP literal, reduces the attack surface at the cost of breaking legitimate URL ingestion for those users. Deployments running in a cloud environment should also treat the metadata endpoint as reachable-by-design from the container network, since that path is what turns a successful bypass into credential disclosure; blocking egress from the WeKnora container to 169.254.169.254 at the network layer is an effective stopgap but will break any legitimate instance-metadata-dependent functionality. Vendor advisory context is available via https://www.vulncheck.com/advisories/weknora-before-0.8.2-ssrf-guard-bypass-via-nat64-ipv6-addresses.

Affected VersionsENISA

WeKnora 0.2.11 <0.8.2

Affected Packages

euvd weknora fix: 0.8.2

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The flaw is CWE-918 (server-side request forgery) rooted in address classification rather than in the fetch mechanism itself. WeKnora guards outbound requests in two places - a Go side under internal/utils (and previously ad-hoc checks such as internal/im/yunzhijia/url.go) and a Python side under docreader/utils/ssrf.py - and both relied on the standard library's notion of 'private'. Go's net.IP.IsPrivate() covers RFC1918 and fc00::/7 but not fec0::/10 site-local, not 100.64.0.0/10 carrier-grade NAT, and it never looks inside address encodings that carry an IPv4 payload: 6to4, Teredo, NAT64's well-known prefix 64:ff9b::/96 (RFC 6052) and the deprecated IPv4-compatible ::a.b.c.d form. Python's ipaddress module exposes is_private, sixtofour and ipv4_mapped accessors but has no equivalent for the NAT64 prefix or the ::a.b.c.d form, so ::169.254.169.254 and its NAT64 spelling read as ordinary public IPv6. The upstream fix introduces a shared internal/ipclass package (Public, Invalid, Unspecified, Loopback, Private, CGNAT, LinkLocal, Multicast, SiteLocalIPv6, Reserved, Documentation, Translated) that decodes the embedded IPv4 from 6to4, Teredo, NAT64 and IPv4-compatible addresses, and mirrors that logic in the Python docreader path so the two implementations cannot drift apart again; the fix commits also replace the hand-rolled webhook dialer check with ipclass.IsPublic. The affected CPE is cpe:2.3:a:tencent:weknora:*:*:*:*:*:*:*:*, and the assessed CVSS 3.1 vector is AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N, i.e. network-reachable, unauthenticated only in the sense that no UI interaction is needed but explicitly requiring a low-privilege authenticated session, and affecting confidentiality only.

Know when Weknora gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 6.0 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 6.5 MEDIUM

Network-reachable but needs a low-privilege account (PR:L); crafting the NAT64 URL is straightforward (AC:L); confidentiality-only SSRF data exposure, so C:H, I:N, A:N.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

WeKnora before 0.8.2 contains a server-side request forgery vulnerability in isRestrictedIP() that misclassifies NAT64-prefixed IPv6 addresses as public. Authenticated attackers can supply URLs resolving to NAT64 encodings of internal addresses via web_fetch or URL-based knowledge import to reach internal services or cloud metadata endpoints.

Threat Intelligence Overview

EPSS Score
0.3%
Top 80% exploitable
Prevalence
Low
niche open-source Tencent RAG/knowledge framework, limited production footprint
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

30
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +30
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

CVE-2026-22688 CRITICAL POC
9.9 Jan 10

WeKnora LLM framework (before 0.2.5) allows authenticated users to inject MCP stdio commands that the server executes as

CVE-2026-30861 CRITICAL POC
9.9 Mar 07

OS command injection in WeKnora from version 0.2.5 allows authenticated users to execute arbitrary system commands. CVSS

CVE-2026-30860 CRITICAL POC
9.9 Mar 07

SQL injection in WeKnora LLM document understanding framework allows authenticated users to extract arbitrary database c

CVE-2026-30855 HIGH POC
8.8 Mar 07

Insufficient authorization checks in WeKnora's tenant management endpoints allow any authenticated user to read, modify,

CVE-2026-30858 MEDIUM POC
6.5 Mar 07

DNS rebinding in WeKnora's web_fetch tool allows authenticated attackers to bypass URL validation and access internal re

CVE-2026-30247 MEDIUM POC
5.9 Mar 07

WeKnora's document import feature is vulnerable to Server-Side Request Forgery through HTTP redirects, allowing unauthen

CVE-2026-22687 MEDIUM POC
5.6 Jan 10

WeKnora versions before 0.2.5 allow unauthenticated attackers to bypass database query restrictions through prompt injec

CVE-2025-11046 MEDIUM POC
5.5 Sep 26

A security flaw has been discovered in Tencent WeKnora 0.1.0. Rated medium severity (CVSS 6.9), this vulnerability is re

CVE-2026-30857 MEDIUM POC
5.3 Mar 07

Weknora versions up to 0.3.0 is affected by authorization bypass through user-controlled key (CVSS 5.3).

CVE-2026-91750 HIGH
7.1 Sep 15

WeKnora's URL-based document ingestion endpoint (POST /api/v1/knowledge-bases/:id/knowledge/url) allows authenticated us

CVE-2026-108821 LOW POC
2.1 Oct 12

SQL injection in Tencent WeKnora through version 0.8.1 allows an authenticated, low-privileged remote attacker to bypass

CVE-2026-8786 LOW POC
2.1 May 18

Authorization bypass in Tencent WeKnora's Config API endpoint allows authenticated attackers to access unauthorized know

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy