Improper input validation in Apache UIMA Java SDK Core
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Code execution
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Partial Red Hat: 1 without a fix
Attack profile from CVSS 3.1 · CISA ADP. Fix status from CNA, GitHub and Red Hat. Impact type from CWE-502.
Summary
Deserialization of Untrusted Data, Improper Input Validation vulnerability in Apache UIMA Java SDK, Apache UIMA Java SDK, Apache UIMA Java SDK, Apache UIMA Java SDK.This issue affects Apache UIMA Java SDK: before 3.5.0. Users are recommended to upgrade to version 3.5.0, which fixes the issue. There are several locations in the code where serialized Java objects are deserialized without verifying the data. This affects in particular: * the deserialization of a Java-serialized CAS, but also other binary CAS formats that include TSI information using the CasIOUtils class; * the CAS Editor Eclipse plugin which uses the the CasIOUtils class to load data; * the deserialization of a Java-serialized CAS of the Vinci Analysis Engine service which can receive using Java-serialized CAS objects over network connections; * the CasAnnotationViewerApplet and the CasTreeViewerApplet; * the checkpointing feature of the CPE module. Note that the UIMA framework by default does not start any remotely accessible services (i.e. Vinci) that would be vulnerable to this issue. A user or developer would need to make an active choice to start such a service. However, users or developers may use the CasIOUtils in their own applications and services to parse serialized CAS data. They are affected by this issue unless they ensure that the data passed to CasIOUtils is not a serialized Java object. When using Vinci or using CasIOUtils in own services/applications, the unrestricted deserialization of Java-serialized CAS files may allow arbitrary (remote) code execution. As a remedy, it is possible to set up a global or context-specific ObjectInputFilter (cf. https://openjdk.org/jeps/290 and https://openjdk.org/jeps/415 ) if running UIMA on a Java version that supports it. Note that Java 1.8 does not support the ObjectInputFilter, so there is no remedy when running on this out-of-support platform. An upgrade to a recent Java version is strongly recommended if you need to secure an UIMA version that is affected by this issue. To mitigate the issue on a Java 9+ platform, you can configure a filter pattern through the "jdk.serialFilter" system property using a semicolon as a separator: To allow deserializing Java-serialized binary CASes, add the classes: * org.apache.uima.cas.impl.CASCompleteSerializer * org.apache.uima.cas.impl.CASMgrSerializer * org.apache.uima.cas.impl.CASSerializer * java.lang.String To allow deserializing CPE Checkpoint data, add the following classes (and any custom classes your application uses to store its checkpoints): * org.apache.uima.collection.impl.cpm.CheckpointData * org.apache.uima.util.ProcessTrace * org.apache.uima.util.impl.ProcessTrace_impl * org.apache.uima.collection.base_cpm.SynchPoint Make sure to use "!*" as the final component to the filter pattern to disallow deserialization of any classes not listed in the pattern. Apache UIMA 3.5.0 uses tightly scoped ObjectInputFilters when reading Java-serialized data depending on the type of data being expected. Configuring a global filter is not necessary with this version.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| Apache | Apache UIMA Java SDK Core | before 3.5.0 | 3.5.0 | Patch available | CNA |
| Apache | Apache UIMA Java SDK CPE | before 3.5.0 | 3.5.0 | Patch available | CNA |
| Apache | Apache UIMA Java SDK Vinci adapter | before 3.5.0 | 3.5.0 | Patch available | CNA |
| Apache | Apache UIMA Java SDK tools | before 3.5.0 | 3.5.0 | Patch available | CNA |
| — | org.apache.uima:uimaj (Maven) | before 3.5.0 | 3.5.0 | Patch available | GHSA-5r8j-qmcm-7g7q |
- Apache UIMA Java SDK Core VendorApache Affected before 3.5.0 Fixed in 3.5.0 Patch available CNA
- Apache UIMA Java SDK CPE VendorApache Affected before 3.5.0 Fixed in 3.5.0 Patch available CNA
- Apache UIMA Java SDK Vinci adapter VendorApache Affected before 3.5.0 Fixed in 3.5.0 Patch available CNA
- Apache UIMA Java SDK tools VendorApache Affected before 3.5.0 Fixed in 3.5.0 Patch available CNA
- org.apache.uima:uimaj (Maven) Vendor— Affected before 3.5.0 Fixed in 3.5.0 Patch available GHSA-5r8j-qmcm-7g7q
Remediation
- Fix · CNA Apache UIMA Java SDK Core (Apache Software Foundation) Fixed in 3.5.0
- Fix · CNA Apache UIMA Java SDK CPE (Apache Software Foundation) Fixed in 3.5.0
- Fix · CNA Apache UIMA Java SDK Vinci adapter (Apache Software Foundation) Fixed in 3.5.0
- Fix · CNA Apache UIMA Java SDK tools (Apache Software Foundation) Fixed in 3.5.0
- Fix · GHSA-5r8j-qmcm-7g7q org.apache.uima:uimaj (Maven) Fixed in 3.5.0 Advisory →
Vendor assessments
Red Hat
Red Hat rating: Important. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Red Hat JBoss Data Virtualization 6 | Affected | No fix planned: Out of support scope |
Not affected: 2 products
- Red Hat Fuse 7
- Red Hat Integration Camel K 1
Timeline
- 2026-10-02 Threatist record created from CVE-2023-39913
- 2026-10-03 Alias added: GHSA-5r8j-qmcm-7g7q
References
More Apache Uimaj vulnerabilities
- TI-2017-11465 XML external entity injection in Apache UIMA CVSS 3.0MEDIUM 6.5
- TI-2022-13992 Apache UIMA prior to 3.3.1 has a path traversal vulnerability when extracting (PEAR) archives CVSS 3.1HIGH 7.5
Sources
- CVE-2023-39913 · CVE Program
- CVE-2023-39913 · NVD
- FIRST EPSS
- GHSA-5r8j-qmcm-7g7q · GitHub Advisory Database · CC BY 4.0
- CVE-2023-39913 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences