Skip to content

Commit a9a0989

Browse files
Bump pinned Coana CLI to 15.13.0 and patch brotli / brotlicffi (#423)
* Bump pinned Coana CLI to 15.13.0 * Bump brotli and brotlicffi to patched versions brotli 1.2.1 and brotlicffi 1.2.1.0 fix CVE-2026-111497 (GHSA-9v8h-qqgm-4m35), an out-of-bounds write in the Brotli decoder. The exact pins kept installs from picking up the fix. Relocking also moves the dev-only filelock to 4.2.4, the other finding failing dependency-audit. * Release the Coana bump in 2.11.4 2.11.4 isn't on PyPI yet, so ship the engine bump with it instead of cutting 2.11.5. * Drop the claim that the CLI never runs the Brotli decoder With brotli installed, requests advertises br and urllib3 decodes br-encoded responses with it, so the affected decoder is reachable through the CLI's HTTP calls. --------- Co-authored-by: socket-pr-bot[bot] <294242679+socket-pr-bot[bot]@users.noreply.github.com> Co-authored-by: lelia <2418071+lelia@users.noreply.github.com>
1 parent e248bf7 commit a9a0989

5 files changed

Lines changed: 124 additions & 70 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@
22

33
## 2.11.4
44

5+
### Fixed: bump `brotli` and `brotlicffi` to patched versions
6+
7+
- Bumped the pinned `brotli` (CPython) from `1.2.0` to `1.2.1` and `brotlicffi`
8+
(other implementations) from `1.2.0.2` to `1.2.1.0`, which fix
9+
CVE-2026-111497 (GHSA-9v8h-qqgm-4m35), an out-of-bounds write in the Brotli
10+
decoder. The pins are exact, so earlier releases couldn't be installed
11+
alongside the patched versions.
12+
513
### Fixed: find the reachability facts file when `--target-path` isn't the working directory
614

715
- `--only-facts-file` and `--reach-use-only-pregenerated-sboms` now submit the
@@ -13,6 +21,13 @@
1321
`7.3.20` (Python 3.11). The reachability engine uses it to speed up Python
1422
analysis.
1523

24+
### Changed: bump pinned Coana CLI to 15.13.0
25+
26+
- Bumped the pinned reachability engine (the Coana CLI) from `15.12.11` to
27+
`15.13.0`. See the
28+
[reachability analysis changelog](https://docs.socket.dev/docs/reachability-analysis-changelog)
29+
for engine changes.
30+
1631
## 2.11.3
1732

1833
### Fixed: finish rejecting the compromised eMudhra intermediate CAs

‎docs/cli-reference.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,7 @@ If you don't want to provide the Socket API Token every time then you can use th
338338
| Parameter | Required | Default | Description |
339339
|:---------------------------------|:---------|:--------|:---------------------------------------------------------------------------------------------------------------------------|
340340
| `--reach` | False | False | Enable reachability analysis to identify which vulnerable functions are actually called by your code. Creates a full application reachability scan (`scan_type=socket_tier1`). |
341-
| `--reach-version` | False | 15.12.11 | Version of the Coana CLI to use. Defaults to the pinned version that ships with this CLI release, so the engine only changes when you upgrade the Socket CLI. Pass `latest` to always use the newest published version (opt-in auto-update), or an explicit version (e.g. `1.2.3`) to pin it. |
341+
| `--reach-version` | False | 15.13.0 | Version of the Coana CLI to use. Defaults to the pinned version that ships with this CLI release, so the engine only changes when you upgrade the Socket CLI. Pass `latest` to always use the newest published version (opt-in auto-update), or an explicit version (e.g. `1.2.3`) to pin it. |
342342
| `--reach-analysis-timeout` | False | 10m | Timeout for each reachability analysis run, e.g. `90s`, `10m` or `1h`. Omitted by default, so coana applies its own default (`10m`). Alias: `--reach-timeout` |
343343
| `--reach-analysis-memory-limit` | False | 8GB | Memory limit for each reachability analysis run, e.g. `512MB` or `8GB`. Omitted by default, so coana applies its own default (`8GB`). Alias: `--reach-memory-limit` |
344344
| `--reach-concurrency` | False | 1 | Control parallel analysis execution (must be >= 1). Omitted by default, so coana applies its own default. |

‎pyproject.toml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ dependencies = [
1919
"socketdev==3.6.1",
2020
"beautifulsoup4==4.15.0",
2121
"markdown==3.11.1",
22-
"brotli==1.2.0; platform_python_implementation == 'CPython'",
23-
"brotlicffi==1.2.0.2; platform_python_implementation != 'CPython'",
22+
"brotli==1.2.1; platform_python_implementation == 'CPython'",
23+
"brotlicffi==1.2.1.0; platform_python_implementation != 'CPython'",
2424
# requests' CA bundle. A floor rather than an exact pin, so later trust-store
2525
# fixes still reach installs; 2026.10.19 drops the roots behind the
2626
# compromised eMudhra intermediates.

‎socketsecurity/core/tools/reachability.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
# Pinned Coana CLI version. Bumped deliberately per Python CLI release so the
2323
# reachability engine version only changes through a standard pip upgrade (advance notice).
2424
# Pass --reach-version latest to opt into the newest published version instead.
25-
DEFAULT_COANA_CLI_VERSION: Final = "15.12.11"
25+
DEFAULT_COANA_CLI_VERSION: Final = "15.13.0"
2626

2727
# Vendored from coana-package-manager, where it is generated; the only code that may read or
2828
# write the cache Coana shares with the Socket CLIs. See "Launching Coana" in that repo's

0 commit comments

Comments
 (0)