• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

bedrock-kv / bedrock / a4287814f323b4f8c0927121384963dbc5159983
82%

Build:
DEFAULT BRANCH: develop
Ran 19 Aug 2026 02:30PM UTC
Jobs 1
Files 209
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

19 Aug 2026 02:26PM UTC coverage: 75.904%. Remained the same
a4287814f323b4f8c0927121384963dbc5159983

push

github

web-flow
Drop hackney (4 CVEs): object storage uses Req; audit deps in CI (bedrock-q31) (#142)

## Why

An OSV audit of `mix.lock` found our runtime HTTP client, **hackney
1.25.0**, carrying four CVEs (all first fixed in hackney 4.0.1):

- **CVE-2026-47069** — CRLF/header injection via unvalidated cookie
`domain`/`path` options
- **CVE-2026-47071** — SOCKS5 TLS upgrade ignores the caller's timeout
- **CVE-2026-47075** — CR/LF injection in query parameters
- **CVE-2026-47076** — SSRF allowlist bypass via percent-encoded host in
`hackney_url:normalize/2`

hackney reached us only through ex_aws (object storage), as its default
HTTP client.

## What

**hackney leaves the dependency tree entirely.** Rather than upgrading
it, object storage now uses **Req 0.7** through ex_aws's own
`ExAws.Request.Req` adapter (ex_aws bumped 2.6.1 → 2.7.0). The S3
backend injects the client per request, and callers can still override
`:http_client` through their backend config. Nine transitive packages
drop out of the lock (hackney, certifi, idna, ssl_verify_fun,
parse_trans, mimerl, h2, webtransport, quic), replaced by the maintained
Req/Finch/Mint stack.

This also made an intermediate fix unnecessary: the first commit
upgraded to hackney 4.7.4 and shimmed around an ex_aws 2.7 adapter
regression (its bundled hackney adapter crashes on bodiless HEAD
responses — caught by four red CAS tests against real MinIO). Req's
adapter operates on response structs with no tuple-shape fragility, so
the second commit deletes the shim along with hackney itself.

**`mix deps.audit` now runs in CI** — `mix_audit` added as a dev/test
dep with a CI step (one matrix cell), so future advisories fail the
build instead of accumulating silently.

## Known, deferred

The MinIO **test binary** (RELEASE.2024-09-13) has 21 known advisories,
but cannot currently be upgraded: `minio_server` 0.4.0 (latest) resolves
versions from a list bundled in the package, whose newest entry is that
same release, and rejects a... (continued)

0 of 1 new or added line in 1 file covered. (0.0%)

6064 of 7989 relevant lines covered (75.9%)

1087.71 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
0.0
0.0% lib/bedrock/object_storage/s3.ex
Jobs
ID Job ID Ran Files Coverage
1 a4287814f323b4f8c0927121384963dbc5159983.1 19 Aug 2026 02:30PM UTC 209
75.9
GitHub Action Run
Source Files on build a4287814f323b4f8c0927121384963dbc5159983
  • Tree
  • List 209
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • a4287814 on github
  • Prev Build on develop (#61BFEC8E...)
  • Next Build on develop (#EBBA0162...)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc