fix: protect regex from redos - #38

Merged
Marsup merged 1 commit into
masterfrom
fix/regexp-redos
Apr 2, 2026
Merged

fix: protect regex from redos#38
Marsup merged 1 commit into
masterfrom
fix/regexp-redos

Conversation

@Marsup

Copy link
Copy Markdown
Contributor

No description provided.

@MarsupMarsup added this to the 6.0.1 milestone Apr 2, 2026
@MarsupMarsup self-assigned this Apr 2, 2026
@MarsupMarsup added the bug Bug or defect label Apr 2, 2026
@Marsup
Marsup merged commit ac9a2de into masterApr 2, 2026
10 checks passed
gsoldevila added a commit to elastic/kibana that referenced this pull request Apr 21, 2026
…ent (#264077)
## Summary
Fixes CVE-2026-35213 — a Regular Expression Denial of Service (ReDoS)
vulnerability in `@hapi/content@6.0.0` which is a transitive dependency
of `@hapi/hapi` (Kibana's HTTP server framework).
Upgrades `@hapi/hapi` from `21.4.4` to `21.4.8`, which cascades into
patching the full vulnerable dependency chain:
| Package | Before | After | Role |
|---|---|---|---|
| `@hapi/hapi` | `21.4.4` | `21.4.8` | Direct dependency (HTTP server) |
| `@hapi/subtext` | `8.1.1` | `8.1.2` | Request body parsing (requires
`@hapi/content ^6.0.1`) |
| `@hapi/pez` | `6.1.0` | `6.1.1` | Multipart form parsing (requires
`@hapi/content ^6.0.1`) |
| `@hapi/content` | `6.0.0` | `6.0.1` | **Vulnerable package — contains
the fix** |
### Vulnerability Details
`@hapi/content@6.0.0` has a ReDoS vulnerability in its `Content-Type`
header parsing regex. A maliciously crafted `Content-Type` header sent
to any Kibana HTTP endpoint could cause catastrophic backtracking,
exhausting CPU and causing a denial of service. No authentication is
required to exploit this.
- **CVE:** CVE-2026-35213
- **Severity:** High
- **Fix:** Upgrade `@hapi/content` to `6.0.1` ([upstream
commit](hapijs/content@ac9a2de),
[upstream PR](hapijs/content#38))
- **Tracking issue:** elastic/security#9673
### Impact Assessment
All network-accessible Kibana deployments running `@hapi/content@6.0.0`
are potentially affected. The exploit requires no privileges and targets
the HTTP layer.
## Test plan
- [ ] CI passes — confirms the hapi version bump has no regressions in
Kibana's HTTP layer, routing, and request handling
- [ ] Confirm `yarn.lock` no longer contains `@hapi/content@6.0.0` after
bootstrap
Made with [Cursor](https://cursor.com)
@MarsupMarsup added the security Issue with security impact label May 6, 2026
patrykkopycinski pushed a commit to patrykkopycinski/kibana that referenced this pull request Aug 5, 2026
…ent (elastic#264077)
## Summary
Fixes CVE-2026-35213 — a Regular Expression Denial of Service (ReDoS)
vulnerability in `@hapi/content@6.0.0` which is a transitive dependency
of `@hapi/hapi` (Kibana's HTTP server framework).
Upgrades `@hapi/hapi` from `21.4.4` to `21.4.8`, which cascades into
patching the full vulnerable dependency chain:
| Package | Before | After | Role |
|---|---|---|---|
| `@hapi/hapi` | `21.4.4` | `21.4.8` | Direct dependency (HTTP server) |
| `@hapi/subtext` | `8.1.1` | `8.1.2` | Request body parsing (requires
`@hapi/content ^6.0.1`) |
| `@hapi/pez` | `6.1.0` | `6.1.1` | Multipart form parsing (requires
`@hapi/content ^6.0.1`) |
| `@hapi/content` | `6.0.0` | `6.0.1` | **Vulnerable package — contains
the fix** |
### Vulnerability Details
`@hapi/content@6.0.0` has a ReDoS vulnerability in its `Content-Type`
header parsing regex. A maliciously crafted `Content-Type` header sent
to any Kibana HTTP endpoint could cause catastrophic backtracking,
exhausting CPU and causing a denial of service. No authentication is
required to exploit this.
- **CVE:** CVE-2026-35213
- **Severity:** High
- **Fix:** Upgrade `@hapi/content` to `6.0.1` ([upstream
commit](hapijs/content@ac9a2de),
[upstream PR](hapijs/content#38))
- **Tracking issue:** elastic/security#9673
### Impact Assessment
All network-accessible Kibana deployments running `@hapi/content@6.0.0`
are potentially affected. The exploit requires no privileges and targets
the HTTP layer.
## Test plan
- [ ] CI passes — confirms the hapi version bump has no regressions in
Kibana's HTTP layer, routing, and request handling
- [ ] Confirm `yarn.lock` no longer contains `@hapi/content@6.0.0` after
bootstrap
Made with [Cursor](https://cursor.com)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugBug or defectsecurityIssue with security impact

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Marsup
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks"); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); (function(){ try { var __m = "github.com"; var __re = new RegExp('^' + "github\\.com" + '
Skip to content

fix: protect regex from redos - #38

Merged
Marsup merged 1 commit into
masterfrom
fix/regexp-redos
Apr 2, 2026
Merged

fix: protect regex from redos#38
Marsup merged 1 commit into
masterfrom
fix/regexp-redos

Conversation

@Marsup

Copy link
Copy Markdown
Contributor

No description provided.

@MarsupMarsup added this to the 6.0.1 milestone Apr 2, 2026
@MarsupMarsup self-assigned this Apr 2, 2026
@MarsupMarsup added the bug Bug or defect label Apr 2, 2026
@Marsup
Marsup merged commit ac9a2de into masterApr 2, 2026
10 checks passed
gsoldevila added a commit to elastic/kibana that referenced this pull request Apr 21, 2026
…ent (#264077)
## Summary
Fixes CVE-2026-35213 — a Regular Expression Denial of Service (ReDoS)
vulnerability in `@hapi/content@6.0.0` which is a transitive dependency
of `@hapi/hapi` (Kibana's HTTP server framework).
Upgrades `@hapi/hapi` from `21.4.4` to `21.4.8`, which cascades into
patching the full vulnerable dependency chain:
| Package | Before | After | Role |
|---|---|---|---|
| `@hapi/hapi` | `21.4.4` | `21.4.8` | Direct dependency (HTTP server) |
| `@hapi/subtext` | `8.1.1` | `8.1.2` | Request body parsing (requires
`@hapi/content ^6.0.1`) |
| `@hapi/pez` | `6.1.0` | `6.1.1` | Multipart form parsing (requires
`@hapi/content ^6.0.1`) |
| `@hapi/content` | `6.0.0` | `6.0.1` | **Vulnerable package — contains
the fix** |
### Vulnerability Details
`@hapi/content@6.0.0` has a ReDoS vulnerability in its `Content-Type`
header parsing regex. A maliciously crafted `Content-Type` header sent
to any Kibana HTTP endpoint could cause catastrophic backtracking,
exhausting CPU and causing a denial of service. No authentication is
required to exploit this.
- **CVE:** CVE-2026-35213
- **Severity:** High
- **Fix:** Upgrade `@hapi/content` to `6.0.1` ([upstream
commit](hapijs/content@ac9a2de),
[upstream PR](hapijs/content#38))
- **Tracking issue:** elastic/security#9673
### Impact Assessment
All network-accessible Kibana deployments running `@hapi/content@6.0.0`
are potentially affected. The exploit requires no privileges and targets
the HTTP layer.
## Test plan
- [ ] CI passes — confirms the hapi version bump has no regressions in
Kibana's HTTP layer, routing, and request handling
- [ ] Confirm `yarn.lock` no longer contains `@hapi/content@6.0.0` after
bootstrap
Made with [Cursor](https://cursor.com)
@MarsupMarsup added the security Issue with security impact label May 6, 2026
patrykkopycinski pushed a commit to patrykkopycinski/kibana that referenced this pull request Aug 5, 2026
…ent (elastic#264077)
## Summary
Fixes CVE-2026-35213 — a Regular Expression Denial of Service (ReDoS)
vulnerability in `@hapi/content@6.0.0` which is a transitive dependency
of `@hapi/hapi` (Kibana's HTTP server framework).
Upgrades `@hapi/hapi` from `21.4.4` to `21.4.8`, which cascades into
patching the full vulnerable dependency chain:
| Package | Before | After | Role |
|---|---|---|---|
| `@hapi/hapi` | `21.4.4` | `21.4.8` | Direct dependency (HTTP server) |
| `@hapi/subtext` | `8.1.1` | `8.1.2` | Request body parsing (requires
`@hapi/content ^6.0.1`) |
| `@hapi/pez` | `6.1.0` | `6.1.1` | Multipart form parsing (requires
`@hapi/content ^6.0.1`) |
| `@hapi/content` | `6.0.0` | `6.0.1` | **Vulnerable package — contains
the fix** |
### Vulnerability Details
`@hapi/content@6.0.0` has a ReDoS vulnerability in its `Content-Type`
header parsing regex. A maliciously crafted `Content-Type` header sent
to any Kibana HTTP endpoint could cause catastrophic backtracking,
exhausting CPU and causing a denial of service. No authentication is
required to exploit this.
- **CVE:** CVE-2026-35213
- **Severity:** High
- **Fix:** Upgrade `@hapi/content` to `6.0.1` ([upstream
commit](hapijs/content@ac9a2de),
[upstream PR](hapijs/content#38))
- **Tracking issue:** elastic/security#9673
### Impact Assessment
All network-accessible Kibana deployments running `@hapi/content@6.0.0`
are potentially affected. The exploit requires no privileges and targets
the HTTP layer.
## Test plan
- [ ] CI passes — confirms the hapi version bump has no regressions in
Kibana's HTTP layer, routing, and request handling
- [ ] Confirm `yarn.lock` no longer contains `@hapi/content@6.0.0` after
bootstrap
Made with [Cursor](https://cursor.com)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugBug or defectsecurityIssue with security impact

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Marsup
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix: protect regex from redos - #38

Merged
Marsup merged 1 commit into
masterfrom
fix/regexp-redos
Apr 2, 2026
Merged

fix: protect regex from redos#38
Marsup merged 1 commit into
masterfrom
fix/regexp-redos

Conversation

@Marsup

Copy link
Copy Markdown
Contributor

No description provided.

@MarsupMarsup added this to the 6.0.1 milestone Apr 2, 2026
@MarsupMarsup self-assigned this Apr 2, 2026
@MarsupMarsup added the bug Bug or defect label Apr 2, 2026
@Marsup
Marsup merged commit ac9a2de into masterApr 2, 2026
10 checks passed
gsoldevila added a commit to elastic/kibana that referenced this pull request Apr 21, 2026
…ent (#264077)
## Summary
Fixes CVE-2026-35213 — a Regular Expression Denial of Service (ReDoS)
vulnerability in `@hapi/content@6.0.0` which is a transitive dependency
of `@hapi/hapi` (Kibana's HTTP server framework).
Upgrades `@hapi/hapi` from `21.4.4` to `21.4.8`, which cascades into
patching the full vulnerable dependency chain:
| Package | Before | After | Role |
|---|---|---|---|
| `@hapi/hapi` | `21.4.4` | `21.4.8` | Direct dependency (HTTP server) |
| `@hapi/subtext` | `8.1.1` | `8.1.2` | Request body parsing (requires
`@hapi/content ^6.0.1`) |
| `@hapi/pez` | `6.1.0` | `6.1.1` | Multipart form parsing (requires
`@hapi/content ^6.0.1`) |
| `@hapi/content` | `6.0.0` | `6.0.1` | **Vulnerable package — contains
the fix** |
### Vulnerability Details
`@hapi/content@6.0.0` has a ReDoS vulnerability in its `Content-Type`
header parsing regex. A maliciously crafted `Content-Type` header sent
to any Kibana HTTP endpoint could cause catastrophic backtracking,
exhausting CPU and causing a denial of service. No authentication is
required to exploit this.
- **CVE:** CVE-2026-35213
- **Severity:** High
- **Fix:** Upgrade `@hapi/content` to `6.0.1` ([upstream
commit](hapijs/content@ac9a2de),
[upstream PR](hapijs/content#38))
- **Tracking issue:** elastic/security#9673
### Impact Assessment
All network-accessible Kibana deployments running `@hapi/content@6.0.0`
are potentially affected. The exploit requires no privileges and targets
the HTTP layer.
## Test plan
- [ ] CI passes — confirms the hapi version bump has no regressions in
Kibana's HTTP layer, routing, and request handling
- [ ] Confirm `yarn.lock` no longer contains `@hapi/content@6.0.0` after
bootstrap
Made with [Cursor](https://cursor.com)
@MarsupMarsup added the security Issue with security impact label May 6, 2026
patrykkopycinski pushed a commit to patrykkopycinski/kibana that referenced this pull request Aug 5, 2026
…ent (elastic#264077)
## Summary
Fixes CVE-2026-35213 — a Regular Expression Denial of Service (ReDoS)
vulnerability in `@hapi/content@6.0.0` which is a transitive dependency
of `@hapi/hapi` (Kibana's HTTP server framework).
Upgrades `@hapi/hapi` from `21.4.4` to `21.4.8`, which cascades into
patching the full vulnerable dependency chain:
| Package | Before | After | Role |
|---|---|---|---|
| `@hapi/hapi` | `21.4.4` | `21.4.8` | Direct dependency (HTTP server) |
| `@hapi/subtext` | `8.1.1` | `8.1.2` | Request body parsing (requires
`@hapi/content ^6.0.1`) |
| `@hapi/pez` | `6.1.0` | `6.1.1` | Multipart form parsing (requires
`@hapi/content ^6.0.1`) |
| `@hapi/content` | `6.0.0` | `6.0.1` | **Vulnerable package — contains
the fix** |
### Vulnerability Details
`@hapi/content@6.0.0` has a ReDoS vulnerability in its `Content-Type`
header parsing regex. A maliciously crafted `Content-Type` header sent
to any Kibana HTTP endpoint could cause catastrophic backtracking,
exhausting CPU and causing a denial of service. No authentication is
required to exploit this.
- **CVE:** CVE-2026-35213
- **Severity:** High
- **Fix:** Upgrade `@hapi/content` to `6.0.1` ([upstream
commit](hapijs/content@ac9a2de),
[upstream PR](hapijs/content#38))
- **Tracking issue:** elastic/security#9673
### Impact Assessment
All network-accessible Kibana deployments running `@hapi/content@6.0.0`
are potentially affected. The exploit requires no privileges and targets
the HTTP layer.
## Test plan
- [ ] CI passes — confirms the hapi version bump has no regressions in
Kibana's HTTP layer, routing, and request handling
- [ ] Confirm `yarn.lock` no longer contains `@hapi/content@6.0.0` after
bootstrap
Made with [Cursor](https://cursor.com)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugBug or defectsecurityIssue with security impact

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Marsup
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length \u003e 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix: protect regex from redos - #38

Merged
Marsup merged 1 commit into
masterfrom
fix/regexp-redos
Apr 2, 2026
Merged

fix: protect regex from redos#38
Marsup merged 1 commit into
masterfrom
fix/regexp-redos

Conversation

@Marsup

Copy link
Copy Markdown
Contributor

No description provided.

@MarsupMarsup added this to the 6.0.1 milestone Apr 2, 2026
@MarsupMarsup self-assigned this Apr 2, 2026
@MarsupMarsup added the bug Bug or defect label Apr 2, 2026
@Marsup
Marsup merged commit ac9a2de into masterApr 2, 2026
10 checks passed
gsoldevila added a commit to elastic/kibana that referenced this pull request Apr 21, 2026
…ent (#264077)
## Summary
Fixes CVE-2026-35213 — a Regular Expression Denial of Service (ReDoS)
vulnerability in `@hapi/content@6.0.0` which is a transitive dependency
of `@hapi/hapi` (Kibana's HTTP server framework).
Upgrades `@hapi/hapi` from `21.4.4` to `21.4.8`, which cascades into
patching the full vulnerable dependency chain:
| Package | Before | After | Role |
|---|---|---|---|
| `@hapi/hapi` | `21.4.4` | `21.4.8` | Direct dependency (HTTP server) |
| `@hapi/subtext` | `8.1.1` | `8.1.2` | Request body parsing (requires
`@hapi/content ^6.0.1`) |
| `@hapi/pez` | `6.1.0` | `6.1.1` | Multipart form parsing (requires
`@hapi/content ^6.0.1`) |
| `@hapi/content` | `6.0.0` | `6.0.1` | **Vulnerable package — contains
the fix** |
### Vulnerability Details
`@hapi/content@6.0.0` has a ReDoS vulnerability in its `Content-Type`
header parsing regex. A maliciously crafted `Content-Type` header sent
to any Kibana HTTP endpoint could cause catastrophic backtracking,
exhausting CPU and causing a denial of service. No authentication is
required to exploit this.
- **CVE:** CVE-2026-35213
- **Severity:** High
- **Fix:** Upgrade `@hapi/content` to `6.0.1` ([upstream
commit](hapijs/content@ac9a2de),
[upstream PR](hapijs/content#38))
- **Tracking issue:** elastic/security#9673
### Impact Assessment
All network-accessible Kibana deployments running `@hapi/content@6.0.0`
are potentially affected. The exploit requires no privileges and targets
the HTTP layer.
## Test plan
- [ ] CI passes — confirms the hapi version bump has no regressions in
Kibana's HTTP layer, routing, and request handling
- [ ] Confirm `yarn.lock` no longer contains `@hapi/content@6.0.0` after
bootstrap
Made with [Cursor](https://cursor.com)
@MarsupMarsup added the security Issue with security impact label May 6, 2026
patrykkopycinski pushed a commit to patrykkopycinski/kibana that referenced this pull request Aug 5, 2026
…ent (elastic#264077)
## Summary
Fixes CVE-2026-35213 — a Regular Expression Denial of Service (ReDoS)
vulnerability in `@hapi/content@6.0.0` which is a transitive dependency
of `@hapi/hapi` (Kibana's HTTP server framework).
Upgrades `@hapi/hapi` from `21.4.4` to `21.4.8`, which cascades into
patching the full vulnerable dependency chain:
| Package | Before | After | Role |
|---|---|---|---|
| `@hapi/hapi` | `21.4.4` | `21.4.8` | Direct dependency (HTTP server) |
| `@hapi/subtext` | `8.1.1` | `8.1.2` | Request body parsing (requires
`@hapi/content ^6.0.1`) |
| `@hapi/pez` | `6.1.0` | `6.1.1` | Multipart form parsing (requires
`@hapi/content ^6.0.1`) |
| `@hapi/content` | `6.0.0` | `6.0.1` | **Vulnerable package — contains
the fix** |
### Vulnerability Details
`@hapi/content@6.0.0` has a ReDoS vulnerability in its `Content-Type`
header parsing regex. A maliciously crafted `Content-Type` header sent
to any Kibana HTTP endpoint could cause catastrophic backtracking,
exhausting CPU and causing a denial of service. No authentication is
required to exploit this.
- **CVE:** CVE-2026-35213
- **Severity:** High
- **Fix:** Upgrade `@hapi/content` to `6.0.1` ([upstream
commit](hapijs/content@ac9a2de),
[upstream PR](hapijs/content#38))
- **Tracking issue:** elastic/security#9673
### Impact Assessment
All network-accessible Kibana deployments running `@hapi/content@6.0.0`
are potentially affected. The exploit requires no privileges and targets
the HTTP layer.
## Test plan
- [ ] CI passes — confirms the hapi version bump has no regressions in
Kibana's HTTP layer, routing, and request handling
- [ ] Confirm `yarn.lock` no longer contains `@hapi/content@6.0.0` after
bootstrap
Made with [Cursor](https://cursor.com)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugBug or defectsecurityIssue with security impact

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Marsup
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

fix: protect regex from redos - #38

Merged
Marsup merged 1 commit into
masterfrom
fix/regexp-redos
Apr 2, 2026
Merged

fix: protect regex from redos#38
Marsup merged 1 commit into
masterfrom
fix/regexp-redos

Conversation

@Marsup

Copy link
Copy Markdown
Contributor

No description provided.

@MarsupMarsup added this to the 6.0.1 milestone Apr 2, 2026
@MarsupMarsup self-assigned this Apr 2, 2026
@MarsupMarsup added the bug Bug or defect label Apr 2, 2026
@Marsup
Marsup merged commit ac9a2de into masterApr 2, 2026
10 checks passed
gsoldevila added a commit to elastic/kibana that referenced this pull request Apr 21, 2026
…ent (#264077)
## Summary
Fixes CVE-2026-35213 — a Regular Expression Denial of Service (ReDoS)
vulnerability in `@hapi/content@6.0.0` which is a transitive dependency
of `@hapi/hapi` (Kibana's HTTP server framework).
Upgrades `@hapi/hapi` from `21.4.4` to `21.4.8`, which cascades into
patching the full vulnerable dependency chain:
| Package | Before | After | Role |
|---|---|---|---|
| `@hapi/hapi` | `21.4.4` | `21.4.8` | Direct dependency (HTTP server) |
| `@hapi/subtext` | `8.1.1` | `8.1.2` | Request body parsing (requires
`@hapi/content ^6.0.1`) |
| `@hapi/pez` | `6.1.0` | `6.1.1` | Multipart form parsing (requires
`@hapi/content ^6.0.1`) |
| `@hapi/content` | `6.0.0` | `6.0.1` | **Vulnerable package — contains
the fix** |
### Vulnerability Details
`@hapi/content@6.0.0` has a ReDoS vulnerability in its `Content-Type`
header parsing regex. A maliciously crafted `Content-Type` header sent
to any Kibana HTTP endpoint could cause catastrophic backtracking,
exhausting CPU and causing a denial of service. No authentication is
required to exploit this.
- **CVE:** CVE-2026-35213
- **Severity:** High
- **Fix:** Upgrade `@hapi/content` to `6.0.1` ([upstream
commit](hapijs/content@ac9a2de),
[upstream PR](hapijs/content#38))
- **Tracking issue:** elastic/security#9673
### Impact Assessment
All network-accessible Kibana deployments running `@hapi/content@6.0.0`
are potentially affected. The exploit requires no privileges and targets
the HTTP layer.
## Test plan
- [ ] CI passes — confirms the hapi version bump has no regressions in
Kibana's HTTP layer, routing, and request handling
- [ ] Confirm `yarn.lock` no longer contains `@hapi/content@6.0.0` after
bootstrap
Made with [Cursor](https://cursor.com)
@MarsupMarsup added the security Issue with security impact label May 6, 2026
patrykkopycinski pushed a commit to patrykkopycinski/kibana that referenced this pull request Aug 5, 2026
…ent (elastic#264077)
## Summary
Fixes CVE-2026-35213 — a Regular Expression Denial of Service (ReDoS)
vulnerability in `@hapi/content@6.0.0` which is a transitive dependency
of `@hapi/hapi` (Kibana's HTTP server framework).
Upgrades `@hapi/hapi` from `21.4.4` to `21.4.8`, which cascades into
patching the full vulnerable dependency chain:
| Package | Before | After | Role |
|---|---|---|---|
| `@hapi/hapi` | `21.4.4` | `21.4.8` | Direct dependency (HTTP server) |
| `@hapi/subtext` | `8.1.1` | `8.1.2` | Request body parsing (requires
`@hapi/content ^6.0.1`) |
| `@hapi/pez` | `6.1.0` | `6.1.1` | Multipart form parsing (requires
`@hapi/content ^6.0.1`) |
| `@hapi/content` | `6.0.0` | `6.0.1` | **Vulnerable package — contains
the fix** |
### Vulnerability Details
`@hapi/content@6.0.0` has a ReDoS vulnerability in its `Content-Type`
header parsing regex. A maliciously crafted `Content-Type` header sent
to any Kibana HTTP endpoint could cause catastrophic backtracking,
exhausting CPU and causing a denial of service. No authentication is
required to exploit this.
- **CVE:** CVE-2026-35213
- **Severity:** High
- **Fix:** Upgrade `@hapi/content` to `6.0.1` ([upstream
commit](hapijs/content@ac9a2de),
[upstream PR](hapijs/content#38))
- **Tracking issue:** elastic/security#9673
### Impact Assessment
All network-accessible Kibana deployments running `@hapi/content@6.0.0`
are potentially affected. The exploit requires no privileges and targets
the HTTP layer.
## Test plan
- [ ] CI passes — confirms the hapi version bump has no regressions in
Kibana's HTTP layer, routing, and request handling
- [ ] Confirm `yarn.lock` no longer contains `@hapi/content@6.0.0` after
bootstrap
Made with [Cursor](https://cursor.com)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugBug or defectsecurityIssue with security impact

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Marsup
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix: protect regex from redos - #38

Merged
Marsup merged 1 commit into
masterfrom
fix/regexp-redos
Apr 2, 2026
Merged

fix: protect regex from redos#38
Marsup merged 1 commit into
masterfrom
fix/regexp-redos

Conversation

@Marsup

Copy link
Copy Markdown
Contributor

No description provided.

@MarsupMarsup added this to the 6.0.1 milestone Apr 2, 2026
@MarsupMarsup self-assigned this Apr 2, 2026
@MarsupMarsup added the bug Bug or defect label Apr 2, 2026
@Marsup
Marsup merged commit ac9a2de into masterApr 2, 2026
10 checks passed
gsoldevila added a commit to elastic/kibana that referenced this pull request Apr 21, 2026
…ent (#264077)
## Summary
Fixes CVE-2026-35213 — a Regular Expression Denial of Service (ReDoS)
vulnerability in `@hapi/content@6.0.0` which is a transitive dependency
of `@hapi/hapi` (Kibana's HTTP server framework).
Upgrades `@hapi/hapi` from `21.4.4` to `21.4.8`, which cascades into
patching the full vulnerable dependency chain:
| Package | Before | After | Role |
|---|---|---|---|
| `@hapi/hapi` | `21.4.4` | `21.4.8` | Direct dependency (HTTP server) |
| `@hapi/subtext` | `8.1.1` | `8.1.2` | Request body parsing (requires
`@hapi/content ^6.0.1`) |
| `@hapi/pez` | `6.1.0` | `6.1.1` | Multipart form parsing (requires
`@hapi/content ^6.0.1`) |
| `@hapi/content` | `6.0.0` | `6.0.1` | **Vulnerable package — contains
the fix** |
### Vulnerability Details
`@hapi/content@6.0.0` has a ReDoS vulnerability in its `Content-Type`
header parsing regex. A maliciously crafted `Content-Type` header sent
to any Kibana HTTP endpoint could cause catastrophic backtracking,
exhausting CPU and causing a denial of service. No authentication is
required to exploit this.
- **CVE:** CVE-2026-35213
- **Severity:** High
- **Fix:** Upgrade `@hapi/content` to `6.0.1` ([upstream
commit](hapijs/content@ac9a2de),
[upstream PR](hapijs/content#38))
- **Tracking issue:** elastic/security#9673
### Impact Assessment
All network-accessible Kibana deployments running `@hapi/content@6.0.0`
are potentially affected. The exploit requires no privileges and targets
the HTTP layer.
## Test plan
- [ ] CI passes — confirms the hapi version bump has no regressions in
Kibana's HTTP layer, routing, and request handling
- [ ] Confirm `yarn.lock` no longer contains `@hapi/content@6.0.0` after
bootstrap
Made with [Cursor](https://cursor.com)
@MarsupMarsup added the security Issue with security impact label May 6, 2026
patrykkopycinski pushed a commit to patrykkopycinski/kibana that referenced this pull request Aug 5, 2026
…ent (elastic#264077)
## Summary
Fixes CVE-2026-35213 — a Regular Expression Denial of Service (ReDoS)
vulnerability in `@hapi/content@6.0.0` which is a transitive dependency
of `@hapi/hapi` (Kibana's HTTP server framework).
Upgrades `@hapi/hapi` from `21.4.4` to `21.4.8`, which cascades into
patching the full vulnerable dependency chain:
| Package | Before | After | Role |
|---|---|---|---|
| `@hapi/hapi` | `21.4.4` | `21.4.8` | Direct dependency (HTTP server) |
| `@hapi/subtext` | `8.1.1` | `8.1.2` | Request body parsing (requires
`@hapi/content ^6.0.1`) |
| `@hapi/pez` | `6.1.0` | `6.1.1` | Multipart form parsing (requires
`@hapi/content ^6.0.1`) |
| `@hapi/content` | `6.0.0` | `6.0.1` | **Vulnerable package — contains
the fix** |
### Vulnerability Details
`@hapi/content@6.0.0` has a ReDoS vulnerability in its `Content-Type`
header parsing regex. A maliciously crafted `Content-Type` header sent
to any Kibana HTTP endpoint could cause catastrophic backtracking,
exhausting CPU and causing a denial of service. No authentication is
required to exploit this.
- **CVE:** CVE-2026-35213
- **Severity:** High
- **Fix:** Upgrade `@hapi/content` to `6.0.1` ([upstream
commit](hapijs/content@ac9a2de),
[upstream PR](hapijs/content#38))
- **Tracking issue:** elastic/security#9673
### Impact Assessment
All network-accessible Kibana deployments running `@hapi/content@6.0.0`
are potentially affected. The exploit requires no privileges and targets
the HTTP layer.
## Test plan
- [ ] CI passes — confirms the hapi version bump has no regressions in
Kibana's HTTP layer, routing, and request handling
- [ ] Confirm `yarn.lock` no longer contains `@hapi/content@6.0.0` after
bootstrap
Made with [Cursor](https://cursor.com)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugBug or defectsecurityIssue with security impact

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Marsup
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix: protect regex from redos - #38

Merged
Marsup merged 1 commit into
masterfrom
fix/regexp-redos
Apr 2, 2026
Merged

fix: protect regex from redos#38
Marsup merged 1 commit into
masterfrom
fix/regexp-redos

Conversation

@Marsup

Copy link
Copy Markdown
Contributor

No description provided.

@MarsupMarsup added this to the 6.0.1 milestone Apr 2, 2026
@MarsupMarsup self-assigned this Apr 2, 2026
@MarsupMarsup added the bug Bug or defect label Apr 2, 2026
@Marsup
Marsup merged commit ac9a2de into masterApr 2, 2026
10 checks passed
gsoldevila added a commit to elastic/kibana that referenced this pull request Apr 21, 2026
…ent (#264077)
## Summary
Fixes CVE-2026-35213 — a Regular Expression Denial of Service (ReDoS)
vulnerability in `@hapi/content@6.0.0` which is a transitive dependency
of `@hapi/hapi` (Kibana's HTTP server framework).
Upgrades `@hapi/hapi` from `21.4.4` to `21.4.8`, which cascades into
patching the full vulnerable dependency chain:
| Package | Before | After | Role |
|---|---|---|---|
| `@hapi/hapi` | `21.4.4` | `21.4.8` | Direct dependency (HTTP server) |
| `@hapi/subtext` | `8.1.1` | `8.1.2` | Request body parsing (requires
`@hapi/content ^6.0.1`) |
| `@hapi/pez` | `6.1.0` | `6.1.1` | Multipart form parsing (requires
`@hapi/content ^6.0.1`) |
| `@hapi/content` | `6.0.0` | `6.0.1` | **Vulnerable package — contains
the fix** |
### Vulnerability Details
`@hapi/content@6.0.0` has a ReDoS vulnerability in its `Content-Type`
header parsing regex. A maliciously crafted `Content-Type` header sent
to any Kibana HTTP endpoint could cause catastrophic backtracking,
exhausting CPU and causing a denial of service. No authentication is
required to exploit this.
- **CVE:** CVE-2026-35213
- **Severity:** High
- **Fix:** Upgrade `@hapi/content` to `6.0.1` ([upstream
commit](hapijs/content@ac9a2de),
[upstream PR](hapijs/content#38))
- **Tracking issue:** elastic/security#9673
### Impact Assessment
All network-accessible Kibana deployments running `@hapi/content@6.0.0`
are potentially affected. The exploit requires no privileges and targets
the HTTP layer.
## Test plan
- [ ] CI passes — confirms the hapi version bump has no regressions in
Kibana's HTTP layer, routing, and request handling
- [ ] Confirm `yarn.lock` no longer contains `@hapi/content@6.0.0` after
bootstrap
Made with [Cursor](https://cursor.com)
@MarsupMarsup added the security Issue with security impact label May 6, 2026
patrykkopycinski pushed a commit to patrykkopycinski/kibana that referenced this pull request Aug 5, 2026
…ent (elastic#264077)
## Summary
Fixes CVE-2026-35213 — a Regular Expression Denial of Service (ReDoS)
vulnerability in `@hapi/content@6.0.0` which is a transitive dependency
of `@hapi/hapi` (Kibana's HTTP server framework).
Upgrades `@hapi/hapi` from `21.4.4` to `21.4.8`, which cascades into
patching the full vulnerable dependency chain:
| Package | Before | After | Role |
|---|---|---|---|
| `@hapi/hapi` | `21.4.4` | `21.4.8` | Direct dependency (HTTP server) |
| `@hapi/subtext` | `8.1.1` | `8.1.2` | Request body parsing (requires
`@hapi/content ^6.0.1`) |
| `@hapi/pez` | `6.1.0` | `6.1.1` | Multipart form parsing (requires
`@hapi/content ^6.0.1`) |
| `@hapi/content` | `6.0.0` | `6.0.1` | **Vulnerable package — contains
the fix** |
### Vulnerability Details
`@hapi/content@6.0.0` has a ReDoS vulnerability in its `Content-Type`
header parsing regex. A maliciously crafted `Content-Type` header sent
to any Kibana HTTP endpoint could cause catastrophic backtracking,
exhausting CPU and causing a denial of service. No authentication is
required to exploit this.
- **CVE:** CVE-2026-35213
- **Severity:** High
- **Fix:** Upgrade `@hapi/content` to `6.0.1` ([upstream
commit](hapijs/content@ac9a2de),
[upstream PR](hapijs/content#38))
- **Tracking issue:** elastic/security#9673
### Impact Assessment
All network-accessible Kibana deployments running `@hapi/content@6.0.0`
are potentially affected. The exploit requires no privileges and targets
the HTTP layer.
## Test plan
- [ ] CI passes — confirms the hapi version bump has no regressions in
Kibana's HTTP layer, routing, and request handling
- [ ] Confirm `yarn.lock` no longer contains `@hapi/content@6.0.0` after
bootstrap
Made with [Cursor](https://cursor.com)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugBug or defectsecurityIssue with security impact

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Marsup
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

fix: protect regex from redos - #38

Merged
Marsup merged 1 commit into
masterfrom
fix/regexp-redos
Apr 2, 2026
Merged

fix: protect regex from redos#38
Marsup merged 1 commit into
masterfrom
fix/regexp-redos

Conversation

@Marsup

Copy link
Copy Markdown
Contributor

No description provided.

@MarsupMarsup added this to the 6.0.1 milestone Apr 2, 2026
@MarsupMarsup self-assigned this Apr 2, 2026
@MarsupMarsup added the bug Bug or defect label Apr 2, 2026
@Marsup
Marsup merged commit ac9a2de into masterApr 2, 2026
10 checks passed
gsoldevila added a commit to elastic/kibana that referenced this pull request Apr 21, 2026
…ent (#264077)
## Summary
Fixes CVE-2026-35213 — a Regular Expression Denial of Service (ReDoS)
vulnerability in `@hapi/content@6.0.0` which is a transitive dependency
of `@hapi/hapi` (Kibana's HTTP server framework).
Upgrades `@hapi/hapi` from `21.4.4` to `21.4.8`, which cascades into
patching the full vulnerable dependency chain:
| Package | Before | After | Role |
|---|---|---|---|
| `@hapi/hapi` | `21.4.4` | `21.4.8` | Direct dependency (HTTP server) |
| `@hapi/subtext` | `8.1.1` | `8.1.2` | Request body parsing (requires
`@hapi/content ^6.0.1`) |
| `@hapi/pez` | `6.1.0` | `6.1.1` | Multipart form parsing (requires
`@hapi/content ^6.0.1`) |
| `@hapi/content` | `6.0.0` | `6.0.1` | **Vulnerable package — contains
the fix** |
### Vulnerability Details
`@hapi/content@6.0.0` has a ReDoS vulnerability in its `Content-Type`
header parsing regex. A maliciously crafted `Content-Type` header sent
to any Kibana HTTP endpoint could cause catastrophic backtracking,
exhausting CPU and causing a denial of service. No authentication is
required to exploit this.
- **CVE:** CVE-2026-35213
- **Severity:** High
- **Fix:** Upgrade `@hapi/content` to `6.0.1` ([upstream
commit](hapijs/content@ac9a2de),
[upstream PR](hapijs/content#38))
- **Tracking issue:** elastic/security#9673
### Impact Assessment
All network-accessible Kibana deployments running `@hapi/content@6.0.0`
are potentially affected. The exploit requires no privileges and targets
the HTTP layer.
## Test plan
- [ ] CI passes — confirms the hapi version bump has no regressions in
Kibana's HTTP layer, routing, and request handling
- [ ] Confirm `yarn.lock` no longer contains `@hapi/content@6.0.0` after
bootstrap
Made with [Cursor](https://cursor.com)
@MarsupMarsup added the security Issue with security impact label May 6, 2026
patrykkopycinski pushed a commit to patrykkopycinski/kibana that referenced this pull request Aug 5, 2026
…ent (elastic#264077)
## Summary
Fixes CVE-2026-35213 — a Regular Expression Denial of Service (ReDoS)
vulnerability in `@hapi/content@6.0.0` which is a transitive dependency
of `@hapi/hapi` (Kibana's HTTP server framework).
Upgrades `@hapi/hapi` from `21.4.4` to `21.4.8`, which cascades into
patching the full vulnerable dependency chain:
| Package | Before | After | Role |
|---|---|---|---|
| `@hapi/hapi` | `21.4.4` | `21.4.8` | Direct dependency (HTTP server) |
| `@hapi/subtext` | `8.1.1` | `8.1.2` | Request body parsing (requires
`@hapi/content ^6.0.1`) |
| `@hapi/pez` | `6.1.0` | `6.1.1` | Multipart form parsing (requires
`@hapi/content ^6.0.1`) |
| `@hapi/content` | `6.0.0` | `6.0.1` | **Vulnerable package — contains
the fix** |
### Vulnerability Details
`@hapi/content@6.0.0` has a ReDoS vulnerability in its `Content-Type`
header parsing regex. A maliciously crafted `Content-Type` header sent
to any Kibana HTTP endpoint could cause catastrophic backtracking,
exhausting CPU and causing a denial of service. No authentication is
required to exploit this.
- **CVE:** CVE-2026-35213
- **Severity:** High
- **Fix:** Upgrade `@hapi/content` to `6.0.1` ([upstream
commit](hapijs/content@ac9a2de),
[upstream PR](hapijs/content#38))
- **Tracking issue:** elastic/security#9673
### Impact Assessment
All network-accessible Kibana deployments running `@hapi/content@6.0.0`
are potentially affected. The exploit requires no privileges and targets
the HTTP layer.
## Test plan
- [ ] CI passes — confirms the hapi version bump has no regressions in
Kibana's HTTP layer, routing, and request handling
- [ ] Confirm `yarn.lock` no longer contains `@hapi/content@6.0.0` after
bootstrap
Made with [Cursor](https://cursor.com)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugBug or defectsecurityIssue with security impact

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Marsup