Nokogiri: Possible Use-After-Free in XInclude Processing
Nokogiri is an open source XML and HTML library for the Ruby programming language. Prior to 1.19.4, XInclude substitution performed by Nokogiri::XML::Node#do_xinclude replaced each in place, freeing the include node along with its children (such as and its descendants) and any namespaces declared on them. If an application had already exposed one of those nodes or namespaces to Ruby, the corresponding Ruby object was left pointing at freed memory. Using the object could result in invalid reads or writes to memory. This vulnerability is fixed in 1.19.4.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-57438
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 5 Nov 2026, 00:07 UTC · Revision 1
Source evidence
Nokogiri: Possible Use-After-Free in XInclude Processing
core-osv · Original sourcePublished 25 Jun 2026, 14:39 UTC
Nokogiri is an open source XML and HTML library for the Ruby programming language. Prior to 1.19.4, XInclude substitution performed by Nokogiri::XML::Node#do_xinclude replaced each in place, freeing the include node along with its children (such as and its descendants) and any namespaces declared on them. If an application had already exposed one of those nodes or namespaces to Ruby, the corresponding Ruby object was left pointing at freed memory. Using the object could result in invalid reads or writes to memory. This vulnerability is fixed in 1.19.4.
osv:CVE-2026-57438
Complete source record
{
"id": "1739e403132299fcae0eb1e2dadcc0b31ced8d16a36dcc278f9bfce518bdc8b5",
"url": "https://osv.dev/vulnerability/CVE-2026-57438",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Nokogiri: Possible Use-After-Free in XInclude Processing",
"summary": "Nokogiri is an open source XML and HTML library for the Ruby programming language. Prior to 1.19.4, XInclude substitution performed by Nokogiri::XML::Node#do_xinclude replaced each in place, freeing the include node along with its children (such as and its descendants) and any namespaces declared on them. If an application had already exposed one of those nodes or namespaces to Ruby, the corresponding Ruby object was left pointing at freed memory. Using the object could result in invalid reads or writes to memory. This vulnerability is fixed in 1.19.4.",
"evidence": "osv:CVE-2026-57438",
"products": [],
"severity": "low",
"structured": {
"id": "CVE-2026-57438",
"aliases": [
"CVE-2026-57438",
"GHSA-wfpw-mmfh-qq69"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "CVSS:4.0/AV:L/AC:H/AT:N/PR:N/UI:N/VC:L/VI:L/VA:H/SC:N/SI:N/SA:N/E:U"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/sparklemotion/nokogiri",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "8cfb9daae9ee4a0837508eab43c40fbc8c4138c9"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "1.19.4"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"cpe": "cpe:2.3:a:nokogiri:nokogiri:*:*:*:*:*:ruby:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "1.19.4"
}
],
"source": "CPE_RANGE"
}
]
}
}
],
"versions": [
"v1.19.3",
"v1.19.2",
"v1.19.1",
"v1.19.0",
"v1.18.10",
"v1.18.9",
"v1.18.8",
"v1.18.7",
"v1.18.6",
"v1.18.5",
"v1.18.4",
"v1.18.3",
"v1.18.2",
"v1.18.1",
"v1.18.0",
"v1.18.0.rc1",
"v1.17.0",
"v1.16.0",
"v1.16.0.rc1",
"v1.15.2",
"v1.15.1",
"v1.15.0",
"v1.14.1",
"v1.14.0",
"v1.14.0.rc1",
"v1.13.0",
"v1.12.3",
"v1.12.2",
"v1.12.1",
"v1.12.0",
"v1.12.0.rc1",
"v1.11.3",
"v1.11.2",
"v1.11.1",
"v1.11.0",
"v1.11.0.rc4",
"v1.11.0.rc3",
"v1.11.0.rc2",
"v1.11.0.rc1",
"v1.10.3",
"v1.10.2",
"v1.8.5",
"v1.10.1",
"v1.10.0",
"v1.10.0.rc1",
"v1.9.1",
"v1.9.0",
"v1.9.0.rc1",
"v1.8.4",
"v1.8.3",
"v1.8.2",
"v1.8.1",
"v1.8.0",
"v1.7.0.1",
"v1.7.0",
"v1.6.8",
"v1.6.8.rc3",
"v1.6.8.rc2",
"v1.6.8.rc1",
"v1.6.7.rc4",
"v1.6.6.2",
"v1.6.7.rc3",
"v1.6.7.rc2",
"v1.6.7.rc1",
"1.7.0.1-linux-binary1",
"v1.6.6.1",
"v1.6.6",
"v1.6.5",
"v1.6.4",
"v1.6.3.1",
"v1.6.3",
"v1.6.3.rc3",
"v1.6.3.rc2",
"v1.6.3.rc1",
"v1.6.2.1",
"v1.6.2",
"v1.6.2.rc3",
"v1.6.2.rc1",
"v1.6.2.beta.1",
"v1.6.0",
"v1.5.9",
"v1.6.0.rc1",
"v1.5.8",
"v1.5.7",
"v1.5.7.rc3",
"v1.5.7.rc2",
"v1.5.7.rc1",
"v1.5.6",
"v1.5.6.rc2",
"v1.5.5.rc2",
"v1.5.5.rc1",
"v1.5.4.rc3",
"v1.5.4.rc2",
"v1.5.4.rc1",
"v1.5.3",
"v1.5.3.rc6",
"v1.5.3.rc5",
"v1.5.3.rc4",
"v1.5.3.rc3",
"v1.5.3.rc1",
"v1.5.2",
"v1.5.1",
"v1.5.1.rc1",
"v1.5.0",
"v1.5.0.beta.3",
"v1.5.0.beta.4",
"REL_1.5.0.beta.2",
"REL_1.5.0.beta.1",
"REL_1.0.7",
"REL_1.0.6",
"REL_1.0.5",
"REL_1.0.4",
"REL_1.0.3",
"REL_1.0.2",
"REL_1.0.1",
"REL_1.0.0"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-57438.json"
}
}
],
"modified": "2026-10-28T02:30:40.577290907Z",
"provider": "osv",
"references": [
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/57xxx/CVE-2026-57438.json",
"https://github.com/sparklemotion/nokogiri/security/advisories/GHSA-wfpw-mmfh-qq69",
"https://nvd.nist.gov/vuln/detail/CVE-2026-57438"
],
"provider_metadata": {
"cwe_ids": [
"CWE-416"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/57xxx/CVE-2026-57438.json"
}
},
"related_cves": [
{
"value": "CVE-2026-57438",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 508260,
"published_at": "2026-06-25T14:39:23.239+00:00"
}