Skip to content

fix(security): clear the last vulnerable lru by widening the usb-forensic caret - #21

Merged
h4x0r merged 1 commit into
mainfrom
fix/lru-clear-the-chain
Aug 6, 2026
Merged

fix(security): clear the last vulnerable lru by widening the usb-forensic caret#21
h4x0r merged 1 commit into
mainfrom
fix/lru-clear-the-chain

Conversation

@h4x0r

@h4x0r h4x0r commented Aug 6, 2026

Copy link
Copy Markdown
Collaborator

Completes RUSTSEC-2026-0002 for this repo. lru is now 0.16.4 and 0.18.2 — both
at or above the >= 0.16.3 patch line — and the vulnerable 0.12.5 is gone from
the graph.

It took four upstream releases to get here, because the trap was a chain of OUR
OWN crates each declaring a caret one notch below the maintained line:

issen-usb ^0.2 -> usb-forensic ^0.9 -> disk-forensic ^0.3 -> ewf ^0.12 -> lru

Every link was fixed and PUBLISHED first (winevt-carver 0.1.3, ext4fs-core
0.2.8, usb-forensic 0.3.1, plus ewf 0.4.9 earlier), because a fix on a
dependency's main is not a fix for its consumers. This commit is the last link:
issen-usb's own usb-forensic = "0.2".

Two consequences of moving to usb-forensic 0.3.1 had to be resolved, and both
are the same defect in different crates — a requirement looser than the API the
crate actually uses:

usb-forensic 0.3.1  declares peripheral-core "0.8" but uses
                    peripheral_core::shellbag, added in 0.8.2
peripheral-core 0.8.2 uses forensicnomicon_core::usb_vendors, which is
                    newer than the 1.4.0 this lock had resolved

Neither breaks in its own repo, where the lockfile happens to hold a new enough
version. They break in a consumer that unifies on an older patch that still
satisfies the caret. The lock now pins peripheral-core 0.8.2 and
forensicnomicon-core 1.5.1; tightening those declared minimums upstream is
follow-up work, since the manifests are still under-specified.

ratatui is also moved 0.29 -> 0.30 here, which drops its own lru dependency
(ratatui 0.29 required lru ^0.12 and 0.30 requires none).

Verified: 219 test suites pass, fmt and clippy clean under
--workspace --all-targets --all-features, cargo deny check passes all four
sections, cargo vet --locked succeeds with zero self-certified audits.

…nsic caret

Completes RUSTSEC-2026-0002 for this repo. lru is now 0.16.4 and 0.18.2 — both
at or above the >= 0.16.3 patch line — and the vulnerable 0.12.5 is gone from
the graph.

It took four upstream releases to get here, because the trap was a chain of OUR
OWN crates each declaring a caret one notch below the maintained line:

    issen-usb ^0.2 -> usb-forensic ^0.9 -> disk-forensic ^0.3 -> ewf ^0.12 -> lru

Every link was fixed and PUBLISHED first (winevt-carver 0.1.3, ext4fs-core
0.2.8, usb-forensic 0.3.1, plus ewf 0.4.9 earlier), because a fix on a
dependency's main is not a fix for its consumers. This commit is the last link:
issen-usb's own `usb-forensic = "0.2"`.

Two consequences of moving to usb-forensic 0.3.1 had to be resolved, and both
are the same defect in different crates — a requirement looser than the API the
crate actually uses:

    usb-forensic 0.3.1  declares peripheral-core "0.8" but uses
                        peripheral_core::shellbag, added in 0.8.2
    peripheral-core 0.8.2 uses forensicnomicon_core::usb_vendors, which is
                        newer than the 1.4.0 this lock had resolved

Neither breaks in its own repo, where the lockfile happens to hold a new enough
version. They break in a consumer that unifies on an older patch that still
satisfies the caret. The lock now pins peripheral-core 0.8.2 and
forensicnomicon-core 1.5.1; tightening those declared minimums upstream is
follow-up work, since the manifests are still under-specified.

ratatui is also moved 0.29 -> 0.30 here, which drops its own lru dependency
(ratatui 0.29 required lru ^0.12 and 0.30 requires none).

Verified: 219 test suites pass, fmt and clippy clean under
--workspace --all-targets --all-features, `cargo deny check` passes all four
sections, `cargo vet --locked` succeeds with zero self-certified audits.
@socket-security

Copy link
Copy Markdown

@h4x0r
h4x0r merged commit 8a696d2 into main Aug 6, 2026
17 checks passed
@h4x0r
h4x0r deleted the fix/lru-clear-the-chain 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