1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
[]
= 2
# `unsound` MUST be set explicitly, or unsoundness advisories are silently
# dropped — which is why RUSTSEC-2021-0154 sat un-evaluated behind an ignore
# entry that was doing nothing. cargo-deny 0.19.0 defaults `unsound` to
# "workspace", but builds the workspace-member set that scope compares against
# ONLY when the unrelated *unmaintained* scope is "workspace"/"transitive"
# (src/advisories.rs:77-93). With `unmaintained` at its own "all" default that
# set is empty, the membership test at line 120 is always false, and every
# `informational = "unsound"` advisory hits `continue` unreported. "all" takes
# the unconditional branch (line 111), so it does not depend on that set and
# stays correct if upstream fixes the gating. Verified against cargo-deny 0.19.0.
= "all"
= [
# RUSTSEC-2026-0002 (lru `IterMut` violates Stacked Borrows, patched in
# >= 0.16.3). Surfaced the moment `unsound = "all"` above made the gate
# capable of firing. NOT fixable from this repo: the affected lru 0.12.5
# arrives transitively as
# lru 0.12.5 <- ewf 0.4.6 <- forensic-vfs-engine 0.1.7 <- forensic-mount
# and the published ewf 0.4.6 requires `lru = "0.12"`, a caret no downstream
# `cargo update` can cross. (memf-core, the repo's other lru consumer,
# already resolves the patched 0.16.4.)
#
# REMOVAL CONDITION — delete this entry, do not renew it: ewf-forensic's
# `fix/lru-unsoundness-rustsec-2026-0002` widens the caret to lru 0.18.1;
# once that merges and release-plz publishes ewf >= 0.4.8, run
# `cargo update -p ewf` here (forensic-vfs-engine 0.1.7 requires `ewf
# "0.4.1"`, so it needs no release of its own) and drop this line.
"RUSTSEC-2026-0002",
]
[]
= 2
= [
"MIT",
"Apache-2.0",
"BSD-2-Clause",
"BSD-3-Clause",
"ISC",
"Unicode-3.0",
"Zlib",
# Permissive / public-domain licenses pulled in transitively across the
# multi-format dependency surface (none are strong copyleft):
"CC0-1.0", # notify, tiny-keccak (public-domain dedication)
"BSL-1.0", # xxhash-rust (Boost Software License)
"bzip2-1.0.6", # libbzip2 C lib bundled by bzip2 (via sevenz-rust2 -> archive-core, 7z decompression)
"CDLA-Permissive-2.0", # webpki-roots (Mozilla CA bundle data license)
"MPL-2.0", # option-ext (file-level copyleft; does not affect this crate's license)
]
[]
# An application bundling every supported filesystem, archive, container and
# memory-dump format (plus Dokan on Windows) has a large transitive graph where
# duplicate versions (windows-sys, getrandom, thiserror, ...) are unavoidable
# and not actionable. Warn rather than fail so genuine policy violations
# (licenses, advisories) stay visible.
= "warn"
= "allow" # path deps (ext4fs, ewf) have no version field; cargo-deny counts these as wildcards
[[]]
= "cpufeatures"
= "sha2/sha3 vs blake3 require different versions"
[[]]
= "hashbrown"
= "rusqlite (via hashlink) and ewf (via lru) require different versions"
[]
= "deny"
= "deny"
= ["https://github.com/rust-lang/crates.io-index"]
= []