Files
workinf_Blender_Wasm/docs/status/M12-04C.md
mes123456 380cbed4ff
Some checks are pending
M6 deployable RC / quick (push) Waiting to run
M6 deployable RC / chromium (push) Blocked by required conditions
M6 deployable RC / release (push) Blocked by required conditions
Checkpoint web parity through Chromium input tasks
2026-08-19 10:39:03 -04:00

46 lines
2.3 KiB
Markdown

# M12-04C Status
status: done
task: reject absolute paths, UNC/drive paths, controls, and origin escape
updated: 2026-08-18 America/New_York
enablingTask: false
parityStateChange: false
## Scope
The project-asset path gate rejects absolute POSIX paths, UNC and drive-shaped paths, NUL/control
characters, malformed or residual percent encoding, and URI/origin-shaped escapes before a locator is
accepted. HTTPS source policy entries are now strict credential-free origins: path, query, fragment,
encoded controls, and backslash smuggling are rejected instead of being silently reduced to
`URL.origin`. HTTPS resource paths retain the declared-origin check and reject unsafe decoded bytes.
## Evidence
- `npm --prefix web run test:library-path-security` passed 4/4 unit tests.
- Absolute, UNC, drive, raw/encoded NUL and control characters, and origin-style project paths return
stable `ASSET_PATH_OUTSIDE_PROJECT`/`ASSET_PATH_INVALID` errors.
- Raw and encoded backslashes, controls, malformed percent sequences, credentials, undeclared origins,
and policy origin smuggling return `IO_EXTERNAL_URI_BLOCKED`.
- Declared `https://assets.example.test/library/main.blend` remains accepted; policy declarations with
a path, query, fragment, encoded control, or duplicate canonical origin fail closed.
- `WEB_TEST_PORT=5323 npm --prefix web run test:asset-library` passed the N-023 Chromium asset/IO gate 1/1.
- `npm --prefix web run typecheck` passed.
## Artifact Hashes
- parent manifest: `8cd29c3f5281082584fc6aefe2ec385a2eedf8116e837a4db54c391391ff8f98`
- path normalizer: `6109d05251fc7355ac32d4c0d8298f85ea8b731767c76c394577c4e44652a6bf`
- source-origin protocol: `67a1808f225194a09a72987c5340c7494c5fa8d99dffde40664a11a779caedeb`
- unit: `ab302cacb24634a3225dda5cb8f5282cb80b3bd81ed5c8900ddf4ff18267b7e2`
- manifest: `a7f3a45eb7f68d022f38185a1c1409e1db1b27647fef587d66d2ffa52d78f98e`
- package commands: `cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c`
## Next Task
`M12-04D`: resolve symlink/hardlink entries before writing and constrain them to the temporary root.
## Rollback
Remove the C path-security assertions, manifest, status entry, and strict origin validation. Restore
M12-04B to pending and move the machine queue back to `M12-04C`. No parity ledger rollback is required.