Skip to content

[9.4] fix(deps): bump aiohttp to 3.14.1 (#4237) - #4246

Merged
Jan-Kazlouski-elastic merged 1 commit into
9.4from
backport/9.4/pr-4237
Jul 21, 2026
Merged

[9.4] fix(deps): bump aiohttp to 3.14.1 (#4237)#4246
Jan-Kazlouski-elastic merged 1 commit into
9.4from
backport/9.4/pr-4237

Conversation

@github-actions

Copy link
Copy Markdown

Backports the following commits to 9.4:

## Part of elastic/security#12526

Bumps `aiohttp` `3.13.3` → `3.14.1` in both `app/connectors_service` and
`libs/connectors_sdk`. This single bump remediates **21** `aiohttp` CVEs
currently reported against the `main` pin (`3.13.3`) — every CVE fixed
in aiohttp `3.13.4`, `3.14.0`, and `3.14.1`. The full list (with
tracking issues) is in the Scanner A/B section below.

connectors uses `aiohttp` only as an HTTP **client**
(`aiohttp.ClientSession`) and never runs an aiohttp web server, so the
server-side CVEs in this set are **Not Affected** in practice. The bump
is applied proactively to clear the advisories and keep the dependency
current.

### aiohttp 3.14 test compatibility (no runtime change)

aiohttp 3.14 added a required `stream_writer` argument to
`ClientResponse` (which breaks `aioresponses`, which has no released
fix) and deprecated `BasicAuth` / the `auth=` parameter. To keep the
suite green with **no runtime behavior change**:

- A self-gating `aioresponses` shim in both test `conftest.py` files —
injects a no-op `stream_writer` when the caller omits it; inert on
aiohttp `<3.14` and once `aioresponses` ships a fix.
- Two benign deprecation warnings (`BasicAuth`, `auth=`) added to
`filterwarnings`, consistent with the existing third-party deprecation
ignores in this repo.

The `auth=` / `BasicAuth` → `encode_basic_auth()` migration is deferred
to a follow-up before aiohttp 4.0.

## Checklists

#### Pre-Review Checklist
- [x] this PR does NOT contain credentials of any kind, such as API keys
or username/passwords (double check `config.yml.example`)
- [x] this PR has a meaningful title
- [x] this PR links to all relevant github issues that it fixes or
partially addresses
- [x] this PR has a thorough description
- [x] Covered the changes with automated tests
- [x] Tested the changes locally
- [x] Added a label for each target release version (example: `v7.13.2`,
`v7.14.0`, `v8.0.0`)
- [x] For bugfixes: backport safely to all minor branches still
receiving patch releases

#### Changes Requiring Extra Attention

- [x] Security-related changes (encryption, TLS, SSRF, etc)

## Scanner A/B (aiohttp `3.13.3` → `3.14.1`)

Before = `aiohttp==3.13.3` (current `main` pin) · After =
`aiohttp==3.14.1` (this PR). `pip-audit`, `Trivy`, and `Snyk` were each
run against both pins.

| Tool | Before (`3.13.3`) | After (`3.14.1`) |
|------|-------------------|------------------|
| pip-audit | 21 reported | 0 — clear |
| Trivy | 21 reported | 0 — clear |
| Snyk | 21 reported | 0 — clear |

All **21** CVEs / issues remediated by this PR — reported on `3.13.3` by
all three tools, clear on `3.14.1`:

| CVE | Issue | Fixed in aiohttp | Before | After |
|-----|-------|------------------|--------|-------|
| CVE-2026-22815 | elastic/security#12501 | 3.13.4 | reported | clear |
| CVE-2026-34513 | elastic/security#12507 | 3.13.4 | reported | clear |
| CVE-2026-34514 | elastic/security#12508 | 3.13.4 | reported | clear |
| CVE-2026-34515 | elastic/security#12509 | 3.13.4 | reported | clear |
| CVE-2026-34516 | elastic/security#12510 | 3.13.4 | reported | clear |
| CVE-2026-34517 | elastic/security#12511 | 3.13.4 | reported | clear |
| CVE-2026-34518 | elastic/security#12512 | 3.13.4 | reported | clear |
| CVE-2026-34519 | elastic/security#12513 | 3.13.4 | reported | clear |
| CVE-2026-34520 | elastic/security#12514 | 3.13.4 | reported | clear |
| CVE-2026-34525 | elastic/security#12515 | 3.13.4 | reported | clear |
| CVE-2026-34993 | elastic/security#12516 | 3.14.0 | reported | clear |
| CVE-2026-47265 | elastic/security#12519 | 3.14.0 | reported | clear |
| CVE-2026-50269 | elastic/security#12537 | 3.14.0 | reported | clear |
| CVE-2026-54273 | elastic/security#12526 | 3.14.1 | reported | clear |
| CVE-2026-54274 | elastic/security#12527 | 3.14.1 | reported | clear |
| CVE-2026-54275 | elastic/security#12528 | 3.14.1 | reported | clear |
| CVE-2026-54276 | elastic/security#12529 | 3.14.1 | reported | clear |
| CVE-2026-54277 | elastic/security#12530 | 3.14.1 | reported | clear |
| CVE-2026-54278 | elastic/security#12531 | 3.14.1 | reported | clear |
| CVE-2026-54279 | elastic/security#12532 | 3.14.1 | reported | clear |
| CVE-2026-54280 | elastic/security#12533 | 3.14.1 | reported | clear |

<sub>The 8 CVEs fixed in aiohttp `3.13.3`
(`CVE-2025-69223`…`CVE-2025-69230`, elastic/security#12492–#12499) are
already remediated on `main` and are out of scope for this PR.</sub>

## Release Note

Bump `aiohttp` to `3.14.1` to remediate 21 reported CVEs.

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
@github-actions github-actions Bot mentioned this pull request Jul 21, 2026
9 tasks
@Jan-Kazlouski-elastic
Jan-Kazlouski-elastic merged commit 8ce5302 into 9.4 Jul 21, 2026
4 checks passed
@Jan-Kazlouski-elastic
Jan-Kazlouski-elastic deleted the backport/9.4/pr-4237 branch July 21, 2026 08:33
Jan-Kazlouski-elastic added a commit that referenced this pull request Jul 21, 2026
Backports #4237 to `8.19`.

## What

Bumps `aiohttp` `3.13.3` → `3.14.1` in `requirements/framework.txt`,
remediating **21** reported `aiohttp` CVEs (every CVE fixed across
aiohttp `3.13.4`, `3.14.0`, `3.14.1`). connectors uses `aiohttp` only as
an HTTP **client** (`aiohttp.ClientSession`) and never runs an aiohttp
web server, so the server-side CVEs in this set are **Not Affected** in
practice; the bump is applied proactively to clear the advisories.

This is the missing `8.19` line for #4237 — the `9.5`/`9.4`/`9.3`
backports already merged (#4245/#4246/#4247), but no `8.19` backport was
ever opened despite the `v8.19.20` label.

## aiohttp 3.14 test compatibility (no runtime change)

aiohttp 3.14 made `stream_writer` a required kwarg of `ClientResponse`
(which `aioresponses` omits) and deprecated `BasicAuth` / the `auth=`
parameter. To keep the suite green with **no runtime behavior change**:

- A self-gating `aioresponses` shim in `tests/conftest.py` — injects a
no-op `stream_writer` when the caller omits it; inert on aiohttp `<3.14`
and once `aioresponses` ships a fix.
- Two benign deprecation warnings (`BasicAuth`, `auth=`) added to
`pytest.ini` `filterwarnings`, consistent with existing third-party
deprecation ignores.

`NOTICE.txt` regenerated via `make install`.

## Testing

`make clean install autoformat lint test PYTHON=python3.11` — lint
clean, `NOTICE.txt` regenerated, and the full suite passes (2437
passed). The only non-green signals were the aggressive local
`--fail-slow=1s` threshold flagging an otherwise-passing test and
time/order-dependent flakes unrelated to this change.

## Release Note

Bump `aiohttp` to `3.14.1` to remediate 21 reported CVEs.

Part of elastic/security#12526

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

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants