"The URL must never contain path, file, url, credentials, a Recall base URL, or arbitrary player arguments."
A 45-Year-Old Bug That Never Retired
In 1988, Norm Hardy described a compiler that could write billing records to a protected system file. It also let users name their own output file. A clever user named the billing file as their output — and the compiler, using its own authority, happily overwrote it. The compiler wasn't malicious. It was confused: it had a power the user lacked, and it let the user's input aim that power at a target the user chose. That's the confused deputy, and it is everywhere.
Ashen Reel Is a Deputy
Think about who can build a cwkashenreel:// link. Recall can. But so can a web page, an email, a chat message — anything that can put a URL in front of macOS. And Ashen Reel runs with your file access: it can read anything you can read. Those two facts together are the whole danger. If the link could carry a path, a hostile web page could write cwkashenreel://recall/open?path=/Users/you/Documents/tax-return.pdf and Ashen Reel — the trusted deputy — would open a file the page had no right to touch, using authority the page doesn't have.
The Fix Is Structural, Not a Filter
You could try to sanitize a path field — block .., block absolute paths, allowlist directories. That road is long, and history is a graveyard of path-sanitizers that missed a trick. Ashen Reel takes the structural fix instead: the caller doesn't get to name a path at all. It names a video_id, and Ashen Reel resolves that id in Recall's own trusted database. The caller can only point at videos that already exist and are already allowed — the deputy stops being confusable because the requester can no longer choose the target.
Look at the attack and the wall it hits: