trifectatechfoundation / trifectatechfoundation/sudo-rs
Possible glob incompatibility with original sudo
Nobody has claimed this yet.
- #1373 by @squell — closed without merging
- Dominant language
- Rust
- Stars
- 4.5k
- Forks
- 179
- Avg merge
- 16h 45m
- Merged PRs (30d)
- 4
Description
Describe the bug
Reading your recent blog post regarding dependencies, I learned that sudo-rs depends on glob. I figured that you might have a similar problem as uutils with this crate. In particular, we once opened this issue: https://github.com/rust-lang/glob/issues/116.
To recap that issue: glob only allows [!...] for negation of character classes, but not [^...]. The standard fnmatch and glob functions usually do allow ^ to be used, including the implementation by sudo, even though it does not seem to be documented.
I checked src/sudoers/tokens.rs and could not find a mitigation for this there. There also aren't any occurrences of '^' in the code base according to GitHub search, which I would expect to see if you implemented a workaround for this issue.
I'm not sure how big of an issue this is, but it's probably at least an incompatibility that should be documented. I'm also not really sure how to create a test case for this, but if you can point me to documentation for that, I'd be happy to try to create one.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with src/sudoers/tokens.rs and compare its glob handling with the linked glob issue and original sudo implementation. Determine whether [^...] patterns behave incompatibly, then add a focused regression test if the existing test structure supports it, or document the incompatibility if no mitigation is intended.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli, security
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100