A recently-published article demonstrates a way to make "typo-squatting" attacks on popular programming package managers. It singles out Python's pip
, Ruby's gem
and Node's npm
systems, and shows that they have two things in common:
- Packages can be submitted and accepted automatically, with no manual review or human oversight
- Packages can cause the package manager to execute arbitrary "setup" code on the client system at install-time.
This means that it's possible to register a package with a name that's very similar to that of a popular package, and get your package (complete with a malicious setup script) installed anytime someone mistypes the package name.
This makes me wonder, does NuGet have these same two characteristics? Does it have any mechanism in place to mitigate attacks of this type?