-
Notifications
You must be signed in to change notification settings - Fork 4
Open
Description
Hi, just stumbled across this crate. Very cool and flexible, not judging what you've done here.
I do think though that it's a bit scary though.
For example:
“(…)” runs a command with a pipe from the child process’ stdout, on platforms whch support it.
https://docs.rs/nameless/0.7.1/nameless/struct.InputByteStream.html
An attacker who controls a command line argument to a program now has full RCE.
Similarly, with the networking support, the attacker can perform network requests, which is less scary but still pretty spooky.
I would suggest two things.
- Put support for different sources and sinks into feature flags and disable the features like command execution by default. I think that users generally don't expect "command line argument can execute arbitrary code" to be the case.
- Add a security warning in the repo clarifying that this library is not suitable for cases where untrusted input is provided to the command line.
If I've misunderstood anything about how this crate works feel free to let me know. I just took a quick look and noticed this.
colindaven and zwhitchcox
Metadata
Metadata
Assignees
Labels
No labels