Apache MINA: AbstractIoBuffer.resolveClass() null-clazz Branch Skips acceptMatchers Filter — Full Object Deserialization RCE
Apache MINA's AbstractIoBuffer.resolveClass() contains two branches, one of them (for static classes or primitive types) does not check the class at all, bypassing the classname allowlist and allowing arbitrary code to be executed. The fix checks if the class is present in the accepted class filter before calling Class.forName(). Affected versions are Apache MINA 2.0.0 <= 2.0.27, 2.1.0 <= 2.1.10, and 2.2.0 <= 2.2.5. The problem is resolved in Apache MINA 2.0.28, 2.1.11, and 2.2.6 by applying the classname allowlist earlier. Affected are applications using Apache MINA that call IoBuffer.getObject(). Applications using Apache MINA are advised to upgrade.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-41635
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 8 Nov 2026, 01:28 UTC · Revision 1
Source evidence
Apache MINA: AbstractIoBuffer.resolveClass() null-clazz Branch Skips acceptMatchers Filter — Full Object Deserialization RCE
core-osv · Original sourcePublished 27 Apr 2026, 08:59 UTC
Apache MINA's AbstractIoBuffer.resolveClass() contains two branches, one of them (for static classes or primitive types) does not check the class at all, bypassing the classname allowlist and allowing arbitrary code to be executed. The fix checks if the class is present in the accepted class filter before calling Class.forName(). Affected versions are Apache MINA 2.0.0 <= 2.0.27, 2.1.0 <= 2.1.10, and 2.2.0 <= 2.2.5. The problem is resolved in Apache MINA 2.0.28, 2.1.11, and 2.2.6 by applying the classname allowlist earlier. Affected are applications using Apache MINA that call IoBuffer.getObject(). Applications using Apache MINA are advised to upgrade.
osv:CVE-2026-41635
Complete source record
{
"id": "c3a2836fffa28f186605a700fbcd38e299c0cb38505bbdcc61f8e94647d594ab",
"url": "https://osv.dev/vulnerability/CVE-2026-41635",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Apache MINA: AbstractIoBuffer.resolveClass() null-clazz Branch Skips acceptMatchers Filter — Full Object Deserialization RCE",
"summary": "Apache MINA's AbstractIoBuffer.resolveClass() contains two branches, one of them (for static classes or primitive types) does not check the class at all, bypassing the classname allowlist and allowing arbitrary code to be executed. The fix checks if the class is present in the accepted class filter before calling Class.forName(). Affected versions are Apache MINA 2.0.0 <= 2.0.27, 2.1.0 <= 2.1.10, and 2.2.0 <= 2.2.5. The problem is resolved in Apache MINA 2.0.28, 2.1.11, and 2.2.6 by applying the classname allowlist earlier. Affected are applications using Apache MINA that call IoBuffer.getObject(). Applications using Apache MINA are advised to upgrade.",
"evidence": "osv:CVE-2026-41635",
"products": [],
"severity": "critical",
"structured": {
"id": "CVE-2026-41635",
"aliases": [
"CVE-2026-41635",
"GHSA-8297-v2rf-2p32"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/apache/mina",
"type": "GIT",
"events": [
{
"introduced": "98aa4b51a9d1dbb3d91ae7961bc7bd7b356fb711"
},
{
"fixed": "fe685ab35907219d9e5a8d3cd758adacb6607263"
},
{
"introduced": "d595254cb8c254204d794457d42219321a6a2306"
},
{
"fixed": "06b58eb0a75ed46b60c179a9c8434b9fbc0f0e09"
},
{
"introduced": "079d4592943ff892504e11a331c4f6601b7a04ec"
},
{
"fixed": "a7a9169c0cffbd2c007e6c899fef68396f240f60"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:apache:mina:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.0.0"
},
{
"fixed": "2.0.28"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:apache:mina:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.1.0"
},
{
"fixed": "2.1.11"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:apache:mina:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.2.0"
},
{
"fixed": "2.2.6"
}
],
"source": "CPE_RANGE"
}
]
}
}
],
"versions": [
"2.2.5",
"2.1.10",
"2.2.4",
"2.1.9",
"2.2.3",
"2.1.8",
"2.1.7",
"2.2.2",
"2.1.6",
"2.1.5",
"2.1.4",
"2.1.3",
"2.1.2",
"2.1.1",
"2.1.0"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-41635.json"
}
}
],
"modified": "2026-10-28T02:30:52.349351572Z",
"provider": "osv",
"references": [
"https://repo.maven.apache.org/maven2",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/41xxx/CVE-2026-41635.json",
"https://lists.apache.org/thread/1l91w1mqsb3lwfd504fs045ylxntt2tm",
"https://nvd.nist.gov/vuln/detail/CVE-2026-41635"
],
"provider_metadata": {
"cwe_ids": [
"CWE-502"
],
"cna_assigner": "apache",
"unresolved_ranges": [
{
"extracted_events": [
{
"range": [
{
"introduced": "2.2.0"
},
{
"last_affected": "2.2.5"
},
{
"introduced": "2.1.0"
},
{
"last_affected": "2.1.10"
},
{
"introduced": "2.0.0"
},
{
"last_affected": "2.0.27"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandardRange"
}
]
}
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/41xxx/CVE-2026-41635.json"
}
},
"related_cves": [
{
"value": "CVE-2026-41635",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 521349,
"published_at": "2026-04-27T08:59:50.652+00:00"
}