SecurinZero Days
    Email Us
    Zero-Day Research/CVE-2026-44041
    ▲ MediumCVSS 4.3✓ Patched

    vncWc2Mb wcslen Before Bounds Check (UltraVNC)

    UltraVNC through 1.8.2.2 contains an out-of-bounds read in the wide-string to multibyte conversion helper. In rfb/dh.cpp:204, the vncWc2Mb() function passes a caller-supplied WCHAR pointer to wcslen() before any bounds check. If the caller provides a wide-character buffer that is not properly NUL-terminated, wcslen() reads past the end of the buffer until it encounters a NUL wchar, resulting in an out-of-bounds read. Under typical Win32 API usage this requires an abnormal caller contract. Impact is limited to a potential information disclosure from adjacent memory regions or a process crash (denial of service) if the over-read crosses a page boundary.

    CVE IDCVE-2026-44041
    CVSS v3.14.3 Medium
    VendorUltraVNC
    CWECWE-125: Out-of-bounds Read
    DisclosedJun 3, 2026
    StatusFixed
    All advisories
    • 01Description
    • 02Proof of Concept
    • 03Vulnerable Code
    • 04Trigger Conditions
    • 05Impact
    • 06Remediation
    • 07Timeline
    • 08References
    01/Description

    What this actually is.

    Technical background, root cause, and affected surface.

    In rfb/dh.cpp:204, vncWc2Mb() calls wcslen(widechar) before applying any bounds check. If a caller supplies a wide-character buffer without a NUL terminator, wcslen reads beyond the buffer until it encounters a NUL or crosses a page boundary, potentially causing a crash or adjacent memory disclosure.

    Vendor
    UltraVNC
    Product
    UltraVNC
    Severity
    Medium
    CVSS Score
    4.3
    Status
    Fixed
    Vector
    CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L
    CWE
    CWE-125: Out-of-bounds Read
    02/Proof of Concept

    From one request
    to root shell.

    Reproduced in a sandboxed environment. Requires only LAN or WiFi adjacency.

    4.3CVSS 3.1
    VectorCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L
    ScopeUnchanged
    ImpactC:N / I:N / A:L
    SeverityMedium

    No PoC — requires abnormal caller contract (non-NUL-terminated wide string).

    03/Vulnerable Code

    The bug, and the fix.

    int origlen = wcslen(widechar); // dh.cpp:204 — OOB read if not NUL-terminated if (origlen > length) origlen = length; // dh.cpp:205 — bounds check after the read

    Root cause: wcslen() called before bounds validation. Caller-provided length not used as upper bound for the length scan.

    04/Trigger Conditions

    When does this fire?

    All conditions must be true for the exploit to succeed.

    Caller passes a WCHAR* buffer without a NUL terminator to vncWc2Mb(). Under normal Win32 API usage this requires an explicit violation of the calling convention.

    05/Impact

    What an attacker does to you.

    Post-exploitation outcomes mapped to CVSS impact metrics.

    OOB read past end of wide string buffer. May cause process crash if read crosses unmapped page, or expose adjacent heap/stack data.

    06/Remediation

    Fix it. In this order.

    A runbook, not a checklist. Sequence matters — assume compromise before you act.

    Replace wcslen(widechar) with wcsnlen(widechar, length) using the caller-supplied length as scan maximum. Vendor fix applied: wcsnlen with explicit bound.

    Securin advisory — For coordinated remediation support or threat-actor briefings related to CVE-2026-44041, contact disclose@securin.io
    07/Disclosure Timeline

    Vendors moved in days.
    Attackers in hours.

    Reconstructed from vendor advisories, CISA bulletins, and Securin research records.

    2026-06-02: Discovered during audit; 2026-06-17: Reported to vendor; 2026-06-17: Fix validated; 2026-09-03: Planned public disclosure

    Timeline recorded · Disclosure coordinated by Securin

    08/References

    Cite, verify, go deeper.

    Primary sources — NVD, CISA KEV, and machine-readable IoC feed.

    NVD

    NVD — CVE-2026-44041

    nvd.nist.gov/vuln/detail/CVE-2026-44041 →
    SEC

    Securin VI — Full Technical Analysis

    vi.securin.io →
    REF

    CVE-2026-44041; rfb/dh.cpp:204-205; phase3_deep_analysis.md FINDING-004

    Let Securin level up your security posture.

    Get a live exposure assessment, threat-actor briefing tailored to your sector, and IoC mapping for your SIEM.

    Browse all advisories
    SecurinSecurinZero Days

    Securin's zero-day research operation combines frontier AI models with a decade of offensive expertise — discovering, validating, and coordinating the disclosure of high-impact vulnerabilities at a scale and speed no human team achieves alone.

    Glossary
    © 2026 Securin Inc · CVE Numbering Authority
    Privacy Policy·Data Processing Addendum