GHSA-GRFQ-R75J-RW9X
Vulnerability from github – Published: 2026-10-30 22:59 – Updated: 2026-10-30 22:59Summary
MariaDB Connector/J decodes every result as UTF-8 and guards
character_set_client against a change to another charset, but did not guard
character_set_results, and relied on the server's global
session_track_system_variables list to be told about charset changes at all.
Details
The connector learns about session variable changes through session tracking,
and closes the connection when character_set_client is switched away from UTF-8,
so that its UTF-8 decoding stays correct. Two gaps remained:
character_set_resultswas not guarded: a server could switch it to another charset, after which the bytes of every result were decoded as UTF-8 although encoded otherwise.- the list of tracked variables came from the server's global
session_track_system_variables: a server configured, or made, not to track the character set variables could change them silently.
The fix requests an explicit session tracking list that includes both character
set variables whatever the server's global setting, and closes the connection
when character_set_results is changed to a charset other than utf8, utf8mb3
or utf8mb4, as it already did for character_set_client.
Impact
Integrity: a malicious or compromised server, or a MitM, can make the strings an application reads differ from the bytes the server returned (inappropriate encoding for the output context), which can defeat application-side validation or escaping built on those values. Exploitation requires control of the server side of the connection; no confidentiality or availability impact.
Credit
Reported by fg0x0
{
"affected": [
{
"package": {
"ecosystem": "Maven",
"name": "org.mariadb.jdbc:mariadb-java-client"
},
"ranges": [
{
"events": [
{
"introduced": "3.0.0"
},
{
"fixed": "3.3.7"
}
],
"type": "ECOSYSTEM"
}
]
},
{
"package": {
"ecosystem": "Maven",
"name": "org.mariadb.jdbc:mariadb-java-client"
},
"ranges": [
{
"events": [
{
"introduced": "3.4.0"
},
{
"fixed": "3.4.5"
}
],
"type": "ECOSYSTEM"
}
]
},
{
"package": {
"ecosystem": "Maven",
"name": "org.mariadb.jdbc:mariadb-java-client"
},
"ranges": [
{
"events": [
{
"introduced": "3.5.0"
},
{
"fixed": "3.5.11"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [
"CVE-2026-119281"
],
"database_specific": {
"cwe_ids": [
"CWE-838"
],
"github_reviewed": true,
"github_reviewed_at": "2026-10-30T22:59:45Z",
"nvd_published_at": "2026-10-29T21:17:21Z",
"severity": "MODERATE"
},
"details": "## Summary\n\nMariaDB Connector/J decodes every result as UTF-8 and guards\n`character_set_client` against a change to another charset, but did not guard\n`character_set_results`, and relied on the server\u0027s global\n`session_track_system_variables` list to be told about charset changes at all.\n\n## Details\n\nThe connector learns about session variable changes through session tracking,\nand closes the connection when `character_set_client` is switched away from UTF-8,\nso that its UTF-8 decoding stays correct. Two gaps remained:\n\n- `character_set_results` was not guarded: a server could switch it to another\n charset, after which the bytes of every result were decoded as UTF-8 although\n encoded otherwise.\n- the list of tracked variables came from the server\u0027s global\n `session_track_system_variables`: a server configured, or made, not to track\n the character set variables could change them silently.\n\nThe fix requests an explicit session tracking list that includes both character\nset variables whatever the server\u0027s global setting, and closes the connection\nwhen `character_set_results` is changed to a charset other than `utf8`, `utf8mb3`\nor `utf8mb4`, as it already did for `character_set_client`.\n\n## Impact\n\nIntegrity: a malicious or compromised server, or a MitM, can make the strings an\napplication reads differ from the bytes the server returned (inappropriate\nencoding for the output context), which can defeat application-side validation\nor escaping built on those values. Exploitation requires control of the server\nside of the connection; no confidentiality or availability impact.\n\n## Credit\n\nReported by fg0x0",
"id": "GHSA-grfq-r75j-rw9x",
"modified": "2026-10-30T22:59:45Z",
"published": "2026-10-30T22:59:45Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/mariadb-corporation/mariadb-connector-j/security/advisories/GHSA-grfq-r75j-rw9x"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-119281"
},
{
"type": "WEB",
"url": "https://github.com/mariadb-corporation/mariadb-connector-j/commit/af5e565eb171cfc66ea8e948ddc616abed0c4623"
},
{
"type": "WEB",
"url": "https://github.com/mariadb-corporation/mariadb-connector-j/commit/d51b968c1b795c73d24e0b3f960205b7bc82d423"
},
{
"type": "WEB",
"url": "https://github.com/mariadb-corporation/mariadb-connector-j/commit/fdabe74a7df6dce1d6c099f4d0ca1e2acc25919a"
},
{
"type": "PACKAGE",
"url": "https://github.com/mariadb-corporation/mariadb-connector-j"
},
{
"type": "WEB",
"url": "https://github.com/mariadb-corporation/mariadb-connector-j/releases/tag/3.3.7"
},
{
"type": "WEB",
"url": "https://github.com/mariadb-corporation/mariadb-connector-j/releases/tag/3.4.5"
},
{
"type": "WEB",
"url": "https://github.com/mariadb-corporation/mariadb-connector-j/releases/tag/3.5.11"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N",
"type": "CVSS_V3"
}
],
"summary": "MariaDB Connector/J: Server could switch character_set_results away from UTF-8 without the client noticing"
}
Drag nodes to arrange them. Double-click a related vulnerability to open it, or a source to visit its link. The Physics button on the left tunes the layout and the simulation; the legend at the bottom left hides or shows nodes by kind and by sighting type.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Vulnerability timeline
Sightings and recorded dates, grouped by day · UTC
Loading timeline…
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.