Skip to content

fix(security): drop the vulnerable lru via ratatui 0.30 and ewf 0.4.9 - #10

Merged
h4x0r merged 2 commits into
mainfrom
fix/ratatui-030-drops-lru
Aug 6, 2026
Merged

fix(security): drop the vulnerable lru via ratatui 0.30 and ewf 0.4.9#10
h4x0r merged 2 commits into
mainfrom
fix/ratatui-030-drops-lru

Conversation

@h4x0r

@h4x0r h4x0r commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

RUSTSEC-2026-0002 — lru's IterMut violating Stacked Borrows, memory-corruption
category, patched in >= 0.16.3. This repo resolved lru 0.12.5 from two
independent requirers, both caret-trapped below the patch:

ratatui 0.29.0  requires lru ^0.12    -> ratatui 0.30 drops lru entirely
ewf     0.4.7   requires lru ^0.12    -> ewf 0.4.9 requires lru 0.18.1

Both are fixed by moving forward, not by ignoring: the lockfile now resolves a
single lru 0.18.2 and the vulnerable version is gone from the graph.

The ratatui half needed a manifest change because ^0.29 cannot reach 0.30. The
ewf half needed only cargo update, since the requirement here was already
"0.4"; it had simply never been refreshed past 0.4.7.

NOT fixed here, and stated rather than left to be discovered: cargo deny check advisories is still red on RUSTSEC-2026-0222 (wasmtime). That failure is
pre-existing — it reproduces identically on unmodified main — and is unrelated
to this change. It also does NOT share issen's cause: there wasmtime arrives via
yara-x, whereas here the requirer is wit-component 0.244.0 needing
wasmtime ^34.0.1, and 34.x is not one of the patched lines
(24.0.12+/36.0.13+/46.0.2+/47.0.3+). Reusing issen's exemption text would have
recorded a cause that is false for this repo, so that advisory is left for a
change that can investigate its own chain.

Verified: 104 test suites pass, fmt clean, cargo vet --locked succeeds with
zero self-certified audits, and the resolved lru is 0.18.2.

RUSTSEC-2026-0002 — lru's `IterMut` violating Stacked Borrows, memory-corruption
category, patched in >= 0.16.3. This repo resolved lru 0.12.5 from two
independent requirers, both caret-trapped below the patch:

    ratatui 0.29.0  requires lru ^0.12    -> ratatui 0.30 drops lru entirely
    ewf     0.4.7   requires lru ^0.12    -> ewf 0.4.9 requires lru 0.18.1

Both are fixed by moving forward, not by ignoring: the lockfile now resolves a
single lru 0.18.2 and the vulnerable version is gone from the graph.

The ratatui half needed a manifest change because `^0.29` cannot reach 0.30. The
ewf half needed only `cargo update`, since the requirement here was already
"0.4"; it had simply never been refreshed past 0.4.7.

NOT fixed here, and stated rather than left to be discovered: `cargo deny check
advisories` is still red on RUSTSEC-2026-0222 (wasmtime). That failure is
pre-existing — it reproduces identically on unmodified main — and is unrelated
to this change. It also does NOT share issen's cause: there wasmtime arrives via
yara-x, whereas here the requirer is `wit-component 0.244.0` needing
wasmtime ^34.0.1, and 34.x is not one of the patched lines
(24.0.12+/36.0.13+/46.0.2+/47.0.3+). Reusing issen's exemption text would have
recorded a cause that is false for this repo, so that advisory is left for a
change that can investigate its own chain.

Verified: 104 test suites pass, fmt clean, `cargo vet --locked` succeeds with
zero self-certified audits, and the resolved lru is 0.18.2.
@socket-security

socket-security Bot commented Aug 6, 2026

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatedewf@​0.4.7 ⏵ 0.4.99610093100100
Updatedratatui@​0.29.0 ⏵ 0.30.2100 +110093 -1100100

View full report

Corrects an earlier reading in this branch. The previous commit message said
blazehash's wasmtime came from `wit-component 0.244.0` and was therefore a
different cause from issen's. That was wrong. The wit-component dependency is
`kind = dev` — a dev-dependency of a dependency, which cargo never resolves into
this graph. `cargo tree -i wasmtime --target all --all-features` names the real
chain:

    wasmtime 25.0.3  <- yara-x 0.9.0  <- blazehash

which is the same yara-x cause issen has, so issen's reasoning does apply here
and scoping it out was a mistake.

The advisory still cannot be fixed by upgrading, and the numbers differ enough
to be worth stating rather than copying:

    resolved:      wasmtime 25.0.3  <- yara-x 0.9.0     (issen: 26.0.1 <- 0.12.0)
    patched:       >=24.0.12,<25 | >=36.0.13,<37 | >=46.0.2,<47 | >=47.0.3
    latest yara-x: 1.19.0, requires wasmtime ^43.0.2 — not a patched line

Sharing issen's wasmtime would not help either: 26.0.1 is outside every patched
range too, so unifying the two repos on one version yields two unpatched
resolutions rather than none.

Exposure is low and worth naming: CVSS AV:L/AC:H/PR:H/UI:R — local access, high
attack complexity, high privileges, user interaction. blazehash never executes
untrusted WASM; wasmtime is present only because yara-x compiles YARA rules to
WASM internally.

Verified by control rather than by reading the green: with the entry removed,
`cargo deny check advisories` exits non-zero; with it, the check passes.
@h4x0r
h4x0r merged commit 1238ba9 into main Aug 6, 2026
9 checks passed
@h4x0r
h4x0r deleted the fix/ratatui-030-drops-lru branch August 9, 2026 15:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant