Skip to main content

Nokogiri CVE-2026-57234

| EUVDEUVD-2026-39421 LOW
Improper Handling of Case Sensitivity (CWE-178)
2026-06-25 GitHub_M
2.6
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain low-privilege access to application
  2. Delivery
    Supply crafted XML Schema with external network references
  3. Exploit
    Application invokes Nokogiri::XML::Schema on JRuby with default options
  4. Execution
    Case-sensitive NONET denylist bypass permits outbound network request
  5. Impact
    Attacker-controlled server receives SSRF hit or XXE-exfiltrated data

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Case sensitivity handling
Exploitation Conditions

Exploitation requires: (1) the target Ruby application must be running on the JRuby implementation - CRuby deployments at any Nokogiri version are immune; (2) the application must use Nokogiri::XML::Schema to parse XML schemas, specifically with default parse options (NONET enabled); (3) the attacker must be able to supply or influence the schema content processed by the application, since the bypass is triggered by external resource references embedded in the schema itself; and (4) CVSS PR:L indicates some level of authenticated or low-privilege access is required, and UI:R indicates a user or process action must trigger the schema parse. Applications that do not parse schemas from untrusted sources, or that run on CRuby, face no exposure from this vulnerability. The limiting factors - JRuby-only, schema-input control, PR:L, UI:R - significantly constrain the realistic attacker population.

Impact

CVSS 2.6 (Low) is internally consistent with the vector AV:N/AC:H/PR:L/UI:R/S:U/C:L/I:N/A:N, reflecting high attack complexity, a required low-privileged authenticated context, mandatory user interaction, and only limited confidentiality impact. The JRuby-only scope is a hard architectural constraint that eliminates risk for the majority of Nokogiri deployments, which run on CRuby. This is a bypass of CVE-2020-26247, scored identically, and represents an incomplete fix rather than a novel attack class. No EPSS data was provided, so quantitative exploitation probability cannot be stated; however, the absence of KEV listing, no identified POC, and the niche JRuby deployment requirement collectively suggest low real-world exploitation pressure. The SSRF/XXE impact is limited to confidentiality (C:L) with no integrity or availability component. The primary concern is in environments that parse attacker-controlled XML schemas on JRuby - a non-default workflow that requires deliberate application design. Risk is real but operationally narrow; this should be patched in normal release cycles rather than treated as an emergency.

Exploit ScenarioDerived

An attacker crafts a malicious XML Schema document containing references to attacker-controlled external URLs using alternate-case scheme strings (exploiting the case-sensitive denylist bypass) and submits it to a JRuby-based Ruby application that uses Nokogiri::XML::Schema for schema validation with default parse options. The application's Nokogiri JRuby implementation issues an outbound HTTP request to the attacker's server despite NONET being set, enabling the attacker to map internal network topology via SSRF or extract data via XXE response channels. No public exploit code has been identified, and the high attack complexity - requiring JRuby runtime, attacker-controlled schema input, and user interaction - suggests exploitation would be targeted rather than opportunistic.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jun 25, 2026

NONET network restriction bypass in Nokogiri's JRuby implementation permits external resource fetching during XML Schema parsing despite the default network-blocking parse option being set, exposing applications to potential SSRF and XXE attacks. Only JRuby-based deployments are affected - CRuby users are fully protected because libxml2's xmlNoNetExternalEntityLoader enforces NONET at the I/O layer independently of Nokogiri's option handling. Rated low severity by maintainers (CVSS 2.6); vendor-released patch is available in version 1.19.4, and no public exploit has been identified at time of analysis.

RemediationAI

Upgrade to Nokogiri 1.19.4 or later via gem update nokogiri or by updating the Gemfile pin; this is the only confirmed fix per the vendor advisory at https://github.com/sparklemotion/nokogiri/security/advisories/GHSA-8678-w3jw-xfc2. The vendor confirms no workarounds exist for affected versions. Note that 1.19.4 introduces a breaking change: the NONET denylist is replaced with an allowlist, so any application that previously relied (even unknowingly) on network resource loading with default parse options will have that access blocked. If trusted schemas genuinely require network resource resolution, explicitly disable NONET using Nokogiri::XML::ParseOptions.new.nononet - but only for inputs that are fully trusted, as this re-enables the original network-access risk documented in CVE-2020-26247.

Affected VersionsENISA

nokogiri < 1.19.4

Affected Packages

rubygems nokogiri fix: 1.19.4

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in rubygems

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Nokogiri is a widely used Ruby gem that wraps libxml2 for the CRuby runtime and uses a separate Java-based XML parser for JRuby. The NONET parse option was introduced as a default for Nokogiri::XML::Schema following CVE-2020-26247 to block network resource resolution during schema parsing. The JRuby implementation enforced this restriction via a network-scheme denylist, but CWE-178 (Improper Handling of Case Sensitivity) indicates the denylist performed case-sensitive matching, allowing bypasses via alternate-case scheme values (e.g., 'HTTP://' instead of 'http://'). The fix in 1.19.4 replaces the denylist with a case-insensitive allowlist that permits only file: scheme and local path references, aligning JRuby behavior with CRuby. The affected CPE is cpe:2.3:a:sparklemotion:nokogiri:*:*:*:*:*:*:*:*, covering all Nokogiri versions prior to 1.19.4 on JRuby.

Know when Nokogiri gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 2.6 LOW
AV:N/AC:H/PR:L/UI:R/S:U/C:L/I:N/A:N
vuln.today AI 2.6 LOW

Requires JRuby runtime, attacker-supplied schema, and user interaction (AC:H, PR:L, UI:R); impact limited to SSRF/XXE data disclosure with no integrity or availability consequence.

3.1 AV:N/AC:H/PR:L/UI:R/S:U/C:L/I:N/A:N
4.0 AV:N/AC:H/AT:N/PR:L/UI:A/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
High
Privileges Required
Low
User Interaction
Required
Scope
Unchanged
Confidentiality
Low
Integrity
None
Availability
None

Lifecycle Timeline

1
Patch available
Jun 25, 2026 - 16:03 EUVD

DescriptionCVE.org

Nokogiri is an open source XML and HTML library for the Ruby programming language. Prior to 1.19.4, the NONET parse option, which Nokogiri turns on by default for Nokogiri::XML::Schema (see CVE-2020-26247), was not correctly enforced on the JRuby implementation. As a result, a schema parsed with default options could still cause external resources to be fetched over the network, potentially enabling SSRF or XXE attacks. This vulnerability is fixed in 1.19.4.

Threat Intelligence Overview

EPSS Score
0.2%
Top 94% exploitable
Prevalence
Medium
popular Ruby HTML/XML parsing library, heavily used in Rails ecosystems
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment MSRC GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Low
Technical Impact
Partial

Priority Score

13
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +13
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

XML External Entity (XXE) attacks exploit XML parsers that process Document Type Definitions (DTDs) without proper restrictions.

CVE-2022-29181 HIGH POC
8.2 May 20

Nokogiri is an open source XML and HTML library for Ruby. Rated high severity (CVSS 8.2), this vulnerability is remotely

CVE-2019-5477 CRITICAL
9.8 Aug 16

A command injection vulnerability in Nokogiri v1.10.3 and earlier allows commands to be executed in a subprocess via Rub

CVE-2026-79770 HIGH
8.7 Aug 25

Denial-of-service in Nokogiri before 1.19.3 stems from three distinct ReDoS vulnerabilities in the CSS selector tokenize

CVE-2026-79769 HIGH
8.7 Aug 25

Out-of-bounds memory read in Nokogiri (CRuby) versions before 1.19.4 crashes the host Ruby process when application code

CVE-2022-23476 HIGH
7.5 Dec 08

Nokogiri is an open source XML and HTML library for the Ruby programming language. Rated high severity (CVSS 7.5), this

CVE-2022-24836 HIGH
7.5 Apr 11

Nokogiri is an open source XML and HTML library for Ruby. Rated high severity (CVSS 7.5), this vulnerability is remotely

CVE-2021-41098 HIGH
7.5 Sep 27

Nokogiri is a Rubygem providing HTML, XML, SAX, and Reader parsers with XPath and CSS selector support. Rated high sever

CVE-2026-79771 MEDIUM
6.9 Aug 25

Heap memory leaks in Nokogiri's XSLT transform method (versions before 1.19.3) enable gradual denial of service against

CVE-2026-79772 MEDIUM
6.9 Aug 25

Unchecked return value in Nokogiri's CRuby extension (versions 1.5.1 through 1.19.0) causes the `canonicalize` method to

CVE-2026-57235 MEDIUM
6.3 Jun 25

Out-of-bounds read in Nokogiri's `NodeSet#[]` method (all versions before 1.19.4) enables an attacker who can supply a l

CVE-2020-26247 MEDIUM
4.3 Dec 30

Nokogiri is a Rubygem providing HTML, XML, SAX, and Reader parsers with XPath and CSS selector support. Rated medium sev

CVE-2026-57438 LOW
2.2 Jun 25

Use-after-free in Nokogiri's CRuby XInclude processing (versions prior to 1.19.4) can leave Ruby wrapper objects pointin

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy