core-agent-ide/codex-cli
Jon Church 3356ac0aef
fix: canonicalize the writeable paths used in seatbelt policy (#275)
closes #207

I'd be lying if I said I was familiar with these particulars more than a
couple hours ago, but after investigating and testing locally, this does
fix the go issue, I prefer it over #272 which is a lot of code and a one
off fix
---- 

cc @bolinfest do you mind taking a look here?

1. Seatbelt compares the paths it gets from the kernal to its policies
1. Go is attempting to write to the os.tmpdir, which we have
allowlisted.
1. The kernel rewrites /var/… to /private/var/… before the sandbox
check.
1. The policy still said /var/…, so writes were denied.

Fix: canonicalise every writable root we feed into the policy
(realpathSync(...)).
We do not have to touch runtime file paths—the kernel already
canonicalises those.



### before
see that the command exited 1, and that the command was reported to be
prohibited, despite using the allowlisted tmpdir


https://github.com/user-attachments/assets/23911101-0ec0-4a59-a0a1-423be04063f0


### after
command exits 0


https://github.com/user-attachments/assets/6ab2bcd6-68bd-4f89-82bb-2c8612e39ac3
2025-04-17 23:01:15 -07:00
..
.husky Feat/add husky (#223) 2025-04-17 07:18:43 -07:00
bin feat(bin): support bun fallback runtime for codex CLI (#282) 2025-04-17 17:32:19 -07:00
examples fix: typos in prompts and comments (#195) 2025-04-17 07:12:39 -07:00
scripts (fix) update Docker container scripts (#47) 2025-04-16 12:02:41 -07:00
src fix: canonicalize the writeable paths used in seatbelt policy (#275) 2025-04-17 23:01:15 -07:00
tests fix: raw-exec-process-group.test improve reliability and error handling (#280) 2025-04-17 23:00:28 -07:00
.dockerignore (fix) update Docker container scripts (#47) 2025-04-16 12:02:41 -07:00
.editorconfig Initial commit 2025-04-16 12:56:08 -04:00
.eslintrc.cjs Initial commit 2025-04-16 12:56:08 -04:00
.lintstagedrc.json Feat/add husky (#223) 2025-04-17 07:18:43 -07:00
build.mjs Initial commit 2025-04-16 12:56:08 -04:00
Dockerfile chore: reduce docker image size (#194) 2025-04-17 07:12:14 -07:00
HUSKY.md Feat/add husky (#223) 2025-04-17 07:18:43 -07:00
ignore-react-devtools-plugin.js Initial commit 2025-04-16 12:56:08 -04:00
package-lock.json bump(version): 0.1.2504161551 (#254) 2025-04-17 20:54:40 -07:00
package.json bump(version): 0.1.2504161551 (#254) 2025-04-17 20:54:40 -07:00
require-shim.js Initial commit 2025-04-16 12:56:08 -04:00
tsconfig.json Back out @lib indirection in tsconfig.json (#111) 2025-04-16 14:16:53 -07:00
vite.config.ts fix: add empty vite config file to prevent resolving to parent (#273) 2025-04-17 17:03:15 -07:00