Crates with paths differing only by case are allowed #8410
Labels
A-backend ⚙️
blocked
C-enhancement ✨
Category: Adding new behavior or a change to the way an existing feature works
Current Behavior
It's possible to have a tarball that contains multiple files with paths that are identical except case, e.g.
readme.md
andREADME.MD
. On case-insensitive file systems on of these will overwrite the other. Tricks like these could confuse tools or even hide files from code reviews performed on macOS or Windows.e.g. Cargo can pacakge duplicate
cargo.lock
file, andcargo.toml
breaks docs.rs but not crates.io.I haven't checked whether it's still allowed to have completely duplicate paths, but there are many old crates with duplicate files, e.g. two
Cargo.toml.orig
files: https://crates.io/crates/nucleo-f103rb/0.3.0Expected Behavior
I think it'd be best if crates.io refused to accept any tarballs with potentially duplicate paths. It's not sufficient to rely on
cargo publish
to work correctly, because attackers could upload arbitrary tarballs. Even if crates.io could safely deal with weird tarballs, they can be causing trouble in 3rd party tools.Steps To Reproduce
No response
Environment
No response
Anything else?
No response
The text was updated successfully, but these errors were encountered: