SecurinZero Days
    Email Us
    Zero-Day Research/CVE-2026-41635
    ▲ CriticalCVSS 9.8EPSS 0.0064%

    Apache MINA resolveClass() null-clazz Branch Skips acceptMatchers Filter - Full Deserialization RCE

    Apache MINA's AbstractIoBuffer.resolveClass() contains a code branch for static classes or primitive types that does not check against the acceptMatchers class filter, bypassing deserialization protection and enabling unauthenticated arbitrary code execution.

    CVE IDCVE-2026-41635
    CVSS v3.19.8 Critical
    VendorApache
    CWECWE-502: Deserialization of Untrusted Data
    DisclosedApr 27, 2026
    StatusPublished
    All advisories
    • 01Description
    • 02Proof of Concept
    • 03Vulnerable Code
    • 04Trigger Conditions
    • 05Impact
    • 06Remediation
    • 07Timeline
    • 08References
    01/Description

    What this actually is.

    Technical background, root cause, and affected surface.

    Apache MINA's AbstractIoBuffer.resolveClass() method has two code branches. One branch handles the case where clazz is null (for static classes or primitive types) and calls Class.forName() directly without checking against the acceptMatchers allowlist. This allows an attacker to craft a serialized payload that resolves through the null-clazz branch, completely bypassing all deserialization protection and deserializing arbitrary classes.

    Vendor
    Apache
    Product
    Apache Mina
    Severity
    Critical
    CVSS Score
    9.8
    Status
    Published
    CWE
    CWE-502: Deserialization of Untrusted Data
    Vector
    CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    02/Proof of Concept

    From one request
    to root shell.

    Reproduced in a sandboxed environment. Requires only LAN or WiFi adjacency.

    9.8CVSS 3.1
    VectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    ScopeUnchanged
    ImpactC:H / I:H / A:H
    SeverityCritical
    PoC · Exploitation Steps▲ trigger
    01No public PoC available
    03/Vulnerable Code

    The bug, and the fix.

    AbstractIoBuffer.java: resolveClass() - if (clazz == null) { return Class.forName(desc.getName()); } // No acceptMatchers check; filter only applied in non-null clazz branch

    Root cause: Incomplete filter coverage in resolveClass(): null-clazz branch does not invoke acceptMatchers check, allowing filter bypass for static class and primitive type descriptors

    04/Trigger Conditions

    When does this fire?

    All conditions must be true for the exploit to succeed.

    Unauthenticated attacker sends a crafted serialized payload to a MINA network endpoint containing a class descriptor for a static class or primitive type, causing resolveClass() to take the unfiltered null-clazz branch and deserialize an arbitrary gadget chain class

    05/Impact

    What an attacker does to you.

    Post-exploitation outcomes mapped to CVSS impact metrics.

    Arbitrary code execution on the MINA-based application host; complete bypass of all deserialization class filtering; full system compromise

    06/Remediation

    Fix it. In this order.

    A runbook, not a checklist. Sequence matters — assume compromise before you act.

    Upgrade to Apache MINA 2.0.28, 2.1.11, or 2.2.6. The fix adds the acceptMatchers filter check to the null-clazz branch in resolveClass() before calling Class.forName().

    Securin advisory — For coordinated remediation support or threat-actor briefings related to CVE-2026-41635, contact disclose@securin.io
    07/Disclosure Timeline

    Vendors moved in days.
    Attackers in hours.

    Reconstructed from vendor advisories, CISA bulletins, and Securin research records.

    Vendor notified

    2026-04-27: CVE published | 2026-04-27: Fix released in MINA 2.0.28, 2.1.11, 2.2.6

    Timeline recorded · Disclosure coordinated by Securin

    08/References

    Cite, verify, go deeper.

    Primary sources — NVD, CISA KEV, and machine-readable IoC feed.

    NVD

    NVD — CVE-2026-41635

    nvd.nist.gov/vuln/detail/CVE-2026-41635 →
    SEC

    Securin VI — Full Technical Analysis

    vi.securin.io →
    APACHE

    https://lists.apache.org/thread/1l91w1mqsb3lwfd504fs045ylxntt2tm

    https://lists.apache.org/thread/1l91w1mqsb3lwfd504fs045ylxntt2tm →

    Let Securin level up your security posture.

    Get a live exposure assessment, threat-actor briefing tailored to your sector, and IoC mapping for your SIEM.

    Browse all advisories
    SecurinSecurinZero Days

    Securin's zero-day research operation combines frontier AI models with a decade of offensive expertise — discovering, validating, and coordinating the disclosure of high-impact vulnerabilities at a scale and speed no human team achieves alone.

    Glossary
    © 2026 Securin Inc · CVE Numbering Authority
    Privacy Policy·Data Processing Addendum