{"id":"CVE-2026-119280","aliases":["DEBIAN-CVE-2026-119280","EUVD-2026-113387","GHSA-4jq2-8v3c-97w8","UBUNTU-CVE-2026-119280","openSUSE-SU-2026:12401-1"],"status":"published","title":"MariaDB Connector/J : XA recover() trusted server-supplied gtrid and bqual lengths","description":"MariaDB Connector/J is used to connect applications developed in Java to MariaDB and MySQL databases. From 3.0.0 until 3.3.7, 3.4.5, and 3.5.11, the MariaDbPoolConnection.recover() and MariaDbPoolPinnedConnection.recover() implementations trusted the gtrid_length and bqual_length columns returned by XA RECOVER. The methods allocated and split Xid byte arrays without validating the lengths against Xid.MAXGTRIDSIZE, Xid.MAXBQUALSIZE, or the actual data payload. A malicious or compromised server, or a machine-in-the-middle attacker, could cause large allocations, NegativeArraySizeException, or ArrayIndexOutOfBoundsException during XA recovery. This issue is fixed in versions 3.3.7, 3.4.5, and 3.5.11.","severity":{"version":"3.1","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"low","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.00306,"percentile":0.23597,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-20","CWE-789"],"published":"2026-10-29T20:55:50Z","modified":"2026-11-05T04:42:51Z","fixes":[{"ecosystem":"Maven","package":"org.mariadb.jdbc:mariadb-java-client","fixed_in":["3.3.7","3.4.5","3.5.11"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"Maven","package":"org.mariadb.jdbc:mariadb-java-client","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.0.0"},{"fixed":"3.3.7"}]}]},{"source":"ghsa","ecosystem":"Maven","package":"org.mariadb.jdbc:mariadb-java-client","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.4.0"},{"fixed":"3.4.5"}]}]},{"source":"ghsa","ecosystem":"Maven","package":"org.mariadb.jdbc:mariadb-java-client","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.5.0"},{"fixed":"3.5.11"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"mariadb-connector-java","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.7.15-1","2.7.6-1","3.5.10-1"]},{"source":"osv","ecosystem":"Debian:13","package":"mariadb-connector-java","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.7.15-1","2.7.6-1","3.5.10-1"]},{"source":"osv","ecosystem":"Debian:14","package":"mariadb-connector-java","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.7.15-1","2.7.6-1","3.5.10-1"]},{"source":"osv","ecosystem":"Maven","package":"org.mariadb.jdbc:mariadb-java-client","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.0.0"},{"fixed":"3.3.7"}]}],"versions":["3.0.1-beta","3.0.10","3.0.11","3.0.2-rc","3.0.3","3.0.4","3.0.5","3.0.6","3.0.7","3.0.8","3.0.9","3.1.0","3.1.1","3.1.2","3.1.3","3.1.4","3.2.0","3.3.0","3.3.1","3.3.2","3.3.3","3.3.4","3.3.5","3.3.6"]},{"source":"osv","ecosystem":"Maven","package":"org.mariadb.jdbc:mariadb-java-client","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.4.0"},{"fixed":"3.4.5"}]}],"versions":["3.4.0","3.4.1","3.4.2","3.4.3","3.4.4"]},{"source":"osv","ecosystem":"Maven","package":"org.mariadb.jdbc:mariadb-java-client","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.5.0"},{"fixed":"3.5.11"}]}],"versions":["3.5.0","3.5.1","3.5.10","3.5.2","3.5.3","3.5.4","3.5.5","3.5.6","3.5.7","3.5.8","3.5.9"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"mariadb-connector-java","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.3.0-1~18.04"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"mariadb-connector-java","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.4.2-1build2","2.5.3-1"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"mariadb-connector-java","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.7.2-1","2.7.4-1"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"mariadb-connector-java","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.7.6-1"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"mariadb-connector-java","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.7.6-1build1"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"mariadb-connector-java","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.7.6-1","2.7.6-1build1"]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"mariadb-java-client","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.5.11-1.1"}]}],"bundled":7}],"products":[{"vendor":"mariadb-corporation","product":"mariadb-connector-j"}],"references":[{"url":"https://github.com/mariadb-corporation/mariadb-connector-j/security/advisories/GHSA-4jq2-8v3c-97w8","tags":["x_refsource_CONFIRM","advisory","web","report"]},{"url":"https://github.com/mariadb-corporation/mariadb-connector-j/commit/280efcfb4390055858fa2dd12b722d85a6a13ab8","tags":["x_refsource_MISC","fix","web","report"]},{"url":"https://github.com/mariadb-corporation/mariadb-connector-j/commit/47aba5a23548b35191865a428cc674316b95ee47","tags":["x_refsource_MISC","fix","web","report"]},{"url":"https://github.com/mariadb-corporation/mariadb-connector-j/commit/e9d767103bfd178ed57caa4cb97bbfbf7e54da6b","tags":["x_refsource_MISC","fix","web","report"]},{"url":"https://github.com/mariadb-corporation/mariadb-connector-j/releases/tag/3.3.7","tags":["x_refsource_MISC","web","report"]},{"url":"https://github.com/mariadb-corporation/mariadb-connector-j/releases/tag/3.4.5","tags":["x_refsource_MISC","web","report"]},{"url":"https://github.com/mariadb-corporation/mariadb-connector-j/releases/tag/3.5.11","tags":["x_refsource_MISC","web","report"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-119280","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-4jq2-8v3c-97w8"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/119xxx/CVE-2026-119280.json","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-119280","tags":["advisory"]},{"url":"https://github.com/mariadb-corporation/mariadb-connector-j","tags":["package"]},{"url":"https://ubuntu.com/security/CVE-2026-119280","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-119280","tags":["report"]},{"url":"","tags":["advisory"]},{"url":"https://www.suse.com/security/cve/CVE-2026-119210","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-119276","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-119277","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-119278","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-119279","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-119280","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-119281","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2026-119280","title":"MariaDB Connector/J : XA recover() trusted server-supplied gtrid and bqual lengths","description":"MariaDB Connector/J is used to connect applications developed in Java to MariaDB and MySQL databases. From 3.0.0 until 3.3.7, 3.4.5, and 3.5.11, the MariaDbPoolConnection.recover() and MariaDbPoolPinnedConnection.recover() implementations trusted the gtrid_length and bqual_length columns returned by XA RECOVER. The methods allocated and split Xid byte arrays without validating the lengths against Xid.MAXGTRIDSIZE, Xid.MAXBQUALSIZE, or the actual data payload. A malicious or compromised server, or a machine-in-the-middle attacker, could cause large allocations, NegativeArraySizeException, or ArrayIndexOutOfBoundsException during XA recovery. This issue is fixed in versions 3.3.7, 3.4.5, and 3.5.11.","status":"published","published":"2026-10-29T20:55:50.101Z","modified":"2026-10-30T17:10:10.174Z","cvss":[{"version":"3.1","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"low","assessor":"cna"}],"cwes":["CWE-20","CWE-789"],"updated_at":"2026-11-02T14:20:10.143031Z"}],"euvd":[{"id":"EUVD-2026-113387","description":"MariaDB Connector/J is used to connect applications developed in Java to MariaDB and MySQL databases. From 3.0.0 until 3.3.7, 3.4.5, and 3.5.11, the MariaDbPoolConnection.recover() and MariaDbPoolPinnedConnection.recover() implementations trusted the gtrid_length and bqual_length columns returned by XA RECOVER. The methods allocated and split Xid byte arrays without validating the lengths against Xid.MAXGTRIDSIZE, Xid.MAXBQUALSIZE, or the actual data payload. A malicious or compromised server, or a machine-in-the-middle attacker, could cause large allocations, NegativeArraySizeException, or ArrayIndexOutOfBoundsException during XA recovery. This issue is fixed in versions 3.3.7, 3.4.5, and 3.5.11.","status":"published","published":"2026-10-29T20:55:50Z","modified":"2026-10-30T17:10:10Z","cvss":[{"version":"3.1","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"low"}],"updated_at":"2026-11-02T16:59:05.567782Z"}],"ghsa":[{"id":"GHSA-4jq2-8v3c-97w8","title":"MariaDB Connector/J: XA recover() trusted server-supplied gtrid and bqual lengths","description":"## Summary\n\n`XAResource.recover()` in MariaDB Connector/J trusted the `gtrid_length` and\n`bqual_length` columns returned by `XA RECOVER` to allocate and split each Xid.\n\n## Details\n\n`MariaDbPoolConnection` and `MariaDbPoolPinnedConnection` built each `Xid` of\nthe recovery list by allocating `new byte[gtrid_length]` and\n`new byte[bqual_length]` and copying from the `data` column, without validating\nthe lengths against the XA specification bounds (`Xid.MAXGTRIDSIZE`,\n`Xid.MAXBQUALSIZE`) or the actual payload. Negative or oversized lengths, or\nlengths that do not fit the data, ended in large allocations or unchecked\nexceptions (`NegativeArraySizeException`, `ArrayIndexOutOfBoundsException`)\nduring recovery.\n\nThe fix validates the lengths before any allocation or copy and reports an\ninvalid row as an `XAException` (`XAER_RMFAIL`).\n\n## Impact\n\nAvailability only, and limited to applications running XA recovery: a malicious\nor compromised server, or a MitM, can crash the recovery or drive large\nallocations. Exploitation requires control of the server side of the connection.\n\n## Credit\n\nReported by fg0x0","status":"published","published":"2026-10-30T23:00:01Z","modified":"2026-10-30T23:00:03Z","cvss":[{"version":"3.1","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"low"}],"cwes":["CWE-20","CWE-789"],"updated_at":"2026-11-02T14:41:41.028239Z"}],"nvd":[{"id":"CVE-2026-119280","description":"MariaDB Connector/J is used to connect applications developed in Java to MariaDB and MySQL databases. From 3.0.0 until 3.3.7, 3.4.5, and 3.5.11, the MariaDbPoolConnection.recover() and MariaDbPoolPinnedConnection.recover() implementations trusted the gtrid_length and bqual_length columns returned by XA RECOVER. The methods allocated and split Xid byte arrays without validating the lengths against Xid.MAXGTRIDSIZE, Xid.MAXBQUALSIZE, or the actual data payload. A malicious or compromised server, or a machine-in-the-middle attacker, could cause large allocations, NegativeArraySizeException, or ArrayIndexOutOfBoundsException during XA recovery. This issue is fixed in versions 3.3.7, 3.4.5, and 3.5.11.","status":"published","published":"2026-10-29T21:17:21.553Z","modified":"2026-10-30T17:18:03.88Z","cvss":[{"version":"3.1","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"low","assessor":"secondary"}],"cwes":["CWE-20","CWE-789"],"updated_at":"2026-11-02T14:13:04.940026Z"}],"osv":[{"id":"CVE-2026-119280","title":"MariaDB Connector/J : XA recover() trusted server-supplied gtrid and bqual lengths","description":"MariaDB Connector/J is used to connect applications developed in Java to MariaDB and MySQL databases. From 3.0.0 until 3.3.7, 3.4.5, and 3.5.11, the MariaDbPoolConnection.recover() and MariaDbPoolPinnedConnection.recover() implementations trusted the gtrid_length and bqual_length columns returned by XA RECOVER. The methods allocated and split Xid byte arrays without validating the lengths against Xid.MAXGTRIDSIZE, Xid.MAXBQUALSIZE, or the actual data payload. A malicious or compromised server, or a machine-in-the-middle attacker, could cause large allocations, NegativeArraySizeException, or ArrayIndexOutOfBoundsException during XA recovery. This issue is fixed in versions 3.3.7, 3.4.5, and 3.5.11.","status":"published","published":"2026-10-29T20:55:50.101Z","modified":"2026-11-04T17:27:20.281128676Z","cvss":[{"version":"3.1","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"low"}],"cwes":["CWE-20","CWE-789"],"updated_at":"2026-11-04T17:42:20.138603Z"},{"id":"DEBIAN-CVE-2026-119280","description":"MariaDB Connector/J is used to connect applications developed in Java to MariaDB and MySQL databases. From 3.0.0 until 3.3.7, 3.4.5, and 3.5.11, the MariaDbPoolConnection.recover() and MariaDbPoolPinnedConnection.recover() implementations trusted the gtrid_length and bqual_length columns returned by XA RECOVER. The methods allocated and split Xid byte arrays without validating the lengths against Xid.MAXGTRIDSIZE, Xid.MAXBQUALSIZE, or the actual data payload. A malicious or compromised server, or a machine-in-the-middle attacker, could cause large allocations, NegativeArraySizeException, or ArrayIndexOutOfBoundsException during XA recovery. This issue is fixed in versions 3.3.7, 3.4.5, and 3.5.11.","status":"published","published":"2026-10-29T21:17:21.553Z","modified":"2026-10-31T09:47:23.568114221Z","cvss":[{"version":"3.1","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"low"}],"updated_at":"2026-11-02T15:45:51.374409Z"},{"id":"GHSA-4jq2-8v3c-97w8","title":"MariaDB Connector/J: XA recover() trusted server-supplied gtrid and bqual lengths","description":"## Summary\n\n`XAResource.recover()` in MariaDB Connector/J trusted the `gtrid_length` and\n`bqual_length` columns returned by `XA RECOVER` to allocate and split each Xid.\n\n## Details\n\n`MariaDbPoolConnection` and `MariaDbPoolPinnedConnection` built each `Xid` of\nthe recovery list by allocating `new byte[gtrid_length]` and\n`new byte[bqual_length]` and copying from the `data` column, without validating\nthe lengths against the XA specification bounds (`Xid.MAXGTRIDSIZE`,\n`Xid.MAXBQUALSIZE`) or the actual payload. Negative or oversized lengths, or\nlengths that do not fit the data, ended in large allocations or unchecked\nexceptions (`NegativeArraySizeException`, `ArrayIndexOutOfBoundsException`)\nduring recovery.\n\nThe fix validates the lengths before any allocation or copy and reports an\ninvalid row as an `XAException` (`XAER_RMFAIL`).\n\n## Impact\n\nAvailability only, and limited to applications running XA recovery: a malicious\nor compromised server, or a MitM, can crash the recovery or drive large\nallocations. Exploitation requires control of the server side of the connection.\n\n## Credit\n\nReported by fg0x0","status":"published","published":"2026-10-30T23:00:01Z","modified":"2026-10-30T23:15:05.680961929Z","cvss":[{"version":"3.1","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"low"}],"cwes":["CWE-20","CWE-789"],"updated_at":"2026-11-02T15:46:37.148947Z"},{"id":"UBUNTU-CVE-2026-119280","description":"MariaDB Connector/J is used to connect applications developed in Java to MariaDB and MySQL databases. From 3.0.0 until 3.3.7, 3.4.5, and 3.5.11, the MariaDbPoolConnection.recover() and MariaDbPoolPinnedConnection.recover() implementations trusted the gtrid_length and bqual_length columns returned by XA RECOVER. The methods allocated and split Xid byte arrays without validating the lengths against Xid.MAXGTRIDSIZE, Xid.MAXBQUALSIZE, or the actual data payload. A malicious or compromised server, or a machine-in-the-middle attacker, could cause large allocations, NegativeArraySizeException, or ArrayIndexOutOfBoundsException during XA recovery. This issue is fixed in versions 3.3.7, 3.4.5, and 3.5.11.","status":"published","published":"2026-10-29T21:17:00Z","modified":"2026-11-05T04:42:51Z","cvss":[{"version":"3.1","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"low"}],"updated_at":"2026-11-05T13:33:25.727744Z"},{"id":"openSUSE-SU-2026:12401-1","title":"mariadb-java-client-3.5.11-1.1 on GA media","description":"These are all security issues fixed in the mariadb-java-client-3.5.11-1.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2026-11-03T00:00:00Z","modified":"2026-11-04T17:23:21.433924059Z","updated_at":"2026-11-04T17:43:22.558805Z"}]}}
