bytecodealliance / bytecodealliance/cap-std

Use O_NOFOLLOW_ANY on macOS

Offen
#179 0 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen
enhancement
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

Beitragsleitfaden öffnen

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

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.