bytecodealliance / bytecodealliance/cap-std
Use O_NOFOLLOW_ANY on macOS
- Vorherrschende Sprache
- Rust
- Sterne
- 821
- Forks
- 57
- Ø Merge
- 1 Std. 16 Min.
- Gemergte PRs (30 T.)
- 4
Beschreibung
According to [this blog post](https://blog.malwarebytes.com/mac/2021/08/macos-11s-hidden-security-improvements/#O_NOFOLLOW_ANY), macos 11 has a new `O_NOFOLLOW_ANY` flag that causes `open` to fail if any path component is a symlink. Assuming symlinks are relatively rare, cap-std could use this as a fast path -- check that the path contains no explicit `..` and then open with `O_NOFOLLOW_ANY`; if that succeeds, then we're done. If either of those fails, open with the slow path.
Beitragsleitfaden
Rechercherichtung
Beginne damit, die Einstiegspunkte zum Öffnen von Pfaden in cap-std sowie die bestehenden schnellen und langsamen Pfade für die Behandlung von Symlinks nachzuverfolgen. Prüfe, wie explizite `..`-Komponenten erkannt werden und wie plattformspezifische Open-Flags definiert sind. Als abgeschlossen gilt die Aufgabe, wenn macOS 11 `O_NOFOLLOW_ANY` verwenden kann, sofern dies sicher ist, während der bestehende langsame Pfad weiterhin Fallback-Fälle behandelt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- macos, rust
- Bereich
- operating-systems, security
- Issue-Typ
- Feature
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100