CVE-2026-39824
Low · 3.3CVSS
3.3
EPSS
0.2%
Published
May 22, 2026
CISA due date
—
Cloudanix analysis
A software component may mishandle extremely long text and make the wrong local decision instead of rejecting it.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Data Tampering
- Component
- Library
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The flaw is an integer/length validation issue in NewNTUnicodeString. NTUnicodeString length fields are limited to a 16-bit byte count; when input exceeds that maximum, the function can silently truncate the resulting string instead of rejecting it. Software that relies on the returned value for security-sensitive comparisons, path handling, object names, access checks, allow/deny decisions, or integrity validation could make decisions on a shortened value that differs from the original attacker-supplied input. The assessed impact is limited to low-integrity effects, requires local privileges, and there is no direct confidentiality or availability impact indicated by the CVSS vector.
Why it matters to the business
The most likely business risk is incorrect handling of unusually long Windows-style Unicode strings in applications that use this function, potentially allowing local users to bypass validation logic or cause incorrect object, path, or policy decisions. The current public exploitation signal is low: EPSS is 0.00114 and flat over 30 days, it is not in CISA KEV, it is not known to be used in ransomware campaigns, and no exploit maturity is reported. Even so, organizations that build endpoint agents, administrative tools, installers, identity tooling, or Windows integrations using the affected code path should treat it as a code-quality and integrity-risk fix, especially where local untrusted users can influence string inputs.
How an attack unfolds
An attacker first needs local access or the ability to influence input processed by software that calls NewNTUnicodeString. They supply an extremely long Unicode string whose byte length exceeds the maximum representable NTUnicodeString length. Instead of failing closed, the function returns a truncated string. If the consuming application compares, authorizes, opens, logs, or routes operations based on that truncated value, the attacker may be able to create a mismatch between the value validated by the application and the value originally intended or supplied. Practical exploitation depends heavily on the caller: the vulnerability is only meaningful where truncation changes a security-relevant decision, such as matching an allowed name prefix, resolving an object path, or enforcing a local policy.
How to fix it
Upgrade to a vendor-provided fixed version as soon as one is available for the affected package or product. No affected products or exact fixed versions were provided in the input, so engineering teams should inventory dependencies that expose or vendor NewNTUnicodeString and track the upstream advisory for a corrected release. Where immediate patching is not possible, add defensive validation at call sites: reject strings whose encoded byte length exceeds the NTUnicodeString 16-bit maximum before conversion, treat overflow as an error, avoid security decisions based on silently converted values, and add tests for boundary values around 65,535 bytes. Prefer fail-closed behavior for path, object-name, account-name, policy, and authorization-related conversions.
How to confirm the fix worked
Confirm that deployed software uses a corrected implementation that checks for NTUnicodeString length overflow and returns an error instead of a truncated value. Review dependency manifests, module lockfiles, vendored source, and build artifacts for affected implementations of NewNTUnicodeString. Add or run regression tests that pass Unicode strings at, below, and above the 16-bit byte-length limit and verify that oversized inputs are rejected. For applications with security-sensitive string handling, perform targeted tests against local interfaces that accept long path, object, account, or policy names and confirm the application fails safely without accepting, normalizing, or acting on truncated values.
Typical attack path
- Gain local authenticated access or identify a local interface, CLI, service, plugin, or IPC mechanism that accepts user-controlled Unicode string input.
- Determine whether the target software uses NewNTUnicodeString or affected code that converts long strings into NTUnicodeString values.
- Craft an input string whose encoded byte length exceeds the 16-bit NTUnicodeString maximum.
- Submit the oversized string to trigger silent truncation instead of an error.
- Abuse any resulting mismatch between the original input and the truncated value to influence a local integrity-sensitive decision, such as validation, object selection, path handling, or policy enforcement.
- Verify whether the application performed the unintended action, accepted a value it should have rejected, or logged/processed a different value than was supplied.
How to detect it
There are no reliable universal indicators of prior exploitation because this is a logic flaw in string conversion and exploitation would appear as application-specific misuse of oversized Unicode input. Investigations should focus on applications known to call NewNTUnicodeString or related NTUnicodeString conversion routines. Review application logs, Windows Event Logs, EDR telemetry, command-line histories, IPC/service request logs, installer or agent logs, and audit logs for unusually long Unicode strings, repeated boundary-testing behavior, unexpected truncation, validation mismatches, or local operations involving paths/object names/account names/policy names near or above 65,535 bytes. Look for sequences where a local low-privileged user submitted very long names followed by an unexpected successful administrative, policy, file, registry, or object-management action. If source-level or debug logs are available, search for conversion errors, length overflows, or discrepancies between original and converted string values. Because no threat actors, campaigns, ransomware use, or public exploit artifacts are reported, detection should be behavior-based rather than IOC-based.
What your security team should do
- Inventory internally developed and third-party software that uses NewNTUnicodeString or vendored code providing NTUnicodeString conversion, especially Windows-focused tools and agents.
- Prioritize remediation for software where local users can supply names, paths, object identifiers, or policy values that influence authorization or integrity-sensitive operations.
- Coordinate with engineering teams to add input-length validation and regression tests if no upstream fixed version is currently available.
- Monitor upstream vendor advisories and package repositories for fixed releases, since no exact affected products or fixed versions were provided.
- Treat this as lower immediate exploitation urgency given low CVSS, flat low EPSS, no KEV listing, and no known public exploit maturity, but include it in regular patch and secure-coding cycles.
- Review logs and telemetry for unusual failures or accepted inputs involving extremely long Unicode strings around local administrative, installation, policy, or object-management operations.
The record
NewNTUnicodeString does not check for string length overflow. When provided with a string that overflows the maximum size of a NTUnicodeString (a 16-bit number of bytes), it returns a truncated string rather than an error.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| openSUSE:Tumbleweed | rclone | 0 | 1.74.2-1.1 |
Related vulnerabilities
- CVE-2026-49980 Rclone is a command-line program to sync files and directories to and from different… Also affects rclone
- CVE-2026-42507 When returning errors, functions in the net/textproto package would include its input as… Also affects rclone
- CVE-2026-42504 Decoding a maliciously-crafted MIME header containing many invalid encoded-words can… Also affects rclone
- CVE-2026-27145 (*x509.Certificate).VerifyHostname previously called matchHostnames in a loop over all… Also affects rclone
- CVE-2026-44740 Billy is an interface filesystem abstraction for Go. Also affects rclone
- CVE-2026-42500 Decoding a paletted BMP file with an out-of-range palette index results in a panic when… Also affects rclone
- CVE-2026-27136 Parsing arbitrary HTML which is then rendered using Render can result in an unexpected… Also affects rclone
- CVE-2026-39821 The ToASCII and ToUnicode functions incorrectly accept Punycode-encoded labels that… Also affects rclone