{"id":"CVE-2026-126062","aliases":["GHSA-v995-44v6-5fqm"],"title":"JRuby: NONET is bypassed for external DTDs and entities when the systemId uses a short-form IPv4 host","titleSource":"OSV","descriptionSource":"OSV","declaredSeverity":"LOW","description":"### Summary\n\nOn JRuby, the `NONET` parse option did not block an external DTD or entity whose system identifier used a short-form IPv4 host, such as `http://127.1/` or `http://169.254.43518/`, or was an absolute path such as `/x.dtd` in a document parsed from a network URL. An application that parses untrusted XML with `DTDLOAD`, `DTDVALID` or `NOENT` could be made to send network requests, potentially enabling SSRF.\n\nNokogiri 1.19.5 applies the `XML::Schema` check from [GHSA-8678-w3jw-xfc2](https://github.com/sparklemotion/nokogiri/security/advisories/GHSA-8678-w3jw-xfc2): with `NONET` set, only local resources are loaded.\n\nOnly JRuby is affected. Default parse options are not affected.\n\n### Severity\n\nThe Nokogiri maintainers have evaluated this as low severity.\n\n### Mitigation\n\nUpgrade to Nokogiri 1.19.5 or later, or do not enable `DTDLOAD`, `DTDVALID` or `NOENT` for untrusted input.\n\n### Credit\n\nThis issue was responsibly reported by @arpitjain099.","severity":"low","score":3.7,"published":"2026-11-10T20:11:46.316Z","modified":"2026-11-12T18:01:54.547Z","withdrawn":false,"knownExploited":false,"affected":[{"ecosystem":"RubyGems","name":"nokogiri","sources":[{"name":"OSV · GHSA-v995-44v6-5fqm","url":"https://osv.dev/vulnerability/GHSA-v995-44v6-5fqm"}],"ranges":[{"events":[{"introduced":"0"},{"fixed":"1.19.5"}],"type":"ECOSYSTEM"}],"versions":["1.0.0","1.0.1","1.0.2","1.0.3","1.0.4","1.0.5","1.0.6","1.0.7","1.1.0","1.1.1","1.10.0","1.10.0.rc1","1.10.1","1.10.10","1.10.2","1.10.3","1.10.4","1.10.5","1.10.6","1.10.7","1.10.8","1.10.9","1.11.0","1.11.0.rc1","1.11.0.rc2","1.11.0.rc3","1.11.0.rc4","1.11.1","1.11.2","1.11.3","1.11.4","1.11.5","1.11.6","1.11.7","1.12.0","1.12.0.rc1","1.12.1","1.12.2","1.12.3","1.12.4","1.12.5","1.13.0","1.13.1","1.13.10","1.13.2","1.13.3","1.13.4","1.13.5","1.13.6","1.13.7","1.13.8","1.13.9","1.14.0","1.14.0.rc1","1.14.1","1.14.2","1.14.3","1.14.4","1.14.5","1.15.0","1.15.1","1.15.2","1.15.3","1.15.4","1.15.5","1.15.6","1.15.7","1.16.0","1.16.0.rc1","1.16.1","1.16.2","1.16.3","1.16.4","1.16.5","1.16.6","1.16.7","1.16.8","1.17.0","1.17.1","1.17.2","1.18.0","1.18.0.rc1","1.18.1","1.18.10","1.18.2","1.18.3","1.18.4","1.18.5","1.18.6","1.18.7","1.18.8","1.18.9","1.19.0","1.19.1","1.19.2","1.19.3","1.19.4","1.2.0","1.2.1","1.2.2","1.2.3","1.3.0","1.3.1","1.3.2","1.3.3","1.4.0","1.4.1","1.4.2","1.4.2.1","1.4.3","1.4.3.1","1.4.4","1.4.4.1","1.4.4.2","1.4.5","1.4.6","1.4.7","1.5.0","1.5.0.beta.1","1.5.0.beta.2","1.5.0.beta.3","1.5.0.beta.4","1.5.1","1.5.1.rc1","1.5.10","1.5.11","1.5.2","1.5.3","1.5.3.rc2","1.5.3.rc3","1.5.3.rc4","1.5.3.rc5","1.5.3.rc6","1.5.4","1.5.4.rc1","1.5.4.rc2","1.5.4.rc3","1.5.5","1.5.5.rc1","1.5.5.rc2","1.5.5.rc3","1.5.6","1.5.6.rc1","1.5.6.rc2","1.5.6.rc3","1.5.7","1.5.7.rc1","1.5.7.rc2","1.5.7.rc3","1.5.8","1.5.9","1.6.0","1.6.0.rc1","1.6.1","1.6.2","1.6.2.1","1.6.2.rc1","1.6.2.rc2","1.6.2.rc3","1.6.3","1.6.3.1","1.6.3.rc1","1.6.3.rc2","1.6.3.rc3","1.6.4","1.6.4.1","1.6.5","1.6.6.1","1.6.6.2","1.6.6.3","1.6.6.4","1.6.7","1.6.7.1","1.6.7.2","1.6.7.rc2","1.6.7.rc3","1.6.7.rc4","1.6.8","1.6.8.1","1.6.8.rc1","1.6.8.rc2","1.6.8.rc3","1.7.0","1.7.0.1","1.7.1","1.7.2","1.8.0","1.8.1","1.8.2","1.8.3","1.8.4","1.8.5","1.9.0","1.9.0.rc1","1.9.1"],"fixed":["1.19.5"]}],"sourceAffected":[],"references":["https://github.com/sparklemotion/nokogiri/security/advisories/GHSA-v995-44v6-5fqm","https://github.com/sparklemotion/nokogiri/pull/3752","https://github.com/sparklemotion/nokogiri/commit/97f41b65f4ee0cac859b87f0b26d2648c4806cb8","https://github.com/sparklemotion/nokogiri/commit/e448ca2827a9198644610fb730259e12baacdeac","https://github.com/rubysec/ruby-advisory-db/blob/master/gems/nokogiri/GHSA-v995-44v6-5fqm.yml","https://github.com/sparklemotion/nokogiri","https://github.com/sparklemotion/nokogiri/releases/tag/v1.19.5"],"sources":[{"name":"OSV","id":"GHSA-v995-44v6-5fqm","modified":"2026-11-10T21:00:04.025096383Z","url":"https://osv.dev/vulnerability/GHSA-v995-44v6-5fqm"},{"name":"CVE","id":"CVE-2026-126062","modified":"2026-11-12T18:01:54.547Z","url":"https://www.cve.org/CVERecord?id=CVE-2026-126062"}],"assessments":[{"source":"OSV","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N","score":3.7},{"source":"GitHub_M","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N","score":3.7}],"cve":{"records":[{"id":"CVE-2026-126062","source":"GitHub_M","state":"PUBLISHED","reasons":[],"replacements":[],"disputed":false,"unsupportedWhenAssigned":false,"reserved":"2026-11-10T17:07:43.283Z","published":"2026-11-10T20:11:46.316Z","modified":"2026-11-12T18:01:54.547Z"}],"publishers":[{"name":"GitHub_M","role":"CNA","organizationId":"a0819718-46f1-4df5-94e2-005712e83aaa","modified":"2026-11-10T20:11:46.316Z"},{"name":"CISA-ADP","role":"ADP","organizationId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","modified":"2026-11-12T18:01:54.547Z"}],"references":[{"url":"https://github.com/sparklemotion/nokogiri/security/advisories/GHSA-v995-44v6-5fqm","tags":["x_refsource_CONFIRM"],"source":"GitHub_M"},{"url":"https://github.com/sparklemotion/nokogiri/pull/3752","tags":["x_refsource_MISC"],"source":"GitHub_M"},{"url":"https://github.com/sparklemotion/nokogiri/commit/97f41b65f4ee0cac859b87f0b26d2648c4806cb8","tags":["x_refsource_MISC"],"source":"GitHub_M"},{"url":"https://github.com/sparklemotion/nokogiri/commit/e448ca2827a9198644610fb730259e12baacdeac","tags":["x_refsource_MISC"],"source":"GitHub_M"},{"url":"https://github.com/sparklemotion/nokogiri/releases/tag/v1.19.5","tags":["x_refsource_MISC"],"source":"GitHub_M"}],"weaknesses":[{"id":"CWE-611","description":"CWE-611: Improper Restriction of XML External Entity Reference","source":"GitHub_M"},{"id":"CWE-918","description":"CWE-918: Server-Side Request Forgery","source":"GitHub_M"}],"applicability":[],"prioritization":[{"source":"CISA-ADP","type":"SSVC","role":"CISA Coordinator","timestamp":"2026-11-12T16:26:21.600157Z","decisions":[{"name":"Exploitation","value":"none"},{"name":"Automatable","value":"no"},{"name":"Technical Impact","value":"partial"}]}]},"products":[{"vendor":"sparklemotion","name":"nokogiri","platforms":[],"versions":[{"version":"< 1.19.5","status":"affected"}],"cpes":[],"source":"GitHub_M","url":"https://www.cve.org/CVERecord?id=CVE-2026-126062"}],"remediation":[],"observedAt":"2026-11-12T19:40:15.134Z","kev":{"status":"not-listed","checkedAt":"2026-11-15T02:05:34.570Z"},"coverage":[{"source":"NVD","status":"available","checkedAt":"2026-11-12T20:15:33.432Z","attemptedAt":"2026-11-12T20:15:33.432Z"},{"source":"GHSA","status":"available","checkedAt":"2026-11-12T20:15:33.942Z","attemptedAt":"2026-11-12T20:15:33.942Z"},{"source":"EUVD","status":"available","checkedAt":"2026-11-12T20:15:32.870Z","attemptedAt":"2026-11-12T20:15:32.870Z"},{"source":"EPSS","status":"available","checkedAt":"2026-11-12T20:15:33.915Z","attemptedAt":"2026-11-12T20:15:33.915Z"}],"evidence":[{"source":"ENISA EUVD","id":"EUVD-2026-122828","url":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-122828","modified":"Nov 12, 2026, 6:01:54 PM","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N","checkedAt":"2026-11-12T20:15:32.870Z"},{"source":"NVD","id":"CVE-2026-126062","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-126062","modified":"2026-11-12T19:16:54.940","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N","checkedAt":"2026-11-12T20:15:33.432Z"},{"source":"FIRST EPSS","id":"CVE-2026-126062","url":"https://www.first.org/epss/","probability":0.0038,"percentile":0.32489,"date":"2026-11-12","checkedAt":"2026-11-12T20:15:33.915Z"},{"source":"GitHub Advisory Database","id":"GHSA-v995-44v6-5fqm","url":"https://github.com/advisories/GHSA-v995-44v6-5fqm","modified":"2026-11-10T20:52:39Z","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N","checkedAt":"2026-11-12T20:15:33.942Z"}],"aiSummary":{"text":"Nokogiri versions before 1.19.5 have a vulnerability where the NONET parse option does not block external DTDs and entities with short-form IPv4 hosts or absolute paths, potentially enabling SSRF. An application parsing untrusted XML with DTDLOAD, DTDVALID, or NOENT could be affected. Only JRuby is affected.","model":"@cf/meta/llama-3.3-70b-instruct-fp8-fast","generatedAt":"2026-11-12T20:11:12.285Z","sources":[{"name":"OSV","url":"https://osv.dev/vulnerability/GHSA-v995-44v6-5fqm"},{"name":"CVE","url":"https://www.cve.org/CVERecord?id=CVE-2026-126062"}]}}