Skip to content

[CVE-2026-54428] Bump httpclient5 to 5.6.2 - #462

Merged
Jan-Kazlouski-elastic merged 1 commit into
mainfrom
jan-kazlouski/13046-cve-2026-54428-fix
Aug 4, 2026
Merged

[CVE-2026-54428] Bump httpclient5 to 5.6.2#462
Jan-Kazlouski-elastic merged 1 commit into
mainfrom
jan-kazlouski/13046-cve-2026-54428-fix

Conversation

@Jan-Kazlouski-elastic

Copy link
Copy Markdown
Contributor

Part of https://github.com/elastic/security/issues/13046

Also covers:

Resolves CVE-2026-54428 (high) — HTTP/2 HPACK decoder resource exhaustion in httpcore5-h2. Bumping httpclient5 to 5.6.2 pulls httpcore5/httpcore5-h2 5.4.3, which also clears CVE-2026-54399.

Changes

  • Jarfile / Jars.lock / vendor/jars/: httpclient5 5.5.15.6.2; httpcore5/httpcore5-h2 5.3.65.4.3

Testing

  • Full make test: 690 examples, 0 failures
  • Scanner A/B:

Scanner A/B (CVE-2026-54428 / CVE-2026-54399)

Tool Before After
Trivy n/a (DB gap) n/a
Snyk reported clear

Made with Cursor

Pulls httpcore5/httpcore5-h2 5.4.3, clearing High CVE-2026-54428 and
CVE-2026-54399 (HTTP resource exhaustion). Also retains the CVE-2025-8671 fix.

Part of elastic/security#13046

Co-authored-by: Cursor <cursoragent@cursor.com>
@Jan-Kazlouski-elastic
Jan-Kazlouski-elastic merged commit 5066d07 into main Aug 4, 2026
6 checks passed
@Jan-Kazlouski-elastic
Jan-Kazlouski-elastic deleted the jan-kazlouski/13046-cve-2026-54428-fix branch August 4, 2026 07:38
Jan-Kazlouski-elastic added a commit that referenced this pull request Aug 4, 2026
### Closes #465

Same failure mode as
[elastic/connectors#4289](elastic/connectors#4289).

The repository's default `GITHUB_TOKEN` permission is now read-only:

```text
$ gh api repos/elastic/crawler/actions/permissions/workflow
{"default_workflow_permissions":"read","can_approve_pull_request_reviews":true}
```

Neither workflow in `.github/workflows/` declared a `permissions:`
block, so they inherit that default. After merging #462, backport failed
with:

1. `Permission to elastic/crawler.git denied to github-actions[bot]` on
`git push` of the backport branch (`contents: write` missing)
2. `Resource not accessible by integration` when posting the failure
comment on the source PR (`pull-requests: write` missing)

This declares the scopes each workflow actually needs (least privilege),
overriding the read-only default without flipping the repository setting
back to read/write for everything.

| Workflow | Scopes | Why |
|----------|--------|-----|
| `add-labels-main.yml` | `contents: read`, `pull-requests: write` |
checkout reads `product_version`; action labels the PR |
| `backport.yml` | `contents: write`, `pull-requests: write` | pushes
cherry-pick branches, opens backport PRs, comments status on the source
PR |

`backport.yml`'s `approver_token` (`REPO_SCOPED_TOKEN`) is unaffected by
the `GITHUB_TOKEN` default.

### Note on verifying this PR

`pull_request_target` always runs the workflow from the **base** branch,
so backport/add-labels will still use `main`'s copy (without
permissions) while this PR is open. The fix takes effect only after
merge. After merge, re-trigger backport for any PRs that failed (e.g.
#462) by re-adding the `auto-backport` label, or run the manual command
from the failure comment.

### Checklists

#### Pre-Review Checklist
- [x] This PR does NOT contain credentials of any kind
- [x] This PR has a meaningful title
- [x] This PR links to all relevant GitHub issues
- [x] this PR has a thorough description
- [ ] Covered the changes with automated tests (no workflow YAML test
harness)
- [x] Tested the changes locally (YAML structure + permissions blocks
verified)
- [x] Added a label for each target release version
- [ ] Considered corresponding documentation changes

Deliberately **not** labelled `auto-backport`: both workflows are gated
on `branches: main`, so copies on maintenance branches never run.

#### Changes Requiring Extra Attention
- [x] Security-related changes — both workflows use
`pull_request_target`. Grants are safe: neither checks out or executes
PR head code. `add-labels-main.yml` checks out the base ref and only
reads `product_version`. `backport.yml` checks out a pinned external
actions repo and only runs after merge into `main`.

### Release Note

No user-facing change; CI configuration only.

Made with [Cursor](https://cursor.com)

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

💚 Backport PR(s) successfully created

Status Branch Result
1.0 #468

This backport PR will be merged automatically after passing CI.

Jan-Kazlouski-elastic added a commit that referenced this pull request Aug 4, 2026
Backports the following commits to 1.0:
 - [CVE-2026-54428] Bump httpclient5 to 5.6.2 (#462)

Co-authored-by: Jan-Kazlouski-elastic <jan.kazlouski@elastic.co>
Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants