2026-05-01 10:0CVE-2026-42779apache
PUBLISHED5.2CWE-502

Apache MINA: AbstractIoBuffer.resolveClass() null-clazz Branch Skips acceptMatchers Filter — Full Object Deserialization RCE (take 2)

The fix for CVE-2026-41635 was not applied to the 2.1.X and 2.2.X branches. Here was the original issue description:

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.1.0 <= 2.1.11, and 2.2.0 <= 2.2.6.

The problem is resolved in Apache MINA 2.1.12, and 2.2.7 by

applying the classname allowlist earlier.

Affected are applications using Apache MINA that call IoBuffer.getObject().

Applications using Apache MINA are advised to upgrade.

Problem type

Affected products

Apache Software Foundation

Apache MINA

<= 2.2.6 - AFFECTED

<= 2.1.11 - AFFECTED

References

JSON source

https://cveawg.mitre.org/api/cve/CVE-2026-42779
Click to expand
{
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "cveMetadata": {
    "cveId": "CVE-2026-42779",
    "assignerOrgId": "f0158376-9dc2-43b6-827c-5f631a4d8d09",
    "assignerShortName": "apache",
    "dateUpdated": "2026-05-01T10:00:43.712Z",
    "dateReserved": "2026-04-29T13:32:57.549Z",
    "datePublished": "2026-05-01T10:00:43.712Z",
    "state": "PUBLISHED"
  },
  "containers": {
    "cna": {
      "providerMetadata": {
        "orgId": "f0158376-9dc2-43b6-827c-5f631a4d8d09",
        "shortName": "apache",
        "dateUpdated": "2026-05-01T10:00:43.712Z"
      },
      "title": "Apache MINA: AbstractIoBuffer.resolveClass() null-clazz Branch Skips acceptMatchers Filter — Full Object Deserialization RCE (take 2)",
      "descriptions": [
        {
          "lang": "en",
          "value": "The fix for CVE-2026-41635 was not applied to the 2.1.X and 2.2.X branches. Here was the original issue description:\n\n\n\n\n\n\n\n\n\n\n\nApache 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.\n\n\n\n\nThe fix checks if the class is present in the accepted class filter before calling Class.forName(). \n\n\n\n\n\n\nAffected versions are Apache MINA 2.1.0 <= 2.1.11, and 2.2.0 <= 2.2.6.\n\n\n\n\n\nThe problem is resolved in Apache MINA 2.1.12, and 2.2.7 by \napplying the classname allowlist earlier.\n\n\n\n\n\nAffected are applications using Apache MINA that call  IoBuffer.getObject().\n\n\n\n\n\nApplications using Apache MINA are advised to upgrade.",
          "supportingMedia": [
            {
              "type": "text/html",
              "base64": false,
              "value": "<div><div>The fix for CVE-2026-41635 was not applied to the 2.1.X and 2.2.X branches. Here was the original issue description:</div><div><div></div></div><br></div><div><br></div><div>Apache <b>MINA</b>'s <i>AbstractIoBuffer.resolveClass()</i> 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.</div><div><br></div><div>The fix checks if the class is present in the accepted class filter <b>before</b> calling <i>Class.forName()</i>. </div><div><br></div><div></div>Affected versions are Apache MINA 2.1.0 &lt;= 2.1.11, and 2.2.0 &lt;= 2.2.6.\n<br>\n\n<br>\nThe problem is resolved in Apache MINA 2.1.12, and 2.2.7 by \napplying the classname allowlist earlier.\n<br>\n\n<br>\nAffected are applications using Apache MINA that call  IoBuffer.getObject().\n<br>\n\n<br>\nApplications using Apache MINA are advised to upgrade."
            }
          ]
        }
      ],
      "affected": [
        {
          "vendor": "Apache Software Foundation",
          "product": "Apache MINA",
          "collectionURL": "https://repo.maven.apache.org/maven2",
          "packageName": "org.apache.mina:mina-core",
          "defaultStatus": "unaffected",
          "versions": [
            {
              "version": "2.2.X",
              "status": "affected",
              "versionType": "semver",
              "lessThanOrEqual": "2.2.6"
            },
            {
              "version": "2.1.X",
              "status": "affected",
              "versionType": "semver",
              "lessThanOrEqual": "2.1.11"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "lang": "en",
              "description": "CWE-502 Deserialization of Untrusted Data",
              "cweId": "CWE-502",
              "type": "CWE"
            }
          ]
        }
      ],
      "references": [
        {
          "url": "https://lists.apache.org/thread/fhlx5k91hrkgyzh7yk1nghrn3k27gxy0",
          "tags": [
            "vendor-advisory"
          ]
        }
      ],
      "metrics": [
        {
          "format": "CVSS",
          "scenarios": [
            {
              "lang": "en",
              "value": "GENERAL"
            }
          ],
          "cvssV3_1": {
            "version": "3.1",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
            "attackVector": "NETWORK",
            "attackComplexity": "LOW",
            "privilegesRequired": "NONE",
            "userInteraction": "NONE",
            "scope": "UNCHANGED",
            "confidentialityImpact": "HIGH",
            "integrityImpact": "HIGH",
            "availabilityImpact": "HIGH",
            "baseScore": 9.8,
            "baseSeverity": "CRITICAL"
          }
        }
      ],
      "credits": [
        {
          "lang": "en",
          "value": "Venkatraman Kumar, Securin",
          "type": "reporter"
        }
      ]
    }
  }
}