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-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.
- CVE-2026-82158Critical
Dell Wyse Management Suite versions prior to 2609.0.0.155 contain a cross-site scripting vulnerability (improper neutralization of input during web page generation). A low-privileged attacker with remote access could exploit it to inject script.
- CVE-2026-121249Critical
Buffer overflow in ANGLE in Google Chrome prior to 157.0.8103.38 allowed a remote attacker to execute arbitrary code outside the sandbox via a crafted HTML page.
- CVE-2026-121247Critical
Buffer overflow in Dawn in Google Chrome on Android prior to 157.0.8103.38 allowed a remote attacker to potentially execute arbitrary code outside the sandbox via a crafted HTML page.
- CVE-2026-121246Critical
Use-after-free vulnerability in the WebGL component of Google Chrome on Android prior to 157.0.8103.38. A remote attacker could potentially execute arbitrary code outside the sandbox via a crafted HTML page.
- CVE-2026-121241Critical
Use-after-free vulnerability in the Navigation component of Google Chrome on Android prior to 157.0.8103.38. A remote attacker could potentially execute arbitrary code outside the sandbox via a crafted HTML page.
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

