{
  "@id": "urn:uuid:feb9123f-ec4c-4793-a832-26edbcc5d3f5",
  "role": "Document Creator",
  "author": "https://tuxcare.com",
  "version": 13,
  "@context": "https://openvex.dev/ns/v0.2.0",
  "timestamp": "2026-10-29T15:30:49.741847+00:00",
  "statements": [
    {
      "status": "not_affected",
      "products": [
        {
          "@id": "pkg:maven/org.eclipse.jetty/jetty-xml@11.0.18-tuxcare.1",
          "identifiers": {
            "purl": "pkg:maven/org.eclipse.jetty/jetty-xml@11.0.18-tuxcare.1"
          }
        }
      ],
      "timestamp": "2026-10-23T11:05:44.446026+00:00",
      "status_notes": "Vulnerability CVE-2026-8384 does not affect version 11.0.18-tuxcare.1 of org.eclipse.jetty:jetty-xml. not_affected \u2014 Jetty 11.0.18 is NOT AFFECTED by CVE-2026-8384. The vulnerability is specific to Jetty 12's refactored architecture where URIUtil.canonicalPath() was redesigned to handle encoding, semicolon path parameters, and dot normalization in a single method. Jetty 11 uses a fundamentally different two-method approach: decodePath() strips semicolons first, then canonicalPath() normalizes dots separately....",
      "justification": "vulnerable_code_not_in_execute_path",
      "vulnerability": {
        "name": "CVE-2026-8384"
      },
      "impact_statement": "not_affected \u2014 Jetty 11.0.18 is NOT AFFECTED by CVE-2026-8384. The vulnerability is specific to Jetty 12's refactored architecture where URIUtil.canonicalPath() was redesigned to handle encoding, semicolon path parameters, and dot normalization in a single method. Jetty 11 uses a fundamentally different two-method approach: decodePath() strips semicolons first, then canonicalPath() normalizes dots separately...."
    },
    {
      "status": "not_affected",
      "products": [
        {
          "@id": "pkg:maven/org.eclipse.jetty/jetty-xml@11.0.18-tuxcare.1",
          "identifiers": {
            "purl": "pkg:maven/org.eclipse.jetty/jetty-xml@11.0.18-tuxcare.1"
          }
        }
      ],
      "timestamp": "2026-10-23T11:05:44.446026+00:00",
      "status_notes": "Vulnerability GHSA-58qw-p7qm-5rvh does not affect version 11.0.18-tuxcare.1 of org.eclipse.jetty:jetty-xml. not_affected \u2014 GHSA-58qw-p7qm-5rvh concerns Jetty's XmlParser being XXE-capable. The advisory is explicitly informational (\"not considered a vulnerability of the Jetty server itself... No CVE will be allocated\"); the named remediation is PR #10067, which adds the ability to configure the SAXParserFactory (an overridable newSAXParserFactory() hook + getSAXParser() accessor), NOT XXE-hardening-by-default. The target (Jetty 11.0.18, SHA a459f013996) ALREADY contains PR #10067: commit 9a05c75ad28 is an ancestor of HEAD and of the jetty-11.0.18 tag. XmlParser.java uses newSAXParserFactory() in the constructor (line 69) and setValidating() (line 95), defines the hook (lines 86-89), exposes getSAXParser() (lines 137-140), and its resolveEntity() (lines 264-300) has the restricted \"only serve entity if found\" logic. The target matches the post-fix pattern exactly, not the pre-fix pattern (hardcoded SAXParserFactory.newInstance() with no hook). The fix is upstream-authored (Joakim Erdfelt), present in the release base before any TuxCare commit. TuxCare backported the SAME changes to older 9.x lines (9.2.16/9.4.41/9.4.48/9.4.50) precisely because those lacked the upstream fix; 11.0.18 needed no backport because upstream already shipped it. Verdict: not_affected (upstream fix present in shipped version). [VC re-run with claude-opus-4-8, prod pin d46bd7a, 2026-09-23; the earlier Sonnet run was parked by the author-verification gate after crediting a TuxCare backport for an upstream fix]",
      "justification": "vulnerable_code_not_present",
      "vulnerability": {
        "name": "GHSA-58qw-p7qm-5rvh"
      },
      "impact_statement": "not_affected \u2014 GHSA-58qw-p7qm-5rvh concerns Jetty's XmlParser being XXE-capable. The advisory is explicitly informational (\"not considered a vulnerability of the Jetty server itself... No CVE will be allocated\"); the named remediation is PR #10067, which adds the ability to configure the SAXParserFactory (an overridable newSAXParserFactory() hook + getSAXParser() accessor), NOT XXE-hardening-by-default. The target (Jetty 11.0.18, SHA a459f013996) ALREADY contains PR #10067: commit 9a05c75ad28 is an ancestor of HEAD and of the jetty-11.0.18 tag. XmlParser.java uses newSAXParserFactory() in the constructor (line 69) and setValidating() (line 95), defines the hook (lines 86-89), exposes getSAXParser() (lines 137-140), and its resolveEntity() (lines 264-300) has the restricted \"only serve entity if found\" logic. The target matches the post-fix pattern exactly, not the pre-fix pattern (hardcoded SAXParserFactory.newInstance() with no hook). The fix is upstream-authored (Joakim Erdfelt), present in the release base before any TuxCare commit. TuxCare backported the SAME changes to older 9.x lines (9.2.16/9.4.41/9.4.48/9.4.50) precisely because those lacked the upstream fix; 11.0.18 needed no backport because upstream already shipped it. Verdict: not_affected (upstream fix present in shipped version). [VC re-run with claude-opus-4-8, prod pin d46bd7a, 2026-09-23; the earlier Sonnet run was parked by the author-verification gate after crediting a TuxCare backport for an upstream fix]"
    }
  ]
}
