CVE-2026-104895
HighCVSS 7.5Exploitation Probability (EPSS)
Low risk32th percentile - higher than 32% of all known CVEs
Summary
The asynchronous Smile parser (NonBlockingByteArrayParser) uses a raw-binary length prefix from untrusted input to allocate a byte[] before the body is read, with no upper bound and no overflow check. On the raw-binary marker 0xFD, _decodeVInt() computes the value without the overflow guard present in the blocking parser, and _startRawBinary immediately allocates the declared length. A roughly ten-byte input can force an allocation of about 2 GB, causing OutOfMemoryError or NegativeArraySizeException.
Risk Assessment
An attacker can remotely submit a short payload that exhausts memory or triggers an uncaught exception, crashing the processing thread or the endpoint. 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 and length limit to the asynchronous Smile parser. Until patched, consider limiting exposure of endpoints that accept Smile 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)
The asynchronous Smile parser (NonBlockingByteArrayParser) uses a raw-binary length prefix taken from untrusted input to allocate a byte[] before the body is read, with no upper bound and no overflow check. On the raw-binary marker 0xFD, _decodeVInt() computes (value << 6) + (i & 0x3F) without the (value >>> 25) != 0 overflow guard present in the blocking SmileParser._readUnsignedVInt, and _startRawBinary then allocates the declared length immediately. A Smile feed of roughly ten bytes can therefore force an eager allocation of approximately 2 GB, producing an OutOfMemoryError on reactive or asynchronous Smile endpoints. A VInt crafted to overflow int yields a negative length and a NegativeArraySizeException, a RuntimeException that is not a JacksonException and so escapes the parser contract. Either outcome crashes the request or processing thread. This is the same class of issue as CVE-2020-28491 in the CBOR parser of this library, which was fixed with a LONGEST_NON_CHUNKED_BINARY guard; the asynchronous Smile parser never received the equivalent guard. No privileges or user interaction beyond the ability to submit data for parsing are required.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

