CVE-2026-104016
HighCVSS 7.5Exploitation Probability (EPSS)
Elevated risk52th percentile - higher than 52% of all known CVEs
Summary
ProtobufParser parses length-prefixed protobuf string and bytes fields by checking (_inputPtr + len) <= _inputEnd and then calling _finishShortText(len), both using 32-bit signed integer arithmetic. When an attacker supplies a varint decoding to a length near Integer.MAX_VALUE, _inputPtr + len overflows to a negative value, the bounds check passes, and TextBuffer.expandCurrentSegment(len) performs Arrays.copyOf with no cap and throws OutOfMemoryError. maxStringLength and maxDocumentLength do not gate this path.
Risk Assessment
A remote attacker can submit a 33-byte payload that triggers OutOfMemoryError and crashes processing, and -Xmx tuning does not mitigate the issue. No privileges or user interaction beyond the ability to submit data for parsing are required.
Recommendation
Update the Jackson library to a version containing the fix that adds the overflow guard to the string-length call sites. Until patched, consider limiting exposure of endpoints that accept Protobuf data.
Related vulnerabilities
- CVE-2026-92190Critical
Quest Foglight for Databases contains a deserialization of untrusted data vulnerability in the baseRmiServiceExporter component. An unauthenticated remote attacker can execute arbitrary code in the context of SYSTEM.
- CVE-2026-92189Critical
In Quest Foglight for Databases, the writeTopologySectionToFile method does not validate a user-supplied path before using it in file operations. An unauthenticated remote attacker can execute arbitrary code in the context of SYSTEM.
- CVE-2026-92188Critical
The ForgeMBeanServerSupport module in Quest Foglight for Databases lacks authentication before allowing access to functionality. An unauthenticated remote attacker can execute arbitrary code in the context of SYSTEM.
- CVE-2026-121597Critical
In TOTOLINK A950RG version 4.1.2cu.5268_B20221104, the setAppEasyWizardConfig function in /cgi-bin/cstecgi.cgi mishandles the functionType argument, leading to a stack-based buffer overflow. The attack can be performed remotely and a public exploit is available.
- CVE-2026-114549Critical
The NoMachine nxwebrunner web service (listening on TCP port 4443 by default) contains a heap-based buffer overflow due to lack of validation of user-supplied data length. An unauthenticated remote attacker can execute arbitrary code in the context of the service account.
- CVE-2022-29966Critical
Emerson Ovation has several protocols that have no authentication, which could allow an attacker to change controller configuration or cause a denial-of-service condition.
- CVE-2026-22058Critical
StorageGRID versions 11.3 and higher allow an attacker with product-specific knowledge and the ability to communicate with the Grid Network on certain ports to make unauthorized requests.
- CVE-2026-120931Critical
Out of bounds write in WebGL in Google Chrome on Android prior to 156.0.8078.47 allowed a remote attacker to execute arbitrary code outside the sandbox via a crafted HTML page.
- CVE-2026-112354Critical
Etrel INCH AC charging station management web interface prior to firmware versions 7.1.2 and 8.0.1 contains a hard-coded default credentials vulnerability that allows remote attackers to gain full Administrator access by authenticating with the factory-default account. Attackers can log in over cleartext HTTP to obtain complete charger configuration, OCPP ChargePoint Identity, and CSMS WebSocket connection details, enabling unauthorized administrative control of the charging station.
- CVE-2026-95860Critical
In node-opcua (an OPC UA implementation for TypeScript and Node.js), versions 2.42.0 through 2.180.0 do not honor namespace-level access control configured via setDefaultRolePermissions for nodes without explicit per-node permissions. SessionContext.getApplicableRolePermissions reads a missing or null value instead of the configured namespace field, and the null result is treated permissively. As a result, an anonymous network client can write variables or call bound methods when an operator relied on restrictive namespace defaults.
Original NVD description (English source)
ProtobufParser parses length-prefixed protobuf string and bytes fields by checking (_inputPtr + len) <= _inputEnd and then, on the fast path, calling _finishShortText(len). Both use 32-bit signed integer arithmetic. When an attacker supplies a varint decoding to a length near Integer.MAX_VALUE, _inputPtr + len overflows to a negative value, the bounds check passes, and _finishShortText(len) reaches TextBuffer.expandCurrentSegment(len), which performs Arrays.copyOf with no cap and throws OutOfMemoryError: Requested array size exceeds VM limit. The JVM refuses arrays larger than Integer.MAX_VALUE - 8 before consulting available heap, so -Xmx tuning does not mitigate the issue. StreamReadConstraints.maxStringLength and maxDocumentLength do not gate this path: a 33-byte payload is far below any document-length cap and the string-length check does not fire before the allocation. This was confirmed empirically against shipping artifacts with maxStringLength, maxDocumentLength and maxNestingDepth all configured. A February 2026 hardening commit added the equivalent overflow guard to the packed-array-length and message-length paths but left the string-length call sites unguarded. No privileges or user interaction beyond the ability to submit data for parsing are required.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

