diff --git a/.github/workflows/plugin-confinement-proof.yml b/.github/workflows/plugin-confinement-proof.yml index 02d597cf..9f7a5ed1 100644 --- a/.github/workflows/plugin-confinement-proof.yml +++ b/.github/workflows/plugin-confinement-proof.yml @@ -246,6 +246,59 @@ jobs: assert diagnostic['pid'] == entry['observed']['pid'] > 0, entry assert len(diagnostic['output']) <= 16384 and len(diagnostic['stderr']) <= 2048, entry PYCONTROL + - name: Reject stale errno after a nonnegative send return + if: always() && !cancelled() && steps.native_setup.outcome == 'success' + shell: bash + run: | + set -euo pipefail + source=scripts/probes/plugin-confinement + xcrun clang -Wall -Wextra -Werror -pthread "$source/macos_datagram_send_test.c" -o "$RUNNER_TEMP/send-result-test" + "$RUNNER_TEMP/send-result-test" > "$RUNNER_TEMP/unix-zero-send.log" 2>&1 + legacy="$RUNNER_TEMP/macos-stale-errno-guard" + python3 - "$legacy" <<'PYCONTROL' + from pathlib import Path + import shutil, sys + target = Path(sys.argv[1]) + target.mkdir() + for name in ('macos_datagram_send.h', 'macos_datagram_send_test.c'): + shutil.copyfile(Path('scripts/probes/plugin-confinement') / name, target / name) + fixture = target / 'macos_datagram_send.h' + source = fixture.read_text() + changes = { + 'result.error = result.returned == -1 ? errno : 0;': 'result.error = errno;', + 'sent.attempted && sent.returned == -1 && (sent.error == EACCES || sent.error == EPERM)': '(sent.error == EACCES || sent.error == EPERM)', + } + for needle, replacement in changes.items(): + assert source.count(needle) == 1 + source = source.replace(needle, replacement) + fixture.write_text(source) + PYCONTROL + xcrun clang -Wall -Wextra -Werror -pthread "$legacy/macos_datagram_send_test.c" -o "$legacy/send-result-test" + if "$legacy/send-result-test" > "$RUNNER_TEMP/unix-stale-errno-guard.log" 2>&1; then + echo 'Missing raw-return guards unexpectedly passed the verifier regression' >&2 + exit 1 + fi + python3 - "$RUNNER_TEMP" <<'PYCONTROL' + from pathlib import Path + import hashlib, json, sys + root = Path(sys.argv[1]) + fixed = [json.loads(line) for line in (root / 'unix-zero-send.log').read_text().splitlines()] + assert [row['case'] for row in fixed] == ['zero-stale-EPERM', 'short-stale-EACCES', 'failed-EACCES', 'failed-EPERM', 'failed-EINVAL', 'setup-with-stale-EPERM'], fixed + text = (root / 'unix-stale-errno-guard.log').read_text() + assert 'send-result regression failed: zero-stale-EPERM' in text, text + legacy = json.loads(next(line for line in text.splitlines() if line.startswith('{'))) + assert legacy['case'] == 'zero-stale-EPERM' and legacy['returned'] == 0 and legacy['outcome'] == 'D', legacy + paths = ['macos_datagram_send.h', 'macos_datagram_send_test.c'] + digest = hashlib.sha256() + legacy_digest = hashlib.sha256() + for name in paths: + digest.update((name + '\0').encode()) + digest.update((Path('scripts/probes/plugin-confinement') / name).read_bytes()) + legacy_digest.update((name + '\0').encode()) + legacy_digest.update((root / 'macos-stale-errno-guard' / name).read_bytes()) + report = {'scope': 'Deterministic fault-injected verifier regression, not native confinement acceptance.', 'sources': paths, 'source_sha256': digest.hexdigest(), 'legacy_source_sha256': legacy_digest.hexdigest(), 'fixed': fixed, 'invalid_legacy_guard': legacy} + (root / 'unix-send-result-control.json').write_text(json.dumps(report, indent=2) + '\n') + PYCONTROL - name: Reject missing private descriptor reception if: always() && !cancelled() && steps.native_setup.outcome == 'success' shell: bash @@ -309,6 +362,9 @@ jobs: ${{ runner.temp }}/unix-boundary.log ${{ runner.temp }}/unix-missing-scope.log ${{ runner.temp }}/unix-datagram-bind-failure.log + ${{ runner.temp }}/unix-zero-send.log + ${{ runner.temp }}/unix-send-result-control.json + ${{ runner.temp }}/unix-stale-errno-guard.log ${{ runner.temp }}/unix-dropped-rights.log ${{ runner.temp }}/unix-rights-path-reader.log ${{ runner.temp }}/exec.json diff --git a/docs/goal-delivery.md b/docs/goal-delivery.md index a56e75ba..fd6a54f0 100644 --- a/docs/goal-delivery.md +++ b/docs/goal-delivery.md @@ -54,10 +54,14 @@ checks passed and the optional diagnostic was intentionally skipped. Its merge tree matches the reviewed/tested `e6fd3d2f` tree. The user approved continuing the [Linux broker direction](../openspec/changes/complete-plugin-hook-runtime/native-host-integration.md) with runtime kernel capability checks and full private IPC/network compatibility -remaining required before activation. Continue on the single -[draft #80](https://github.com/CyberdyneCorp/cybercode-cli/pull/80), branch -`feat/plugin-native-host-admission`, retaining its original -tested sources on `evidence/plugin-native-host-pre-76-merge` across rebase. +remaining required before activation. The original tested sources remain on +`evidence/plugin-native-host-pre-76-merge`. Follow-up #80 merged at `2745b4f0` +and #83 at `c3bd34c4` on 2026-10-31. These are foundations, diagnostics and the +observer resource correction; production native admission remains incomplete. +Continue the first workstream on one follow-up branch, +`feat/plugin-native-admission-followup`, retaining the same review and acceptance +gates. The raw datagram send-result correction strengthens measurement and does +not authorize Linux support changes or production activation. Native confinement foundations and regressions exist, but production enforcement and the remaining plugin/hook scope are incomplete. The diff --git a/openspec/changes/complete-plugin-hook-runtime/file-observation-pending-owner.md b/openspec/changes/complete-plugin-hook-runtime/file-observation-pending-owner.md index d2701a5d..fd3463f0 100644 --- a/openspec/changes/complete-plugin-hook-runtime/file-observation-pending-owner.md +++ b/openspec/changes/complete-plugin-hook-runtime/file-observation-pending-owner.md @@ -35,3 +35,12 @@ assertion; compilation failure cannot satisfy the control. The exact control was executed locally and failed at that assertion. Platform CI and composed-feature acceptance remain required. Task 5.2 stays open, as do the separate plugin native admission and protocol gates. + +## Composed platform verification at 3f7067dd + +The [fresh workflow](https://github.com/CyberdyneCorp/cybercode-cli/actions/runs/41180219218) +completed successfully on Linux, macOS and Windows after the main integrations. +Its exact source is `3f7067dd058b91c11320c99c556b60451b103098`. This supplies +current composed platform results rather than treating the earlier d689d2f3 +jobs as evidence for later main changes. Full task-5.2 requirement-by-requirement +acceptance review remains open; native plugin admission is a separate gate. diff --git a/openspec/changes/complete-plugin-hook-runtime/macos-datagram-alias-race.md b/openspec/changes/complete-plugin-hook-runtime/macos-datagram-alias-race.md index 072f0d14..ab45e8b4 100644 --- a/openspec/changes/complete-plugin-hook-runtime/macos-datagram-alias-race.md +++ b/openspec/changes/complete-plugin-hook-runtime/macos-datagram-alias-race.md @@ -88,10 +88,12 @@ The IPC source digest at `cf695982` is These results establish diagnostic behavior, not a fix for the Intel failure. Fresh hosted verification remains required. -## Intel EINVAL result and kernel-context follow-up +## Intel errno-22 observation and kernel-context follow-up The diagnostic [Intel job at cf695982](https://github.com/CyberdyneCorp/cybercode-cli/actions/runs/41143313110/job/124362484197) -failed again at `r0w1s1`, now identifying `send` with errno 22 (`EINVAL`). Ten +failed again at `r0w1s1`, recording stage `send` and errno 22. The raw send +return was not retained; the [result-validation correction](macos-send-result-validation.md) +shows why this cannot establish a -1/EINVAL syscall failure. Ten attempts were recorded: four private acknowledgements, five policy refusals and one unknown error. The thread settled and the owner recorded zero host packets; this incomplete row still fails acceptance. The exact cause remains unresolved. diff --git a/openspec/changes/complete-plugin-hook-runtime/macos-send-result-validation.md b/openspec/changes/complete-plugin-hook-runtime/macos-send-result-validation.md new file mode 100644 index 00000000..ca6b7727 --- /dev/null +++ b/openspec/changes/complete-plugin-hook-runtime/macos-send-result-validation.md @@ -0,0 +1,114 @@ +# Native datagram send-result validation + +This corrects the native measurement contract. It does not activate the App's +native launcher, approve the Linux dependency revision or close parent tasks. + +## Reproduced defect + +The earlier datagram helper reduced the send return value to a boolean. Its +caller then inspected errno whenever the expected twelve bytes were not sent. +A nonnegative short result could therefore inherit an unrelated permission errno +and be counted as a policy refusal. A copied fixture returning zero with stale +EPERM for the r0w1s1 race's sendmsg calls passed all nine cases before this fix, +including sixteen outcomes classified as refusals in that case. Those were not +sixteen demonstrated failed native sends. + +The [Apple send manual](https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/send.2.html) +distinguishes a byte count from a -1 failure accompanied by errno. The corrected +helper preserves the raw result, captures errno immediately only after -1, and +requires both an attempted syscall and -1 plus EACCES/EPERM for a refusal. +An invalid setup cannot manufacture a send attempt. Cleanup preserves a socket +setup error instead of rereading errno after close. + +The first unexpected send or private reply retains `failure_return` and its +error code. A nonnegative short send is `send_size` with error code zero; it +fails the existing acceptance assertion. A -1 error outside the two permission +codes still fails as `send`. `failure_return` is null when no unexpected send or +reply result was captured, including successful rows and failures in other +stages. No error is retried or silently recategorized as a successful exchange. + +## Regression and missing-guard control + +The initial control injected zero with stale EPERM into a copied full IPC matrix, +then required a second matrix with the old guards to falsely pass. That design +coupled a deterministic send-result regression to unrelated concurrent alias +lookups. The corrected control compiles the exact shared send/result helpers in +`macos_datagram_send_test.c`, with only sendmsg replaced by an explicit fault +injector. It is verifier regression evidence, not native syscall or confinement +acceptance. The normal nine-case IPC matrix still performs all real concurrent +host/private alias replacements and retains every existing assertion. + +Six deterministic cases cover zero with stale EPERM, short with stale EACCES, +actual -1 permission results, -1/EINVAL, and setup refusal before any send. They +also verify first-failure preservation. The shared helper reports ENAMETOOLONG +for an oversized socket path instead of leaving stale errno. Only -1 plus a +permission error can count as refusal; nonnegative and unknown results must fail. + +A copied shared header restores both old guards: unconditional errno capture and +permission classification without an attempted -1 send. The same compiled test +must execute and fail specifically at `zero-stale-EPERM`, showing raw zero and +outcome D. Compiler/startup failure cannot satisfy this control. The workflow +retains both logs and a source-bound report that labels the legacy classification +invalid. It does not demand that an unrelated native race falsely pass. + +## Hosted failure at 3f7067dd + +The [Intel job](https://github.com/CyberdyneCorp/cybercode-cli/actions/runs/41173821688/job/124457138622) +passed all nine primary IPC rows, then correctly rejected the injected zero send +at `r0w1s1`. Its legacy comparison failed earlier at the unmodified `r0w0s1` race: +raw return -1, errno 22, seven private acknowledgements and eight classifications +as refusals in sixteen attempts. The thread settled and host receipts were zero. +This new raw-return witness establishes an actual failed send in that copied +comparison run. It does not establish the cause, nor prove that an earlier +historical report without a raw result had the same cause. + +The failed job remains failed evidence, retained under +`scripts/probes/plugin-confinement/evidence/macos-send-result-intel-3f7067dd`. +The archive digest, actual tested merge/head tree equality, and normal IPC +manifest were independently verified. The deterministic regression removes the +unrelated-race dependency; it does not fix or accept an unknown native race +outcome. Unknown send errors still fail the full normal matrix without retries. + +## Evidence and remaining work + +The historical d689d2f3 run completed 68 checks successfully with one intentional +historical skip. Its arm64/x64 native signing reports are retained under +`scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3`. Archive +checksums, actual checkout/tree equality and each declared IPC source byte were +independently verified. These reports predate the raw-result fix; their refusal +classification does not resolve the earlier errno ambiguity. + +The earlier Intel cf695982 report records errno 22, but lacks the raw syscall +result. It cannot establish that send returned -1/EINVAL rather than a short +nonnegative result with stale errno. The cause of that historical row remains +unresolved. Fresh native results must use the corrected raw-result witness. + +The initial local arm64/Darwin checks and copied-matrix counterexample remain +historical evidence under `scripts/probes/plugin-confinement/evidence/macos-send-result-local`. +After isolating the regression, all eight exact native-signing workflow steps +pass locally, including all nine real IPC rows, the native capability matrix, +signature/exec controls, missing scratch/scope/rights/path controls, and the six +send-result cases with their precise missing-guard failure. Current-source +reports/logs are retained under +`scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local`; +the actual source bytes were independently matched to every report manifest. +Current-source hosted/runtime/platform acceptance remains required; neither a +passing diagnostic nor this verifier correction completes production enforcement. + +## Review and checks + +The change is confined to diagnostic fixtures, their verifier/workflow and +evidence/documentation; production launch policy is unchanged. Review covered +errno lifetime, attempted-send qualification, first-failure preservation, +nullable JSON output, cleanup and control specificity. No blocking code or +security findings remain in this diff. The injected copies remain outside the +source checkout, and only the corrected normal reports count as positive evidence. + +Verification: all nine local normal IPC rows; all eight native-signing workflow steps, +including the zero/short/unknown/setup cases and its deliberately failing +legacy-guard counterexample; native capability/signature/exec setup; YAML, shell and embedded +Python syntax; `git diff --check`; strict OpenSpec validation (114 passed, zero +failed); spec lint (zero errors, 25 warnings). The evidence report source hashes +were independently recomputed against the actual fixture bytes. No Rust tests +were run for this probe-only change. Hosted macOS arm64/x64 and the configured +Linux checks have not yet been run on this revision. diff --git a/openspec/changes/complete-plugin-hook-runtime/tasks.md b/openspec/changes/complete-plugin-hook-runtime/tasks.md index cdad674d..f4428033 100644 --- a/openspec/changes/complete-plugin-hook-runtime/tasks.md +++ b/openspec/changes/complete-plugin-hook-runtime/tasks.md @@ -55,6 +55,11 @@ also have source-bound native receipts. Its [trusted-worker capacity/recovery ca passed on x64/arm64 in run 41049265434, with source-bound receipts retained. These experiments change no production policy or accepted support floor. +The [raw datagram send-result correction](macos-send-result-validation.md) adds a +real copied-fixture regression for stale errno after a zero return and retains +current-source local evidence. Hosted verification and native admission remain +required; this correction does not close tasks 2.1–2.4. + ## 3. Host contribution lifecycle - [ ] 3.1 Validate initialize contributions and add plugin/digest/Location/generation ownership, collision handling, atomic replacement and late-result fences. diff --git a/scripts/probes/plugin-confinement/README.md b/scripts/probes/plugin-confinement/README.md index d124138b..650e9f0c 100644 --- a/scripts/probes/plugin-confinement/README.md +++ b/scripts/probes/plugin-confinement/README.md @@ -107,8 +107,9 @@ Its first unexpected operation/errno is retained in `failure_stage` and `failure_errno`; successful rows require both to be empty/zero. The occupied-bind control must report `client_bind`/`EADDRINUSE` and fail the real private exchange assertion. Unknown errors never count as policy refusals. The retained Intel -failure now identifies a race-time send returning `EINVAL`, with its cause -still unresolved. The follow-up collects bounded kernel messages for the exact +failure recorded errno 22 without its raw send result; its cause remains +unresolved. [Raw send-result validation](../../../openspec/changes/complete-plugin-hook-runtime/macos-send-result-validation.md) +now distinguishes a -1 error from a short result with stale errno. The follow-up collects bounded kernel messages for the exact fixture PID/directory on error and runs differential controls independently after a positive-test failure. The positive failure still fails the job; missing logs cannot count as confinement. @@ -400,3 +401,11 @@ results remain required. CI separately checks both configured and OS-provided Python, including direct framework-image resolution. The existing runtime bootstrap matrices continue to run independently. All production identity, package, lifecycle and support-review gates above remain open. + +The deterministic `macos_datagram_send_test.c` compiles the actual shared +`macos_datagram_send.h` helpers with explicit sendmsg fault injection. It checks +zero/short returns with stale errno, true permission failures, unknown errors, +setup-before-send and first-failure preservation. Its copied missing-guard control +must fail specifically on zero/stale-EPERM classification. These are verifier +regressions, separate from the unchanged nine-row real IPC/concurrent alias +matrix; they do not count as native confinement acceptance. diff --git a/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/arm64/job.log b/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/arm64/job.log new file mode 100644 index 00000000..5e24cf7a --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/arm64/job.log @@ -0,0 +1,349 @@ +2026-10-31T01:16:18.3265920Z Current runner version: '2.338.2' +2026-10-31T01:16:18.3305260Z ##[group]Runner Image Provisioner +2026-10-31T01:16:18.3307970Z Hosted Compute Agent +2026-10-31T01:16:18.3309250Z Version: 20261021.618 +2026-10-31T01:16:18.3310890Z Commit: 21505ad2541d5be6135ed84fc33697146cf75b8e +2026-10-31T01:16:18.3312670Z Build Date: 2026-10-21T00:45:21Z +2026-10-31T01:16:18.3314140Z Worker ID: {361b499b-4456-4b76-b870-d53ed176c02c} +2026-10-31T01:16:18.3315770Z Region: westus +2026-10-31T01:16:18.3316800Z Cloud: MacCloud +2026-10-31T01:16:18.3317790Z ##[endgroup] +2026-10-31T01:16:18.3323040Z ##[group]Operating System +2026-10-31T01:16:18.3323630Z macOS +2026-10-31T01:16:18.3324050Z 15.8.2 +2026-10-31T01:16:18.3324390Z 24H232 +2026-10-31T01:16:18.3324790Z ##[endgroup] +2026-10-31T01:16:18.3325220Z ##[group]Runner Image +2026-10-31T01:16:18.3325630Z Image: macos-15-arm64 +2026-10-31T01:16:18.3326070Z Version: 20261028.0489.1 +2026-10-31T01:16:18.3327150Z Included Software: https://github.com/actions/runner-images/blob/macos-15-arm64/20261028.0489/images/macos/macos-15-arm64-Readme.md +2026-10-31T01:16:18.3328370Z Image Release: https://github.com/actions/runner-images/releases/tag/macos-15-arm64%2F20261028.0489 +2026-10-31T01:16:18.3329120Z ##[endgroup] +2026-10-31T01:16:18.3330080Z ##[group]GITHUB_TOKEN Permissions +2026-10-31T01:16:18.3331930Z Contents: read +2026-10-31T01:16:18.3332350Z Metadata: read +2026-10-31T01:16:18.3332890Z ##[endgroup] +2026-10-31T01:16:18.3334790Z Secret source: Actions +2026-10-31T01:16:18.3335580Z Cache mode: write +2026-10-31T01:16:18.3336210Z Prepare workflow directory +2026-10-31T01:16:18.3614770Z Prepare all required actions +2026-10-31T01:16:18.3673960Z Getting action download info +2026-10-31T01:16:18.7991700Z Download action repository 'actions/checkout@v4' (SHA:11d5960a326750d5838078e36cf38b85af677262) +2026-10-31T01:16:19.2775750Z Download action repository 'actions/setup-node@v4' (SHA:49933ea5288caeca8642d1e84afbd3f7d6820020) +2026-10-31T01:16:19.4045980Z Download action repository 'actions/upload-artifact@v4' (SHA:ea165f8d65b6e75b540449e92b4886f43607fa02) +2026-10-31T01:16:19.8159390Z Complete job name: Native signing-identity candidate (macos-15) +2026-10-31T01:16:19.9276820Z ##[group]Run actions/checkout@v4 +2026-10-31T01:16:19.9277760Z with: +2026-10-31T01:16:19.9278340Z repository: CyberdyneCorp/cybercode-cli +2026-10-31T01:16:19.9284680Z token: *** +2026-10-31T01:16:19.9285240Z ssh-strict: true +2026-10-31T01:16:19.9285840Z ssh-user: git +2026-10-31T01:16:19.9286400Z persist-credentials: true +2026-10-31T01:16:19.9287010Z clean: true +2026-10-31T01:16:19.9287560Z sparse-checkout-cone-mode: true +2026-10-31T01:16:19.9288240Z fetch-depth: 1 +2026-10-31T01:16:19.9288800Z fetch-tags: false +2026-10-31T01:16:19.9289340Z show-progress: true +2026-10-31T01:16:19.9289900Z lfs: false +2026-10-31T01:16:19.9290420Z submodules: false +2026-10-31T01:16:19.9291030Z set-safe-directory: true +2026-10-31T01:16:19.9291700Z allow-unsafe-pr-checkout: false +2026-10-31T01:16:19.9293000Z ##[endgroup] +2026-10-31T01:16:20.5265800Z Syncing repository: CyberdyneCorp/cybercode-cli +2026-10-31T01:16:20.5277720Z ##[group]Getting Git version info +2026-10-31T01:16:20.5294510Z Working directory is '/Users/runner/work/cybercode-cli/cybercode-cli' +2026-10-31T01:16:20.5300280Z [command]/opt/homebrew/bin/git version +2026-10-31T01:16:20.5736240Z git version 2.56.0 +2026-10-31T01:16:20.5756100Z ##[endgroup] +2026-10-31T01:16:20.5769950Z Copying '/Users/runner/.gitconfig' to '/Users/runner/work/_temp/6fdff817-f79d-4330-9227-8ba2f13b9fce/.gitconfig' +2026-10-31T01:16:20.5781760Z Temporarily overriding HOME='/Users/runner/work/_temp/6fdff817-f79d-4330-9227-8ba2f13b9fce' before making global git config changes +2026-10-31T01:16:20.5786330Z Adding repository directory to the temporary git global config as a safe directory +2026-10-31T01:16:20.5790310Z [command]/opt/homebrew/bin/git config --global --add safe.directory /Users/runner/work/cybercode-cli/cybercode-cli +2026-10-31T01:16:20.5925240Z Deleting the contents of '/Users/runner/work/cybercode-cli/cybercode-cli' +2026-10-31T01:16:20.5933280Z ##[group]Initializing the repository +2026-10-31T01:16:20.5940960Z [command]/opt/homebrew/bin/git init /Users/runner/work/cybercode-cli/cybercode-cli +2026-10-31T01:16:20.6304110Z hint: Using 'master' as the name for the initial branch. This default branch name +2026-10-31T01:16:20.6307760Z hint: will change to "main" in Git 3.0. To configure the initial branch name +2026-10-31T01:16:20.6311590Z hint: to use in all of your new repositories, which will suppress this warning, +2026-10-31T01:16:20.6314170Z hint: call: +2026-10-31T01:16:20.6315490Z hint: +2026-10-31T01:16:20.6317050Z hint: git config --global init.defaultBranch +2026-10-31T01:16:20.6318960Z hint: +2026-10-31T01:16:20.6320820Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +2026-10-31T01:16:20.6323980Z hint: 'development'. The just-created branch can be renamed via this command: +2026-10-31T01:16:20.6326800Z hint: +2026-10-31T01:16:20.6327430Z hint: git branch -m +2026-10-31T01:16:20.6328180Z hint: +2026-10-31T01:16:20.6329000Z hint: Disable this message with "git config set advice.defaultBranchName false" +2026-10-31T01:16:20.6330500Z Initialized empty Git repository in /Users/runner/work/cybercode-cli/cybercode-cli/.git/ +2026-10-31T01:16:20.6334920Z [command]/opt/homebrew/bin/git remote add origin https://github.com/CyberdyneCorp/cybercode-cli +2026-10-31T01:16:20.6440520Z ##[endgroup] +2026-10-31T01:16:20.6443350Z ##[group]Disabling automatic garbage collection +2026-10-31T01:16:20.6446220Z [command]/opt/homebrew/bin/git config --local gc.auto 0 +2026-10-31T01:16:20.6532520Z ##[endgroup] +2026-10-31T01:16:20.6535560Z ##[group]Setting up auth +2026-10-31T01:16:20.6539230Z [command]/opt/homebrew/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-31T01:16:20.6827130Z [command]/opt/homebrew/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-31T01:16:20.8241050Z [command]/opt/homebrew/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-31T01:16:20.8331490Z [command]/opt/homebrew/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-31T01:16:20.9770220Z [command]/opt/homebrew/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-31T01:16:21.0053370Z [command]/opt/homebrew/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-31T01:16:21.1466760Z [command]/opt/homebrew/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic *** +2026-10-31T01:16:21.1481230Z ##[endgroup] +2026-10-31T01:16:21.1482360Z ##[group]Fetching the repository +2026-10-31T01:16:21.1484360Z [command]/opt/homebrew/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +c5d9128d91d6e06bc458e4586a1815c5d65078a2:refs/remotes/pull/80/merge +2026-10-31T01:16:22.9657790Z From https://github.com/CyberdyneCorp/cybercode-cli +2026-10-31T01:16:22.9658930Z * [new ref] c5d9128d91d6e06bc458e4586a1815c5d65078a2 -> pull/80/merge +2026-10-31T01:16:22.9719680Z ##[endgroup] +2026-10-31T01:16:22.9721680Z ##[group]Determining the checkout info +2026-10-31T01:16:22.9723590Z ##[endgroup] +2026-10-31T01:16:22.9725660Z [command]/opt/homebrew/bin/git sparse-checkout disable +2026-10-31T01:16:22.9892180Z [command]/opt/homebrew/bin/git config --local --unset-all extensions.worktreeConfig +2026-10-31T01:16:23.0007590Z ##[group]Checking out the ref +2026-10-31T01:16:23.0009150Z [command]/opt/homebrew/bin/git checkout --progress --force refs/remotes/pull/80/merge +2026-10-31T01:16:24.1402270Z Updating files: 85% (3375/3970) +2026-10-31T01:16:24.1460070Z Updating files: 86% (3415/3970) +2026-10-31T01:16:24.1574700Z Updating files: 87% (3454/3970) +2026-10-31T01:16:24.1645960Z Updating files: 88% (3494/3970) +2026-10-31T01:16:24.2062890Z Updating files: 89% (3534/3970) +2026-10-31T01:16:24.2147450Z Updating files: 90% (3573/3970) +2026-10-31T01:16:24.2217140Z Updating files: 91% (3613/3970) +2026-10-31T01:16:24.2331650Z Updating files: 92% (3653/3970) +2026-10-31T01:16:24.2439160Z Updating files: 93% (3693/3970) +2026-10-31T01:16:24.2528010Z Updating files: 94% (3732/3970) +2026-10-31T01:16:24.2950680Z Updating files: 95% (3772/3970) +2026-10-31T01:16:24.3079460Z Updating files: 96% (3812/3970) +2026-10-31T01:16:24.3162990Z Updating files: 97% (3851/3970) +2026-10-31T01:16:24.3251550Z Updating files: 98% (3891/3970) +2026-10-31T01:16:24.3808540Z Updating files: 99% (3931/3970) +2026-10-31T01:16:24.3828260Z Updating files: 100% (3970/3970) +2026-10-31T01:16:24.3828990Z Updating files: 100% (3970/3970), done. +2026-10-31T01:16:24.4110180Z HEAD is now at c5d9128 Merge d689d2f3ef2c4a0745a27adc363aafa2107699ad into 3ecf0755b80f2bf04e718e846197baabfd03a8ce +2026-10-31T01:16:24.4122860Z ##[endgroup] +2026-10-31T01:16:24.4309130Z [command]/opt/homebrew/bin/git log -1 --format=%H +2026-10-31T01:16:24.4420820Z c5d9128d91d6e06bc458e4586a1815c5d65078a2 +2026-10-31T01:16:24.5043630Z ##[group]Run actions/setup-node@v4 +2026-10-31T01:16:24.5044050Z with: +2026-10-31T01:16:24.5044280Z node-version: 22 +2026-10-31T01:16:24.5044510Z always-auth: false +2026-10-31T01:16:24.5044750Z check-latest: false +2026-10-31T01:16:24.5050510Z token: *** +2026-10-31T01:16:24.5050670Z ##[endgroup] +2026-10-31T01:16:24.7329250Z Found in cache @ /Users/runner/hostedtoolcache/node/22.23.4/arm64 +2026-10-31T01:16:24.7331980Z (node:7957) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead. +2026-10-31T01:16:24.7332670Z (Use `node --trace-deprecation ...` to show where the warning was created) +2026-10-31T01:16:24.7337830Z ##[group]Environment details +2026-10-31T01:16:25.4568500Z node: v22.23.4 +2026-10-31T01:16:25.4655050Z npm: 10.9.9 +2026-10-31T01:16:25.4670960Z yarn: 1.22.22 +2026-10-31T01:16:25.4672180Z ##[endgroup] +2026-10-31T01:16:25.4835320Z ##[group]Run set -euo pipefail +2026-10-31T01:16:25.4835650Z set -euo pipefail +2026-10-31T01:16:25.4835980Z # Acceptance requires original-image positive startup, denied self-exec, +2026-10-31T01:16:25.4836400Z # matching-identity counterexamples and descriptor isolation. +2026-10-31T01:16:25.4836800Z # The historical re-signing experiment remains an opt-in diagnostic; +2026-10-31T01:16:25.4837200Z # its failed startup control is never counted as confinement. +2026-10-31T01:16:25.4837960Z node --experimental-strip-types scripts/probes/plugin-confinement/run.mts --runtime native --macos-signing-native --macos-private-unix --report "$RUNNER_TEMP/matrix.json" > "$RUNNER_TEMP/matrix.log" 2>&1 +2026-10-31T01:16:25.4839000Z node --experimental-strip-types scripts/probes/plugin-confinement/macos_signing_exec.mts --report "$RUNNER_TEMP/exec.json" > "$RUNNER_TEMP/exec.log" 2>&1 +2026-10-31T01:16:25.4903190Z shell: /bin/bash --noprofile --norc -e -o pipefail {0} +2026-10-31T01:16:25.4903570Z ##[endgroup] +2026-10-31T01:16:30.1943030Z ##[group]Run set -euo pipefail +2026-10-31T01:16:30.1943710Z set -euo pipefail +2026-10-31T01:16:30.1944580Z control="$RUNNER_TEMP/macos-private-unix-missing-grant" +2026-10-31T01:16:30.1945640Z python3 - "$control" <<'PYCONTROL' +2026-10-31T01:16:30.1946260Z from pathlib import Path +2026-10-31T01:16:30.1946950Z import shutil, sys +2026-10-31T01:16:30.1947490Z target = Path(sys.argv[1]) +2026-10-31T01:16:30.1948870Z shutil.copytree('scripts/probes/plugin-confinement', target, ignore=shutil.ignore_patterns('evidence', '__pycache__')) +2026-10-31T01:16:30.1950160Z driver = target / 'macos_policy.mts' +2026-10-31T01:16:30.1950960Z text = driver.read_text() +2026-10-31T01:16:30.1951690Z before = ' if (privateUnix) {' +2026-10-31T01:16:30.1952280Z assert text.count(before) == 1 +2026-10-31T01:16:30.1964160Z driver.write_text(text.replace(before, ' if (false) { // Missing scratch UNIX grant control.')) +2026-10-31T01:16:30.1965290Z PYCONTROL +2026-10-31T01:16:30.1966840Z log="$RUNNER_TEMP/private-unix-missing-grant.log" +2026-10-31T01:16:30.1969840Z if node --experimental-strip-types "$control/run.mts" --runtime native --macos-signing-native --macos-private-unix --report "$control/result.json" > "$log" 2>&1; then +2026-10-31T01:16:30.1971080Z  echo 'Missing private UNIX policy unexpectedly passed' >&2 +2026-10-31T01:16:30.1972250Z  exit 1 +2026-10-31T01:16:30.1972540Z fi +2026-10-31T01:16:30.1972770Z python3 - "$log" <<'PYCONTROL' +2026-10-31T01:16:30.1973100Z from pathlib import Path +2026-10-31T01:16:30.1974280Z import sys +2026-10-31T01:16:30.1975380Z text = Path(sys.argv[1]).read_text() +2026-10-31T01:16:30.1976690Z assert 'no-capabilities: private UNIX runtime exchange failed: [false,false]' in text, text +2026-10-31T01:16:30.1977290Z PYCONTROL +2026-10-31T01:16:30.2020980Z shell: /bin/bash --noprofile --norc -e -o pipefail {0} +2026-10-31T01:16:30.2021260Z ##[endgroup] +2026-10-31T01:16:31.1157860Z ##[group]Run set -euo pipefail +2026-10-31T01:16:31.1158180Z set -euo pipefail +2026-10-31T01:16:31.1158830Z node --experimental-strip-types scripts/probes/plugin-confinement/macos_private_ipc.mts --report "$RUNNER_TEMP/unix-boundary.json" > "$RUNNER_TEMP/unix-boundary.log" 2>&1 +2026-10-31T01:16:31.1199020Z shell: /bin/bash --noprofile --norc -e -o pipefail {0} +2026-10-31T01:16:31.1199350Z ##[endgroup] +2026-10-31T01:16:32.0513020Z ##[group]Run set -euo pipefail +2026-10-31T01:16:32.0513370Z set -euo pipefail +2026-10-31T01:16:32.0513680Z log="$RUNNER_TEMP/unix-missing-scope.log" +2026-10-31T01:16:32.0514220Z if node --experimental-strip-types scripts/probes/plugin-confinement/macos_private_ipc.mts --missing-scope > "$log" 2>&1; then +2026-10-31T01:16:32.0514890Z  echo 'Missing UNIX outbound scope unexpectedly passed' >&2 +2026-10-31T01:16:32.0515190Z  exit 1 +2026-10-31T01:16:32.0515340Z fi +2026-10-31T01:16:32.0515510Z python3 - "$log" <<'PYCONTROL' +2026-10-31T01:16:32.0515740Z from pathlib import Path +2026-10-31T01:16:32.0515960Z import sys +2026-10-31T01:16:32.0516160Z text = Path(sys.argv[1]).read_text() +2026-10-31T01:16:32.0516470Z assert 'macOS datagram endpoint escaped scratch:' in text, text +2026-10-31T01:16:32.0516830Z import json, re +2026-10-31T01:16:32.0517300Z match = re.search(r'macOS datagram endpoint escaped scratch: (\{[^\n]+\})', text) +2026-10-31T01:16:32.0517680Z assert match, text +2026-10-31T01:16:32.0517930Z entry = json.loads(match[1]) +2026-10-31T01:16:32.0518280Z race = entry['observed']['datagram_race'] +2026-10-31T01:16:32.0518690Z assert race['host_control'] and race['settled'] and not race['failed'], entry +2026-10-31T01:16:32.0519130Z assert entry['datagram_receipts'] == 7 + race['host_acks'], entry +2026-10-31T01:16:32.0519550Z for token in ['"owner_received_fixture":true', '"acknowledged":true', +2026-10-31T01:16:32.0520030Z  '"owner_datagram_received_fixture":true', '"private_datagram":[true,true,true]', +2026-10-31T01:16:32.0520620Z  '"private_aliases":[true,true]', '"private_peer_matches":true']: +2026-10-31T01:16:32.0520950Z  assert token in text, text +2026-10-31T01:16:32.0521220Z PYCONTROL +2026-10-31T01:16:32.0562740Z shell: /bin/bash --noprofile --norc -e -o pipefail {0} +2026-10-31T01:16:32.0563060Z ##[endgroup] +2026-10-31T01:16:32.6326040Z ##[group]Run set -euo pipefail +2026-10-31T01:16:32.6326340Z set -euo pipefail +2026-10-31T01:16:32.6326660Z control="$RUNNER_TEMP/macos-datagram-bind-failure" +2026-10-31T01:16:32.6327360Z python3 - "$control" <<'PYCONTROL' +2026-10-31T01:16:32.6327630Z from pathlib import Path +2026-10-31T01:16:32.6327880Z import shutil, sys +2026-10-31T01:16:32.6328080Z target = Path(sys.argv[1]) +2026-10-31T01:16:32.6328550Z shutil.copytree('scripts/probes/plugin-confinement', target, ignore=shutil.ignore_patterns('evidence', '__pycache__')) +2026-10-31T01:16:32.6329040Z fixture = target / 'macos_datagram_race.h' +2026-10-31T01:16:32.6342430Z source = fixture.read_text() +2026-10-31T01:16:32.6342800Z needle = 'int client = datagram_socket(client_path);' +2026-10-31T01:16:32.6343210Z assert source.count(needle) == 1 +2026-10-31T01:16:32.6343860Z fixture.write_text(source.replace(needle, 'int client = datagram_socket(alias);')) +2026-10-31T01:16:32.6344410Z PYCONTROL +2026-10-31T01:16:32.6344710Z log="$RUNNER_TEMP/unix-datagram-bind-failure.log" +2026-10-31T01:16:32.6345290Z if node --experimental-strip-types "$control/macos_private_ipc.mts" > "$log" 2>&1; then +2026-10-31T01:16:32.6345760Z  echo 'Occupied datagram client bind unexpectedly passed' >&2 +2026-10-31T01:16:32.6346150Z  exit 1 +2026-10-31T01:16:32.6346290Z fi +2026-10-31T01:16:32.6346480Z python3 - "$log" <<'PYCONTROL' +2026-10-31T01:16:32.6346750Z from pathlib import Path +2026-10-31T01:16:32.6347080Z import errno, json, re, sys +2026-10-31T01:16:32.6347320Z text = Path(sys.argv[1]).read_text() +2026-10-31T01:16:32.6347690Z match = re.search(r'private datagram race control failed: (\{[^\n]+\})', text) +2026-10-31T01:16:32.6348140Z assert match, text +2026-10-31T01:16:32.6348330Z entry = json.loads(match[1]) +2026-10-31T01:16:32.6348580Z race = entry['observed']['datagram_race'] +2026-10-31T01:16:32.6349030Z assert entry['flags']['unrestricted'] and not race['private_control'], entry +2026-10-31T01:16:32.6349570Z assert race['failure_stage'] == 'client_bind', entry +2026-10-31T01:16:32.6349890Z assert race['failure_errno'] == errno.EADDRINUSE, entry +2026-10-31T01:16:32.6350230Z assert race['refused'] == 0 and race['attempts'] == 0, entry +2026-10-31T01:16:32.6350530Z diagnostic = entry['kernel_diagnostic'] +2026-10-31T01:16:32.6350870Z assert diagnostic['pid'] == entry['observed']['pid'] > 0, entry +2026-10-31T01:16:32.6351350Z assert len(diagnostic['output']) <= 16384 and len(diagnostic['stderr']) <= 2048, entry +2026-10-31T01:16:32.6351700Z PYCONTROL +2026-10-31T01:16:32.6385750Z shell: /bin/bash --noprofile --norc -e -o pipefail {0} +2026-10-31T01:16:32.6386020Z ##[endgroup] +2026-10-31T01:16:36.4956590Z ##[group]Run set -euo pipefail +2026-10-31T01:16:36.4956850Z set -euo pipefail +2026-10-31T01:16:36.4957130Z log="$RUNNER_TEMP/unix-dropped-rights.log" +2026-10-31T01:16:36.4957660Z if node --experimental-strip-types scripts/probes/plugin-confinement/macos_private_ipc.mts --drop-rights > "$log" 2>&1; then +2026-10-31T01:16:36.4958240Z  echo 'Missing SCM_RIGHTS reception unexpectedly passed' >&2 +2026-10-31T01:16:36.4958530Z  exit 1 +2026-10-31T01:16:36.4958670Z fi +2026-10-31T01:16:36.4958840Z python3 - "$log" <<'PYCONTROL' +2026-10-31T01:16:36.4959050Z from pathlib import Path +2026-10-31T01:16:36.4959260Z import sys +2026-10-31T01:16:36.4959450Z text = Path(sys.argv[1]).read_text() +2026-10-31T01:16:36.4959760Z assert 'private SCM_RIGHTS exchange failed:' in text, text +2026-10-31T01:16:36.4960190Z for token in ['"original_closed":true', '"sent":true', '"token":true', +2026-10-31T01:16:36.4960640Z  '"received":false', '"rights_payload":"A"', '"private_aliases":[true,true]']: +2026-10-31T01:16:36.4960990Z  assert token in text, text +2026-10-31T01:16:36.4961620Z PYCONTROL +2026-10-31T01:16:36.4994200Z shell: /bin/bash --noprofile --norc -e -o pipefail {0} +2026-10-31T01:16:36.4994460Z ##[endgroup] +2026-10-31T01:16:37.1563040Z ##[group]Run set -euo pipefail +2026-10-31T01:16:37.1563310Z set -euo pipefail +2026-10-31T01:16:37.1563550Z control="$RUNNER_TEMP/macos-rights-path-reader" +2026-10-31T01:16:37.1563820Z python3 - "$control" <<'PYCONTROL' +2026-10-31T01:16:37.1564040Z from pathlib import Path +2026-10-31T01:16:37.1564230Z import shutil, sys +2026-10-31T01:16:37.1564460Z target = Path(sys.argv[1]) +2026-10-31T01:16:37.1564950Z shutil.copytree('scripts/probes/plugin-confinement', target, ignore=shutil.ignore_patterns('evidence', '__pycache__')) +2026-10-31T01:16:37.1565570Z driver = target / 'macos_private_ipc.mts' +2026-10-31T01:16:37.1565860Z text = driver.read_text() +2026-10-31T01:16:37.1566210Z before = ' const rights_payload = contents.subarray(0, count).toString();' +2026-10-31T01:16:37.1566630Z assert text.count(before) == 1 +2026-10-31T01:16:37.1570390Z driver.write_text(text.replace(before, ' const rights_payload = readFileSync(join(paths.scratch, "rights.bin"), "utf8");')) +2026-10-31T01:16:37.1570870Z PYCONTROL +2026-10-31T01:16:37.1571090Z log="$RUNNER_TEMP/unix-rights-path-reader.log" +2026-10-31T01:16:37.1571500Z if node --experimental-strip-types "$control/macos_private_ipc.mts" > "$log" 2>&1; then +2026-10-31T01:16:37.1572010Z  echo 'Owner path re-resolution unexpectedly passed' >&2 +2026-10-31T01:16:37.1572300Z  exit 1 +2026-10-31T01:16:37.1572450Z fi +2026-10-31T01:16:37.1572750Z python3 - "$log" <<'PYCONTROL' +2026-10-31T01:16:37.1572970Z from pathlib import Path +2026-10-31T01:16:37.1573260Z import sys +2026-10-31T01:16:37.1573490Z text = Path(sys.argv[1]).read_text() +2026-10-31T01:16:37.1573780Z assert 'received descriptor file effect:' in text, text +2026-10-31T01:16:37.1574160Z for token in ['"rights_path_replaced":true', '"rights_link_count":0', +2026-10-31T01:16:37.1574590Z  '"rights_payload":"XX"', '"written":true', '"original_closed":true']: +2026-10-31T01:16:37.1574970Z  assert token in text, text +2026-10-31T01:16:37.1575170Z PYCONTROL +2026-10-31T01:16:37.1617500Z shell: /bin/bash --noprofile --norc -e -o pipefail {0} +2026-10-31T01:16:37.1617860Z ##[endgroup] +2026-10-31T01:16:37.7805230Z ##[group]Run actions/upload-artifact@v4 +2026-10-31T01:16:37.7805500Z with: +2026-10-31T01:16:37.7805690Z name: native-signing-candidate-macos-15 +2026-10-31T01:16:37.7807170Z path: /Users/runner/work/_temp/matrix.json +/Users/runner/work/_temp/matrix.log +/Users/runner/work/_temp/private-unix-missing-grant.log +/Users/runner/work/_temp/unix-boundary.json +/Users/runner/work/_temp/unix-boundary.log +/Users/runner/work/_temp/unix-missing-scope.log +/Users/runner/work/_temp/unix-datagram-bind-failure.log +/Users/runner/work/_temp/unix-dropped-rights.log +/Users/runner/work/_temp/unix-rights-path-reader.log +/Users/runner/work/_temp/exec.json +/Users/runner/work/_temp/exec.log + +2026-10-31T01:16:37.7808650Z if-no-files-found: error +2026-10-31T01:16:37.7808830Z retention-days: 14 +2026-10-31T01:16:37.7809000Z compression-level: 6 +2026-10-31T01:16:37.7809660Z overwrite: false +2026-10-31T01:16:37.7809830Z include-hidden-files: false +2026-10-31T01:16:37.7810070Z ##[endgroup] +2026-10-31T01:16:38.1111420Z (node:8777) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead. +2026-10-31T01:16:38.1117160Z (Use `node --trace-deprecation ...` to show where the warning was created) +2026-10-31T01:16:38.1215340Z Multiple search paths detected. Calculating the least common ancestor of all paths +2026-10-31T01:16:38.1220210Z The least common ancestor is /Users/runner/work/_temp. This will be the root directory of the artifact +2026-10-31T01:16:38.1222220Z With the provided path, there will be 11 files uploaded +2026-10-31T01:16:38.1223070Z Artifact name is valid! +2026-10-31T01:16:38.1224120Z Root directory input is valid! +2026-10-31T01:16:38.6460230Z (node:8777) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. +2026-10-31T01:16:38.6488650Z Beginning upload of artifact content to blob storage +2026-10-31T01:16:38.9068840Z Uploaded bytes 12414 +2026-10-31T01:16:38.9875950Z Finished uploading artifact content to blob storage! +2026-10-31T01:16:39.0001460Z SHA256 digest of uploaded artifact zip is 4bb5f61f1b6af179e798f3be8b8c9a9aa0ab69958e3fb293ec5b86e63f3113e5 +2026-10-31T01:16:39.0103310Z Finalizing artifact upload +2026-10-31T01:16:39.4527990Z Artifact native-signing-candidate-macos-15.zip successfully finalized. Artifact ID 13025070598 +2026-10-31T01:16:39.4530480Z Artifact native-signing-candidate-macos-15 has been successfully uploaded! Final size is 12414 bytes. Artifact ID is 13025070598 +2026-10-31T01:16:39.4537790Z Artifact download URL: https://github.com/CyberdyneCorp/cybercode-cli/actions/runs/41146156599/artifacts/13025070598 +2026-10-31T01:16:39.4777400Z Post job cleanup. +2026-10-31T01:16:39.6476870Z (node:8830) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead. +2026-10-31T01:16:39.6486690Z (Use `node --trace-deprecation ...` to show where the warning was created) +2026-10-31T01:16:39.6686450Z Post job cleanup. +2026-10-31T01:16:39.8077330Z [command]/opt/homebrew/bin/git version +2026-10-31T01:16:39.8300710Z git version 2.56.0 +2026-10-31T01:16:39.8329740Z Copying '/Users/runner/.gitconfig' to '/Users/runner/work/_temp/d08155a5-dfaa-44a5-a289-772c51e419d5/.gitconfig' +2026-10-31T01:16:39.8335970Z Temporarily overriding HOME='/Users/runner/work/_temp/d08155a5-dfaa-44a5-a289-772c51e419d5' before making global git config changes +2026-10-31T01:16:39.8336960Z Adding repository directory to the temporary git global config as a safe directory +2026-10-31T01:16:39.8339040Z [command]/opt/homebrew/bin/git config --global --add safe.directory /Users/runner/work/cybercode-cli/cybercode-cli +2026-10-31T01:16:39.8460270Z [command]/opt/homebrew/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-31T01:16:39.8567790Z [command]/opt/homebrew/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-31T01:16:40.1470420Z [command]/opt/homebrew/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-31T01:16:40.1555390Z http.https://github.com/.extraheader +2026-10-31T01:16:40.1573400Z [command]/opt/homebrew/bin/git config --local --unset-all http.https://github.com/.extraheader +2026-10-31T01:16:40.1689340Z [command]/opt/homebrew/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-31T01:16:40.3195800Z [command]/opt/homebrew/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-31T01:16:40.3498660Z [command]/opt/homebrew/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-31T01:16:40.5253570Z Cleaning up orphan processes +2026-10-31T01:16:41.3953210Z ##[warning]Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4, actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ diff --git a/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/arm64/source-binding.json b/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/arm64/source-binding.json new file mode 100644 index 00000000..5f29662b --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/arm64/source-binding.json @@ -0,0 +1,19 @@ +{ + "run_id": 41146156599, + "job_id": 124371641620, + "artifact_id": 13025070598, + "artifact_sha256": "4bb5f61f1b6af179e798f3be8b8c9a9aa0ab69958e3fb293ec5b86e63f3113e5", + "head": "d689d2f3ef2c4a0745a27adc363aafa2107699ad", + "tested_merge": "c5d9128d91d6e06bc458e4586a1815c5d65078a2", + "tree": "9db9168f6eb67b49c67834b782ffa209796e24bb", + "ipc_source_sha256": "a6d7fc68ceb9c768184f1c31964c687f16d8f89b97aeb0041dcad1da41656cae", + "scope": "Historical successful run before raw send return validation; does not resolve earlier errno ambiguity or complete native acceptance.", + "files": { + "job.log": "4b33f5d2b70eb50a3ad5bc5021c63e4ad0dd2e7ef845495660f935a06495364f", + "unix-boundary.json": "e05b1ea8741d8edf00ac1ba4f895cacfe65d483aee6401b14a28752be1a54f13", + "unix-datagram-bind-failure.log": "8183cb4d0efc946c36d8cfdadcf5d64ff5d66eb30f362ef9afa56187eeaec7ed", + "unix-dropped-rights.log": "5ac9456ba67c077a4c9a44d6f09c746af4278c480aa6720e298abdbd85d051ba", + "unix-missing-scope.log": "526c3dce55f76db8c08c349ade5a578dcf7a98b87c1f78d70b25dfab22c3e467", + "unix-rights-path-reader.log": "209934f7a3d20911a4f47dea5c2b1c20afc51b266dcf9a41192bbdcbb9927eb8" + } +} diff --git a/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/arm64/unix-boundary.json b/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/arm64/unix-boundary.json new file mode 100644 index 00000000..880e1a5e --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/arm64/unix-boundary.json @@ -0,0 +1,982 @@ +{ + "recorded_at": "2026-10-31T01:16:32.012Z", + "platform": "darwin", + "architecture": "arm64", + "kernel_release": "24.6.0", + "sources": [ + "macos_private_ipc.mts", + "macos_policy.mts", + "macos_rights.h", + "macos_datagram.h", + "macos_datagram_race.h", + "macos_datagram_owner.mts", + "macos_datagram_owner.c", + "fixture_native.c", + "process_policy.h", + "macos_exec.c" + ], + "source_sha256": "a6d7fc68ceb9c768184f1c31964c687f16d8f89b97aeb0041dcad1da41656cae", + "target_sha256": "22a04f6534a6428360c9df73a86a0c14e20ce325d8b92cbc795532846a8f7267", + "receiver_startup_controls": { + "missing_program_refused": true, + "failed_bind_refused": true + }, + "rows": [ + { + "name": "unconfined", + "flags": { + "read": true, + "write": true, + "shell": true, + "unrestricted": true + }, + "observed": { + "started": true, + "pid": 8408, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": true, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": true, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 6, + "host_acks": 10, + "refused": 0, + "swaps": 19, + "failure_stage": "", + "failure_errno": 0 + }, + "dgram_connect": { + "connected": true, + "sent": true, + "acknowledged": true + }, + "dgram_sendto": { + "connected": false, + "sent": true, + "acknowledged": true + }, + "dgram_sendmsg": { + "connected": false, + "sent": true, + "acknowledged": true + }, + "dgram_alias_connect": { + "connected": true, + "sent": true, + "acknowledged": true + }, + "dgram_alias_sendto": { + "connected": false, + "sent": true, + "acknowledged": true + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": true, + "acknowledged": true + }, + "direct": { + "connected": true, + "sent": true, + "acknowledged": true + }, + "hardlink": { + "connected": true, + "sent": true, + "acknowledged": true + }, + "symlink": { + "connected": true, + "sent": true, + "acknowledged": true + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 3, + "owner_received_fixture": true, + "datagram_receipts": 17, + "owner_datagram_received_fixture": true + }, + { + "name": "r0w0s0", + "flags": { + "read": false, + "write": false, + "shell": false + }, + "observed": { + "started": true, + "pid": 8411, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 7, + "host_acks": 0, + "refused": 9, + "swaps": 17, + "failure_stage": "", + "failure_errno": 0 + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r0w0s1", + "flags": { + "read": false, + "write": false, + "shell": true + }, + "observed": { + "started": true, + "pid": 8413, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 17, + "failure_stage": "", + "failure_errno": 0 + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r0w1s0", + "flags": { + "read": false, + "write": true, + "shell": false + }, + "observed": { + "started": true, + "pid": 8416, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 17, + "failure_stage": "", + "failure_errno": 0 + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r0w1s1", + "flags": { + "read": false, + "write": true, + "shell": true + }, + "observed": { + "started": true, + "pid": 8418, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 17, + "failure_stage": "", + "failure_errno": 0 + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r1w0s0", + "flags": { + "read": true, + "write": false, + "shell": false + }, + "observed": { + "started": true, + "pid": 8421, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0 + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r1w0s1", + "flags": { + "read": true, + "write": false, + "shell": true + }, + "observed": { + "started": true, + "pid": 8423, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 7, + "host_acks": 0, + "refused": 9, + "swaps": 18, + "failure_stage": "", + "failure_errno": 0 + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r1w1s0", + "flags": { + "read": true, + "write": true, + "shell": false + }, + "observed": { + "started": true, + "pid": 8427, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0 + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r1w1s1", + "flags": { + "read": true, + "write": true, + "shell": true + }, + "observed": { + "started": true, + "pid": 8429, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 7, + "host_acks": 0, + "refused": 9, + "swaps": 17, + "failure_stage": "", + "failure_errno": 0 + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + } + ], + "scope": "Experimental pre-runtime native UNIX stream/datagram/descriptor controls; complete IPC/proxy/ownership and App acceptance remain required." +} diff --git a/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/arm64/unix-datagram-bind-failure.log b/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/arm64/unix-datagram-bind-failure.log new file mode 100644 index 00000000..753aef39 --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/arm64/unix-datagram-bind-failure.log @@ -0,0 +1,20 @@ +node:internal/modules/run_main:123 + triggerUncaughtException( + ^ + +AssertionError [ERR_ASSERTION]: private datagram race control failed: {"name":"unconfined","flags":{"read":true,"write":true,"shell":true,"unrestricted":true},"observed":{"started":true,"pid":8470,"private_unix":[true,true],"private_peer_checks":8,"private_peer_matches":true,"hardlink_created":true,"symlink_created":true,"private_aliases":[true,true],"rights":{"sent":true,"original_closed":true,"token":true,"truncated":false,"received":true,"same_inode":true,"readable":true,"written":true,"cloexec":true},"rights_path_replaced":true,"private_datagram":[true,true,true],"datagram_symlink_created":true,"datagram_race":{"private_control":false,"host_control":false,"settled":false,"failed":false,"attempts":0,"private_acks":0,"host_acks":0,"refused":0,"swaps":0,"failure_stage":"client_bind","failure_errno":48},"dgram_connect":{"connected":true,"sent":true,"acknowledged":true},"dgram_sendto":{"connected":false,"sent":true,"acknowledged":true},"dgram_sendmsg":{"connected":false,"sent":true,"acknowledged":true},"dgram_alias_connect":{"connected":true,"sent":true,"acknowledged":true},"dgram_alias_sendto":{"connected":false,"sent":true,"acknowledged":true},"dgram_alias_sendmsg":{"connected":false,"sent":true,"acknowledged":true},"direct":{"connected":true,"sent":true,"acknowledged":true},"hardlink":{"connected":true,"sent":true,"acknowledged":true},"symlink":{"connected":true,"sent":true,"acknowledged":true}},"rights_payload":"AB","rights_link_count":0,"kernel_diagnostic":{"pid":8470,"status":0,"signal":null,"error":"","stderr":"","output":"[]"},"owner_receipts":3,"owner_received_fixture":true,"datagram_receipts":6,"owner_datagram_received_fixture":true} + +false !== true + + at check (file:///Users/runner/work/_temp/macos-datagram-bind-failure/macos_private_ipc.mts:150:10) + at file:///Users/runner/work/_temp/macos-datagram-bind-failure/macos_private_ipc.mts:206:5 + at process.processTicksAndRejections (node:internal/process/task_queues:103:5) { + generatedMessage: false, + code: 'ERR_ASSERTION', + actual: false, + expected: true, + operator: 'strictEqual', + diff: 'simple' +} + +Node.js v22.23.4 diff --git a/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/arm64/unix-dropped-rights.log b/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/arm64/unix-dropped-rights.log new file mode 100644 index 00000000..989ae187 --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/arm64/unix-dropped-rights.log @@ -0,0 +1,56 @@ +node:internal/modules/run_main:123 + triggerUncaughtException( + ^ + +AssertionError [ERR_ASSERTION]: private SCM_RIGHTS exchange failed: {"name":"r0w0s0","flags":{"read":false,"write":false,"shell":false},"observed":{"started":true,"pid":8628,"private_unix":[true,true],"private_peer_checks":8,"private_peer_matches":true,"hardlink_created":false,"symlink_created":true,"private_aliases":[true,true],"rights":{"sent":true,"original_closed":true,"token":true,"truncated":false,"received":false,"same_inode":false,"readable":false,"written":false,"cloexec":false},"rights_path_replaced":true,"private_datagram":[true,true,true],"datagram_symlink_created":true,"datagram_race":{"private_control":true,"host_control":false,"settled":true,"failed":false,"attempts":16,"private_acks":8,"host_acks":0,"refused":8,"swaps":17,"failure_stage":"","failure_errno":0},"dgram_connect":{"connected":false,"sent":false,"acknowledged":false},"dgram_sendto":{"connected":false,"sent":false,"acknowledged":false},"dgram_sendmsg":{"connected":false,"sent":false,"acknowledged":false},"dgram_alias_connect":{"connected":false,"sent":false,"acknowledged":false},"dgram_alias_sendto":{"connected":false,"sent":false,"acknowledged":false},"dgram_alias_sendmsg":{"connected":false,"sent":false,"acknowledged":false},"direct":{"connected":false,"sent":false,"acknowledged":false},"hardlink":{"connected":false,"sent":false,"acknowledged":false},"symlink":{"connected":false,"sent":false,"acknowledged":false}},"rights_payload":"A","rights_link_count":0,"owner_receipts":0,"owner_received_fixture":false,"datagram_receipts":0,"owner_datagram_received_fixture":false} ++ actual - expected + + { ++ cloexec: false, +- cloexec: true, + original_closed: true, ++ readable: false, ++ received: false, ++ same_inode: false, +- readable: true, +- received: true, +- same_inode: true, + sent: true, + token: true, + truncated: false, ++ written: false +- written: true + } + + at check (file:///Users/runner/work/cybercode-cli/cybercode-cli/scripts/probes/plugin-confinement/macos_private_ipc.mts:142:10) + at file:///Users/runner/work/cybercode-cli/cybercode-cli/scripts/probes/plugin-confinement/macos_private_ipc.mts:206:5 + at process.processTicksAndRejections (node:internal/process/task_queues:103:5) { + generatedMessage: false, + code: 'ERR_ASSERTION', + actual: { + sent: true, + original_closed: true, + token: true, + truncated: false, + received: false, + same_inode: false, + readable: false, + written: false, + cloexec: false + }, + expected: { + sent: true, + original_closed: true, + token: true, + truncated: false, + received: true, + same_inode: true, + readable: true, + written: true, + cloexec: true + }, + operator: 'deepStrictEqual', + diff: 'simple' +} + +Node.js v22.23.4 diff --git a/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/arm64/unix-missing-scope.log b/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/arm64/unix-missing-scope.log new file mode 100644 index 00000000..d3c33600 --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/arm64/unix-missing-scope.log @@ -0,0 +1,20 @@ +node:internal/modules/run_main:123 + triggerUncaughtException( + ^ + +AssertionError [ERR_ASSERTION]: macOS datagram endpoint escaped scratch: {"name":"r0w0s0","flags":{"read":false,"write":false,"shell":false},"observed":{"started":true,"pid":8450,"private_unix":[true,true],"private_peer_checks":8,"private_peer_matches":true,"hardlink_created":false,"symlink_created":true,"private_aliases":[true,true],"rights":{"sent":true,"original_closed":true,"token":true,"truncated":false,"received":true,"same_inode":true,"readable":true,"written":true,"cloexec":true},"rights_path_replaced":true,"private_datagram":[true,true,true],"datagram_symlink_created":true,"datagram_race":{"private_control":true,"host_control":true,"settled":true,"failed":false,"attempts":16,"private_acks":7,"host_acks":9,"refused":0,"swaps":17,"failure_stage":"","failure_errno":0},"dgram_connect":{"connected":true,"sent":true,"acknowledged":true},"dgram_sendto":{"connected":false,"sent":true,"acknowledged":true},"dgram_sendmsg":{"connected":false,"sent":true,"acknowledged":true},"dgram_alias_connect":{"connected":true,"sent":true,"acknowledged":true},"dgram_alias_sendto":{"connected":false,"sent":true,"acknowledged":true},"dgram_alias_sendmsg":{"connected":false,"sent":true,"acknowledged":true},"direct":{"connected":true,"sent":true,"acknowledged":true},"hardlink":{"connected":false,"sent":false,"acknowledged":false},"symlink":{"connected":true,"sent":true,"acknowledged":true}},"rights_payload":"AB","rights_link_count":0,"owner_receipts":2,"owner_received_fixture":true,"datagram_receipts":16,"owner_datagram_received_fixture":true} + +16 !== 0 + + at check (file:///Users/runner/work/cybercode-cli/cybercode-cli/scripts/probes/plugin-confinement/macos_private_ipc.mts:158:10) + at file:///Users/runner/work/cybercode-cli/cybercode-cli/scripts/probes/plugin-confinement/macos_private_ipc.mts:206:5 + at process.processTicksAndRejections (node:internal/process/task_queues:103:5) { + generatedMessage: false, + code: 'ERR_ASSERTION', + actual: 16, + expected: 0, + operator: 'strictEqual', + diff: 'simple' +} + +Node.js v22.23.4 diff --git a/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/arm64/unix-rights-path-reader.log b/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/arm64/unix-rights-path-reader.log new file mode 100644 index 00000000..c4cd6956 --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/arm64/unix-rights-path-reader.log @@ -0,0 +1,20 @@ +node:internal/modules/run_main:123 + triggerUncaughtException( + ^ + +AssertionError [ERR_ASSERTION]: received descriptor file effect: {"name":"unconfined","flags":{"read":true,"write":true,"shell":true,"unrestricted":true},"observed":{"started":true,"pid":8756,"private_unix":[true,true],"private_peer_checks":8,"private_peer_matches":true,"hardlink_created":true,"symlink_created":true,"private_aliases":[true,true],"rights":{"sent":true,"original_closed":true,"token":true,"truncated":false,"received":true,"same_inode":true,"readable":true,"written":true,"cloexec":true},"rights_path_replaced":true,"private_datagram":[true,true,true],"datagram_symlink_created":true,"datagram_race":{"private_control":true,"host_control":true,"settled":true,"failed":false,"attempts":16,"private_acks":7,"host_acks":9,"refused":0,"swaps":21,"failure_stage":"","failure_errno":0},"dgram_connect":{"connected":true,"sent":true,"acknowledged":true},"dgram_sendto":{"connected":false,"sent":true,"acknowledged":true},"dgram_sendmsg":{"connected":false,"sent":true,"acknowledged":true},"dgram_alias_connect":{"connected":true,"sent":true,"acknowledged":true},"dgram_alias_sendto":{"connected":false,"sent":true,"acknowledged":true},"dgram_alias_sendmsg":{"connected":false,"sent":true,"acknowledged":true},"direct":{"connected":true,"sent":true,"acknowledged":true},"hardlink":{"connected":true,"sent":true,"acknowledged":true},"symlink":{"connected":true,"sent":true,"acknowledged":true}},"rights_payload":"XX","rights_link_count":0,"owner_receipts":3,"owner_received_fixture":true,"datagram_receipts":16,"owner_datagram_received_fixture":true} + +'XX' !== 'AB' + + at check (file:///Users/runner/work/_temp/macos-rights-path-reader/macos_private_ipc.mts:146:10) + at file:///Users/runner/work/_temp/macos-rights-path-reader/macos_private_ipc.mts:206:5 + at process.processTicksAndRejections (node:internal/process/task_queues:103:5) { + generatedMessage: false, + code: 'ERR_ASSERTION', + actual: 'XX', + expected: 'AB', + operator: 'strictEqual', + diff: 'simple' +} + +Node.js v22.23.4 diff --git a/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/x64/job.log b/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/x64/job.log new file mode 100644 index 00000000..046cb4e5 --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/x64/job.log @@ -0,0 +1,412 @@ +2026-10-31T00:21:08.4669460Z Current runner version: '2.338.2' +2026-10-31T00:21:08.4732810Z ##[group]Runner Image Provisioner +2026-10-31T00:21:08.4735690Z Hosted Compute Agent +2026-10-31T00:21:08.4737920Z Version: 20260819.586 +2026-10-31T00:21:08.4740380Z Commit: 3cc4a88dfa507ef76119ad1bb3eccc6378bb2b76 +2026-10-31T00:21:08.4742410Z Build Date: 2026-08-18T23:20:18Z +2026-10-31T00:21:08.4744180Z Worker ID: {6e25309b-6645-418f-80c9-1c2a31d7e0e8} +2026-10-31T00:21:08.4747220Z Azure Region: westus +2026-10-31T00:21:08.4749590Z ##[endgroup] +2026-10-31T00:21:08.4754470Z ##[group]Operating System +2026-10-31T00:21:08.4764800Z macOS +2026-10-31T00:21:08.4767610Z 15.7.9 +2026-10-31T00:21:08.4769600Z 24G830 +2026-10-31T00:21:08.4770980Z ##[endgroup] +2026-10-31T00:21:08.4772300Z ##[group]Runner Image +2026-10-31T00:21:08.4774410Z Image: macos-15 +2026-10-31T00:21:08.4776530Z Version: 20260824.0482.1 +2026-10-31T00:21:08.4788590Z Included Software: https://github.com/actions/runner-images/blob/macos-15/20260824.0482/images/macos/macos-15-Readme.md +2026-10-31T00:21:08.4797120Z Image Release: https://github.com/actions/runner-images/releases/tag/macos-15%2F20260824.0482 +2026-10-31T00:21:08.4800960Z ##[endgroup] +2026-10-31T00:21:08.4806850Z ##[group]GITHUB_TOKEN Permissions +2026-10-31T00:21:08.4813730Z Contents: read +2026-10-31T00:21:08.4815940Z Metadata: read +2026-10-31T00:21:08.4817970Z ##[endgroup] +2026-10-31T00:21:08.4824060Z Secret source: Actions +2026-10-31T00:21:08.4827600Z Cache mode: write +2026-10-31T00:21:08.4831780Z Prepare workflow directory +2026-10-31T00:21:08.5618600Z Prepare all required actions +2026-10-31T00:21:08.5743990Z Getting action download info +2026-10-31T00:21:08.8157170Z Download action repository 'actions/checkout@v4' (SHA:11d5960a326750d5838078e36cf38b85af677262) +2026-10-31T00:21:10.9033170Z Download action repository 'actions/setup-node@v4' (SHA:49933ea5288caeca8642d1e84afbd3f7d6820020) +2026-10-31T00:21:12.4425850Z Download action repository 'actions/upload-artifact@v4' (SHA:ea165f8d65b6e75b540449e92b4886f43607fa02) +2026-10-31T00:21:13.7309620Z Complete job name: Native signing-identity candidate (macos-15-intel) +2026-10-31T00:21:14.0394860Z ##[group]Run actions/checkout@v4 +2026-10-31T00:21:14.0398940Z with: +2026-10-31T00:21:14.0401160Z repository: CyberdyneCorp/cybercode-cli +2026-10-31T00:21:14.0426260Z token: *** +2026-10-31T00:21:14.0429170Z ssh-strict: true +2026-10-31T00:21:14.0431750Z ssh-user: git +2026-10-31T00:21:14.0434490Z persist-credentials: true +2026-10-31T00:21:14.0437390Z clean: true +2026-10-31T00:21:14.0440000Z sparse-checkout-cone-mode: true +2026-10-31T00:21:14.0443710Z fetch-depth: 1 +2026-10-31T00:21:14.0446260Z fetch-tags: false +2026-10-31T00:21:14.0448910Z show-progress: true +2026-10-31T00:21:14.0451490Z lfs: false +2026-10-31T00:21:14.0453790Z submodules: false +2026-10-31T00:21:14.0457090Z set-safe-directory: true +2026-10-31T00:21:14.0460030Z allow-unsafe-pr-checkout: false +2026-10-31T00:21:14.0464020Z ##[endgroup] +2026-10-31T00:21:16.4052430Z Syncing repository: CyberdyneCorp/cybercode-cli +2026-10-31T00:21:16.4057250Z ##[group]Getting Git version info +2026-10-31T00:21:16.4059410Z Working directory is '/Users/runner/work/cybercode-cli/cybercode-cli' +2026-10-31T00:21:16.4117610Z [command]/usr/local/bin/git version +2026-10-31T00:21:16.5436210Z git version 2.55.0 +2026-10-31T00:21:16.5480090Z ##[endgroup] +2026-10-31T00:21:16.5502320Z Copying '/Users/runner/.gitconfig' to '/Users/runner/work/_temp/e5d60bcc-e069-458e-8a6c-773ddd62df96/.gitconfig' +2026-10-31T00:21:16.5524970Z Temporarily overriding HOME='/Users/runner/work/_temp/e5d60bcc-e069-458e-8a6c-773ddd62df96' before making global git config changes +2026-10-31T00:21:16.5527710Z Adding repository directory to the temporary git global config as a safe directory +2026-10-31T00:21:16.5533250Z [command]/usr/local/bin/git config --global --add safe.directory /Users/runner/work/cybercode-cli/cybercode-cli +2026-10-31T00:21:16.5790710Z Deleting the contents of '/Users/runner/work/cybercode-cli/cybercode-cli' +2026-10-31T00:21:16.5801070Z ##[group]Initializing the repository +2026-10-31T00:21:16.5810090Z [command]/usr/local/bin/git init /Users/runner/work/cybercode-cli/cybercode-cli +2026-10-31T00:21:16.6453900Z hint: Using 'master' as the name for the initial branch. This default branch name +2026-10-31T00:21:16.6457020Z hint: will change to "main" in Git 3.0. To configure the initial branch name +2026-10-31T00:21:16.6458930Z hint: to use in all of your new repositories, which will suppress this warning, +2026-10-31T00:21:16.6460400Z hint: call: +2026-10-31T00:21:16.6461240Z hint: +2026-10-31T00:21:16.6462330Z hint: git config --global init.defaultBranch +2026-10-31T00:21:16.6463780Z hint: +2026-10-31T00:21:16.6464910Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +2026-10-31T00:21:16.6467160Z hint: 'development'. The just-created branch can be renamed via this command: +2026-10-31T00:21:16.6468680Z hint: +2026-10-31T00:21:16.6469490Z hint: git branch -m +2026-10-31T00:21:16.6593990Z hint: +2026-10-31T00:21:16.6597490Z hint: Disable this message with "git config set advice.defaultBranchName false" +2026-10-31T00:21:16.6600920Z Initialized empty Git repository in /Users/runner/work/cybercode-cli/cybercode-cli/.git/ +2026-10-31T00:21:16.6605070Z [command]/usr/local/bin/git remote add origin https://github.com/CyberdyneCorp/cybercode-cli +2026-10-31T00:21:16.6771640Z ##[endgroup] +2026-10-31T00:21:16.6773110Z ##[group]Disabling automatic garbage collection +2026-10-31T00:21:16.6780250Z [command]/usr/local/bin/git config --local gc.auto 0 +2026-10-31T00:21:16.6938220Z ##[endgroup] +2026-10-31T00:21:16.6939750Z ##[group]Setting up auth +2026-10-31T00:21:16.6955180Z [command]/usr/local/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-31T00:21:16.7154830Z [command]/usr/local/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-31T00:21:17.0672180Z [command]/usr/local/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-31T00:21:17.1628140Z [command]/usr/local/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-31T00:21:17.7586800Z [command]/usr/local/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-31T00:21:17.7782280Z [command]/usr/local/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-31T00:21:18.0540420Z [command]/usr/local/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic *** +2026-10-31T00:21:18.0547660Z ##[endgroup] +2026-10-31T00:21:18.0550120Z ##[group]Fetching the repository +2026-10-31T00:21:18.0556080Z [command]/usr/local/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +c5d9128d91d6e06bc458e4586a1815c5d65078a2:refs/remotes/pull/80/merge +2026-10-31T00:21:21.9196410Z From https://github.com/CyberdyneCorp/cybercode-cli +2026-10-31T00:21:21.9207100Z * [new ref] c5d9128d91d6e06bc458e4586a1815c5d65078a2 -> pull/80/merge +2026-10-31T00:21:21.9211020Z ##[endgroup] +2026-10-31T00:21:21.9212370Z ##[group]Determining the checkout info +2026-10-31T00:21:21.9219740Z ##[endgroup] +2026-10-31T00:21:21.9225880Z [command]/usr/local/bin/git sparse-checkout disable +2026-10-31T00:21:21.9455200Z [command]/usr/local/bin/git config --local --unset-all extensions.worktreeConfig +2026-10-31T00:21:21.9625230Z ##[group]Checking out the ref +2026-10-31T00:21:21.9632290Z [command]/usr/local/bin/git checkout --progress --force refs/remotes/pull/80/merge +2026-10-31T00:21:23.1028530Z Updating files: 24% (983/3970) +2026-10-31T00:21:23.1256950Z Updating files: 25% (993/3970) +2026-10-31T00:21:23.1619430Z Updating files: 26% (1033/3970) +2026-10-31T00:21:23.1642860Z Updating files: 27% (1072/3970) +2026-10-31T00:21:23.2266900Z Updating files: 28% (1112/3970) +2026-10-31T00:21:23.2306550Z Updating files: 29% (1152/3970) +2026-10-31T00:21:23.2336450Z Updating files: 30% (1191/3970) +2026-10-31T00:21:23.2424470Z Updating files: 31% (1231/3970) +2026-10-31T00:21:23.2651910Z Updating files: 32% (1271/3970) +2026-10-31T00:21:23.3138490Z Updating files: 33% (1311/3970) +2026-10-31T00:21:23.4276120Z Updating files: 34% (1350/3970) +2026-10-31T00:21:23.5274320Z Updating files: 35% (1390/3970) +2026-10-31T00:21:23.6179030Z Updating files: 36% (1430/3970) +2026-10-31T00:21:23.6218180Z Updating files: 37% (1469/3970) +2026-10-31T00:21:23.6898320Z Updating files: 38% (1509/3970) +2026-10-31T00:21:23.7727670Z Updating files: 39% (1549/3970) +2026-10-31T00:21:23.9672870Z Updating files: 40% (1588/3970) +2026-10-31T00:21:23.9789560Z Updating files: 41% (1628/3970) +2026-10-31T00:21:24.0027530Z Updating files: 42% (1668/3970) +2026-10-31T00:21:24.1432300Z Updating files: 42% (1683/3970) +2026-10-31T00:21:24.2656940Z Updating files: 43% (1708/3970) +2026-10-31T00:21:24.3467550Z Updating files: 44% (1747/3970) +2026-10-31T00:21:24.3722630Z Updating files: 45% (1787/3970) +2026-10-31T00:21:24.3954790Z Updating files: 46% (1827/3970) +2026-10-31T00:21:24.4174080Z Updating files: 47% (1866/3970) +2026-10-31T00:21:24.4373350Z Updating files: 48% (1906/3970) +2026-10-31T00:21:24.6207390Z Updating files: 49% (1946/3970) +2026-10-31T00:21:24.6309410Z Updating files: 50% (1985/3970) +2026-10-31T00:21:24.6467620Z Updating files: 51% (2025/3970) +2026-10-31T00:21:24.6720140Z Updating files: 52% (2065/3970) +2026-10-31T00:21:24.6931620Z Updating files: 53% (2105/3970) +2026-10-31T00:21:24.8545070Z Updating files: 54% (2144/3970) +2026-10-31T00:21:24.8661030Z Updating files: 55% (2184/3970) +2026-10-31T00:21:24.8800620Z Updating files: 56% (2224/3970) +2026-10-31T00:21:24.9043510Z Updating files: 57% (2263/3970) +2026-10-31T00:21:24.9299280Z Updating files: 58% (2303/3970) +2026-10-31T00:21:24.9488620Z Updating files: 59% (2343/3970) +2026-10-31T00:21:25.1496370Z Updating files: 60% (2382/3970) +2026-10-31T00:21:25.2499330Z Updating files: 60% (2389/3970) +2026-10-31T00:21:25.3503020Z Updating files: 61% (2422/3970) +2026-10-31T00:21:25.4509710Z Updating files: 62% (2462/3970) +2026-10-31T00:21:25.4798220Z Updating files: 63% (2502/3970) +2026-10-31T00:21:25.4915800Z Updating files: 64% (2541/3970) +2026-10-31T00:21:25.4977710Z Updating files: 65% (2581/3970) +2026-10-31T00:21:25.5092050Z Updating files: 66% (2621/3970) +2026-10-31T00:21:25.5994640Z Updating files: 67% (2660/3970) +2026-10-31T00:21:25.6250570Z Updating files: 68% (2700/3970) +2026-10-31T00:21:25.6599960Z Updating files: 69% (2740/3970) +2026-10-31T00:21:25.8052760Z Updating files: 70% (2779/3970) +2026-10-31T00:21:25.9058500Z Updating files: 71% (2819/3970) +2026-10-31T00:21:25.9824370Z Updating files: 72% (2859/3970) +2026-10-31T00:21:25.9881730Z Updating files: 73% (2899/3970) +2026-10-31T00:21:25.9994360Z Updating files: 74% (2938/3970) +2026-10-31T00:21:26.0235960Z Updating files: 74% (2958/3970) +2026-10-31T00:21:26.0965900Z Updating files: 75% (2978/3970) +2026-10-31T00:21:26.1413900Z Updating files: 76% (3018/3970) +2026-10-31T00:21:26.1761100Z Updating files: 77% (3057/3970) +2026-10-31T00:21:26.2084610Z Updating files: 78% (3097/3970) +2026-10-31T00:21:26.2484060Z Updating files: 79% (3137/3970) +2026-10-31T00:21:26.2762290Z Updating files: 80% (3176/3970) +2026-10-31T00:21:26.3016390Z Updating files: 81% (3216/3970) +2026-10-31T00:21:26.3350200Z Updating files: 82% (3256/3970) +2026-10-31T00:21:26.3612280Z Updating files: 83% (3296/3970) +2026-10-31T00:21:26.3918350Z Updating files: 84% (3335/3970) +2026-10-31T00:21:26.4169670Z Updating files: 85% (3375/3970) +2026-10-31T00:21:26.4410430Z Updating files: 86% (3415/3970) +2026-10-31T00:21:26.6331800Z Updating files: 87% (3454/3970) +2026-10-31T00:21:26.7330690Z Updating files: 88% (3494/3970) +2026-10-31T00:21:26.7452090Z Updating files: 89% (3534/3970) +2026-10-31T00:21:26.7481740Z Updating files: 90% (3573/3970) +2026-10-31T00:21:26.7511500Z Updating files: 91% (3613/3970) +2026-10-31T00:21:26.7534230Z Updating files: 92% (3653/3970) +2026-10-31T00:21:26.7824100Z Updating files: 93% (3693/3970) +2026-10-31T00:21:26.9344860Z Updating files: 94% (3732/3970) +2026-10-31T00:21:27.0225300Z Updating files: 95% (3772/3970) +2026-10-31T00:21:27.0329840Z Updating files: 96% (3812/3970) +2026-10-31T00:21:27.0348500Z Updating files: 97% (3851/3970) +2026-10-31T00:21:27.0404320Z Updating files: 98% (3891/3970) +2026-10-31T00:21:27.0420340Z Updating files: 99% (3931/3970) +2026-10-31T00:21:27.0432420Z Updating files: 100% (3970/3970) +2026-10-31T00:21:27.0439530Z Updating files: 100% (3970/3970), done. +2026-10-31T00:21:27.0458760Z HEAD is now at c5d9128 Merge d689d2f3ef2c4a0745a27adc363aafa2107699ad into 3ecf0755b80f2bf04e718e846197baabfd03a8ce +2026-10-31T00:21:27.0485100Z ##[endgroup] +2026-10-31T00:21:27.0518270Z [command]/usr/local/bin/git log -1 --format=%H +2026-10-31T00:21:27.0546990Z c5d9128d91d6e06bc458e4586a1815c5d65078a2 +2026-10-31T00:21:27.1586530Z ##[group]Run actions/setup-node@v4 +2026-10-31T00:21:27.1587410Z with: +2026-10-31T00:21:27.1587980Z node-version: 22 +2026-10-31T00:21:27.1588620Z always-auth: false +2026-10-31T00:21:27.1589260Z check-latest: false +2026-10-31T00:21:27.1597160Z token: *** +2026-10-31T00:21:27.1597730Z ##[endgroup] +2026-10-31T00:21:27.6390080Z (node:10049) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead. +2026-10-31T00:21:27.6462250Z (Use `node --trace-deprecation ...` to show where the warning was created) +2026-10-31T00:21:27.6861420Z Found in cache @ /Users/runner/hostedtoolcache/node/22.23.2/x64 +2026-10-31T00:21:27.6912250Z ##[group]Environment details +2026-10-31T00:21:31.3327050Z node: v22.23.2 +2026-10-31T00:21:31.3426630Z npm: 10.9.8 +2026-10-31T00:21:31.4462670Z yarn: 1.22.22 +2026-10-31T00:21:31.4873740Z ##[endgroup] +2026-10-31T00:21:31.5242580Z ##[group]Run set -euo pipefail +2026-10-31T00:21:31.5243930Z set -euo pipefail +2026-10-31T00:21:31.5245230Z # Acceptance requires original-image positive startup, denied self-exec, +2026-10-31T00:21:31.5247130Z # matching-identity counterexamples and descriptor isolation. +2026-10-31T00:21:31.5249140Z # The historical re-signing experiment remains an opt-in diagnostic; +2026-10-31T00:21:31.5250810Z # its failed startup control is never counted as confinement. +2026-10-31T00:21:31.5254210Z node --experimental-strip-types scripts/probes/plugin-confinement/run.mts --runtime native --macos-signing-native --macos-private-unix --report "$RUNNER_TEMP/matrix.json" > "$RUNNER_TEMP/matrix.log" 2>&1 +2026-10-31T00:21:31.5259060Z node --experimental-strip-types scripts/probes/plugin-confinement/macos_signing_exec.mts --report "$RUNNER_TEMP/exec.json" > "$RUNNER_TEMP/exec.log" 2>&1 +2026-10-31T00:21:31.5429840Z shell: /bin/bash --noprofile --norc -e -o pipefail {0} +2026-10-31T00:21:31.5430990Z ##[endgroup] +2026-10-31T00:22:18.5418610Z ##[group]Run set -euo pipefail +2026-10-31T00:22:18.5420340Z set -euo pipefail +2026-10-31T00:22:18.5461670Z control="$RUNNER_TEMP/macos-private-unix-missing-grant" +2026-10-31T00:22:18.5465600Z python3 - "$control" <<'PYCONTROL' +2026-10-31T00:22:18.5466700Z from pathlib import Path +2026-10-31T00:22:18.5467680Z import shutil, sys +2026-10-31T00:22:18.5468680Z target = Path(sys.argv[1]) +2026-10-31T00:22:18.5470680Z shutil.copytree('scripts/probes/plugin-confinement', target, ignore=shutil.ignore_patterns('evidence', '__pycache__')) +2026-10-31T00:22:18.5472750Z driver = target / 'macos_policy.mts' +2026-10-31T00:22:18.5473920Z text = driver.read_text() +2026-10-31T00:22:18.5474840Z before = ' if (privateUnix) {' +2026-10-31T00:22:18.5475900Z assert text.count(before) == 1 +2026-10-31T00:22:18.5477850Z driver.write_text(text.replace(before, ' if (false) { // Missing scratch UNIX grant control.')) +2026-10-31T00:22:18.5480080Z PYCONTROL +2026-10-31T00:22:18.5482880Z log="$RUNNER_TEMP/private-unix-missing-grant.log" +2026-10-31T00:22:18.5485790Z if node --experimental-strip-types "$control/run.mts" --runtime native --macos-signing-native --macos-private-unix --report "$control/result.json" > "$log" 2>&1; then +2026-10-31T00:22:18.5488790Z  echo 'Missing private UNIX policy unexpectedly passed' >&2 +2026-10-31T00:22:18.5490430Z  exit 1 +2026-10-31T00:22:18.5491120Z fi +2026-10-31T00:22:18.5491890Z python3 - "$log" <<'PYCONTROL' +2026-10-31T00:22:18.5492960Z from pathlib import Path +2026-10-31T00:22:18.5493810Z import sys +2026-10-31T00:22:18.5494870Z text = Path(sys.argv[1]).read_text() +2026-10-31T00:22:18.5496590Z assert 'no-capabilities: private UNIX runtime exchange failed: [false,false]' in text, text +2026-10-31T00:22:18.5498420Z PYCONTROL +2026-10-31T00:22:18.5630680Z shell: /bin/bash --noprofile --norc -e -o pipefail {0} +2026-10-31T00:22:18.5631860Z ##[endgroup] +2026-10-31T00:22:20.5234750Z ##[group]Run set -euo pipefail +2026-10-31T00:22:20.5236100Z set -euo pipefail +2026-10-31T00:22:20.5238800Z node --experimental-strip-types scripts/probes/plugin-confinement/macos_private_ipc.mts --report "$RUNNER_TEMP/unix-boundary.json" > "$RUNNER_TEMP/unix-boundary.log" 2>&1 +2026-10-31T00:22:20.5400870Z shell: /bin/bash --noprofile --norc -e -o pipefail {0} +2026-10-31T00:22:20.5402090Z ##[endgroup] +2026-10-31T00:22:22.6105730Z ##[group]Run set -euo pipefail +2026-10-31T00:22:22.6107930Z set -euo pipefail +2026-10-31T00:22:22.6109000Z log="$RUNNER_TEMP/unix-missing-scope.log" +2026-10-31T00:22:22.6111210Z if node --experimental-strip-types scripts/probes/plugin-confinement/macos_private_ipc.mts --missing-scope > "$log" 2>&1; then +2026-10-31T00:22:22.6113930Z  echo 'Missing UNIX outbound scope unexpectedly passed' >&2 +2026-10-31T00:22:22.6115300Z  exit 1 +2026-10-31T00:22:22.6115870Z fi +2026-10-31T00:22:22.6116440Z python3 - "$log" <<'PYCONTROL' +2026-10-31T00:22:22.6117230Z from pathlib import Path +2026-10-31T00:22:22.6117850Z import sys +2026-10-31T00:22:22.6118480Z text = Path(sys.argv[1]).read_text() +2026-10-31T00:22:22.6119770Z assert 'macOS datagram endpoint escaped scratch:' in text, text +2026-10-31T00:22:22.6120820Z import json, re +2026-10-31T00:22:22.6122120Z match = re.search(r'macOS datagram endpoint escaped scratch: (\{[^\n]+\})', text) +2026-10-31T00:22:22.6123370Z assert match, text +2026-10-31T00:22:22.6123980Z entry = json.loads(match[1]) +2026-10-31T00:22:22.6124780Z race = entry['observed']['datagram_race'] +2026-10-31T00:22:22.6126140Z assert race['host_control'] and race['settled'] and not race['failed'], entry +2026-10-31T00:22:22.6127840Z assert entry['datagram_receipts'] == 7 + race['host_acks'], entry +2026-10-31T00:22:22.6130590Z for token in ['"owner_received_fixture":true', '"acknowledged":true', +2026-10-31T00:22:22.6132140Z  '"owner_datagram_received_fixture":true', '"private_datagram":[true,true,true]', +2026-10-31T00:22:22.6133730Z  '"private_aliases":[true,true]', '"private_peer_matches":true']: +2026-10-31T00:22:22.6134890Z  assert token in text, text +2026-10-31T00:22:22.6135920Z PYCONTROL +2026-10-31T00:22:22.6345760Z shell: /bin/bash --noprofile --norc -e -o pipefail {0} +2026-10-31T00:22:22.6346880Z ##[endgroup] +2026-10-31T00:22:24.9749300Z ##[group]Run set -euo pipefail +2026-10-31T00:22:24.9750520Z set -euo pipefail +2026-10-31T00:22:24.9751580Z control="$RUNNER_TEMP/macos-datagram-bind-failure" +2026-10-31T00:22:24.9752780Z python3 - "$control" <<'PYCONTROL' +2026-10-31T00:22:24.9753760Z from pathlib import Path +2026-10-31T00:22:24.9754630Z import shutil, sys +2026-10-31T00:22:24.9755700Z target = Path(sys.argv[1]) +2026-10-31T00:22:24.9758730Z shutil.copytree('scripts/probes/plugin-confinement', target, ignore=shutil.ignore_patterns('evidence', '__pycache__')) +2026-10-31T00:22:24.9760820Z fixture = target / 'macos_datagram_race.h' +2026-10-31T00:22:24.9761910Z source = fixture.read_text() +2026-10-31T00:22:24.9763040Z needle = 'int client = datagram_socket(client_path);' +2026-10-31T00:22:24.9764250Z assert source.count(needle) == 1 +2026-10-31T00:22:24.9765890Z fixture.write_text(source.replace(needle, 'int client = datagram_socket(alias);')) +2026-10-31T00:22:24.9767470Z PYCONTROL +2026-10-31T00:22:24.9768590Z log="$RUNNER_TEMP/unix-datagram-bind-failure.log" +2026-10-31T00:22:24.9770340Z if node --experimental-strip-types "$control/macos_private_ipc.mts" > "$log" 2>&1; then +2026-10-31T00:22:24.9772280Z  echo 'Occupied datagram client bind unexpectedly passed' >&2 +2026-10-31T00:22:24.9773730Z  exit 1 +2026-10-31T00:22:24.9774420Z fi +2026-10-31T00:22:24.9775150Z python3 - "$log" <<'PYCONTROL' +2026-10-31T00:22:24.9776080Z from pathlib import Path +2026-10-31T00:22:24.9777030Z import errno, json, re, sys +2026-10-31T00:22:24.9777990Z text = Path(sys.argv[1]).read_text() +2026-10-31T00:22:24.9779620Z match = re.search(r'private datagram race control failed: (\{[^\n]+\})', text) +2026-10-31T00:22:24.9781080Z assert match, text +2026-10-31T00:22:24.9781950Z entry = json.loads(match[1]) +2026-10-31T00:22:24.9783250Z race = entry['observed']['datagram_race'] +2026-10-31T00:22:24.9784830Z assert entry['flags']['unrestricted'] and not race['private_control'], entry +2026-10-31T00:22:24.9786480Z assert race['failure_stage'] == 'client_bind', entry +2026-10-31T00:22:24.9787980Z assert race['failure_errno'] == errno.EADDRINUSE, entry +2026-10-31T00:22:24.9789600Z assert race['refused'] == 0 and race['attempts'] == 0, entry +2026-10-31T00:22:24.9791110Z diagnostic = entry['kernel_diagnostic'] +2026-10-31T00:22:24.9792550Z assert diagnostic['pid'] == entry['observed']['pid'] > 0, entry +2026-10-31T00:22:24.9795700Z assert len(diagnostic['output']) <= 16384 and len(diagnostic['stderr']) <= 2048, entry +2026-10-31T00:22:24.9797510Z PYCONTROL +2026-10-31T00:22:24.9974330Z shell: /bin/bash --noprofile --norc -e -o pipefail {0} +2026-10-31T00:22:24.9975420Z ##[endgroup] +2026-10-31T00:22:31.7505890Z ##[group]Run set -euo pipefail +2026-10-31T00:22:31.7507000Z set -euo pipefail +2026-10-31T00:22:31.7508300Z log="$RUNNER_TEMP/unix-dropped-rights.log" +2026-10-31T00:22:31.7512350Z if node --experimental-strip-types scripts/probes/plugin-confinement/macos_private_ipc.mts --drop-rights > "$log" 2>&1; then +2026-10-31T00:22:31.7521660Z  echo 'Missing SCM_RIGHTS reception unexpectedly passed' >&2 +2026-10-31T00:22:31.7525780Z  exit 1 +2026-10-31T00:22:31.7526510Z fi +2026-10-31T00:22:31.7527400Z python3 - "$log" <<'PYCONTROL' +2026-10-31T00:22:31.7528480Z from pathlib import Path +2026-10-31T00:22:31.7530310Z import sys +2026-10-31T00:22:31.7531290Z text = Path(sys.argv[1]).read_text() +2026-10-31T00:22:31.7532750Z assert 'private SCM_RIGHTS exchange failed:' in text, text +2026-10-31T00:22:31.7566450Z for token in ['"original_closed":true', '"sent":true', '"token":true', +2026-10-31T00:22:31.7568540Z  '"received":false', '"rights_payload":"A"', '"private_aliases":[true,true]']: +2026-10-31T00:22:31.7570000Z  assert token in text, text +2026-10-31T00:22:31.7571000Z PYCONTROL +2026-10-31T00:22:31.7713770Z shell: /bin/bash --noprofile --norc -e -o pipefail {0} +2026-10-31T00:22:31.7714900Z ##[endgroup] +2026-10-31T00:22:34.4244700Z ##[group]Run set -euo pipefail +2026-10-31T00:22:34.4247030Z set -euo pipefail +2026-10-31T00:22:34.4248090Z control="$RUNNER_TEMP/macos-rights-path-reader" +2026-10-31T00:22:34.4249300Z python3 - "$control" <<'PYCONTROL' +2026-10-31T00:22:34.4250350Z from pathlib import Path +2026-10-31T00:22:34.4251330Z import shutil, sys +2026-10-31T00:22:34.4253020Z target = Path(sys.argv[1]) +2026-10-31T00:22:34.4255230Z shutil.copytree('scripts/probes/plugin-confinement', target, ignore=shutil.ignore_patterns('evidence', '__pycache__')) +2026-10-31T00:22:34.4257230Z driver = target / 'macos_private_ipc.mts' +2026-10-31T00:22:34.4258230Z text = driver.read_text() +2026-10-31T00:22:34.4259760Z before = ' const rights_payload = contents.subarray(0, count).toString();' +2026-10-31T00:22:34.4261320Z assert text.count(before) == 1 +2026-10-31T00:22:34.4263470Z driver.write_text(text.replace(before, ' const rights_payload = readFileSync(join(paths.scratch, "rights.bin"), "utf8");')) +2026-10-31T00:22:34.4265880Z PYCONTROL +2026-10-31T00:22:34.4266970Z log="$RUNNER_TEMP/unix-rights-path-reader.log" +2026-10-31T00:22:34.4268730Z if node --experimental-strip-types "$control/macos_private_ipc.mts" > "$log" 2>&1; then +2026-10-31T00:22:34.4270760Z  echo 'Owner path re-resolution unexpectedly passed' >&2 +2026-10-31T00:22:34.4271960Z  exit 1 +2026-10-31T00:22:34.4272650Z fi +2026-10-31T00:22:34.4273390Z python3 - "$log" <<'PYCONTROL' +2026-10-31T00:22:34.4274380Z from pathlib import Path +2026-10-31T00:22:34.4275290Z import sys +2026-10-31T00:22:34.4276170Z text = Path(sys.argv[1]).read_text() +2026-10-31T00:22:34.4277530Z assert 'received descriptor file effect:' in text, text +2026-10-31T00:22:34.4279270Z for token in ['"rights_path_replaced":true', '"rights_link_count":0', +2026-10-31T00:22:34.4281210Z  '"rights_payload":"XX"', '"written":true', '"original_closed":true']: +2026-10-31T00:22:34.4282610Z  assert token in text, text +2026-10-31T00:22:34.4283460Z PYCONTROL +2026-10-31T00:22:34.4403670Z shell: /bin/bash --noprofile --norc -e -o pipefail {0} +2026-10-31T00:22:34.4404870Z ##[endgroup] +2026-10-31T00:22:36.4476320Z ##[group]Run actions/upload-artifact@v4 +2026-10-31T00:22:36.4477390Z with: +2026-10-31T00:22:36.4478200Z name: native-signing-candidate-macos-15-intel +2026-10-31T00:22:36.4484810Z path: /Users/runner/work/_temp/matrix.json +/Users/runner/work/_temp/matrix.log +/Users/runner/work/_temp/private-unix-missing-grant.log +/Users/runner/work/_temp/unix-boundary.json +/Users/runner/work/_temp/unix-boundary.log +/Users/runner/work/_temp/unix-missing-scope.log +/Users/runner/work/_temp/unix-datagram-bind-failure.log +/Users/runner/work/_temp/unix-dropped-rights.log +/Users/runner/work/_temp/unix-rights-path-reader.log +/Users/runner/work/_temp/exec.json +/Users/runner/work/_temp/exec.log + +2026-10-31T00:22:36.4492780Z if-no-files-found: error +2026-10-31T00:22:36.4493610Z retention-days: 14 +2026-10-31T00:22:36.4494530Z compression-level: 6 +2026-10-31T00:22:36.4495300Z overwrite: false +2026-10-31T00:22:36.4499170Z include-hidden-files: false +2026-10-31T00:22:36.4500080Z ##[endgroup] +2026-10-31T00:22:36.9740210Z (node:11117) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead. +2026-10-31T00:22:36.9779210Z (Use `node --trace-deprecation ...` to show where the warning was created) +2026-10-31T00:22:37.1772150Z Multiple search paths detected. Calculating the least common ancestor of all paths +2026-10-31T00:22:37.2245500Z The least common ancestor is /Users/runner/work/_temp. This will be the root directory of the artifact +2026-10-31T00:22:37.2294390Z With the provided path, there will be 11 files uploaded +2026-10-31T00:22:37.2341840Z Artifact name is valid! +2026-10-31T00:22:37.2380870Z Root directory input is valid! +2026-10-31T00:22:37.2837980Z Beginning upload of artifact content to blob storage +2026-10-31T00:22:37.3917720Z (node:11117) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. +2026-10-31T00:22:37.4581150Z Uploaded bytes 12391 +2026-10-31T00:22:37.4805690Z Finished uploading artifact content to blob storage! +2026-10-31T00:22:37.4832610Z SHA256 digest of uploaded artifact zip is 4a09e3bb6c4799f1d87bc4780b5753eb1b0b483b024c7f5a98cbdf1029737874 +2026-10-31T00:22:37.4844270Z Finalizing artifact upload +2026-10-31T00:22:38.0554150Z Artifact native-signing-candidate-macos-15-intel.zip successfully finalized. Artifact ID 13021948909 +2026-10-31T00:22:38.0568200Z Artifact native-signing-candidate-macos-15-intel has been successfully uploaded! Final size is 12391 bytes. Artifact ID is 13021948909 +2026-10-31T00:22:38.0578050Z Artifact download URL: https://github.com/CyberdyneCorp/cybercode-cli/actions/runs/41146156599/artifacts/13021948909 +2026-10-31T00:22:38.0855440Z Post job cleanup. +2026-10-31T00:22:38.6414320Z (node:11128) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead. +2026-10-31T00:22:38.6681230Z (Use `node --trace-deprecation ...` to show where the warning was created) +2026-10-31T00:22:38.7402290Z Post job cleanup. +2026-10-31T00:22:39.0959800Z [command]/usr/local/bin/git version +2026-10-31T00:22:39.1104580Z git version 2.55.0 +2026-10-31T00:22:39.1171040Z Copying '/Users/runner/.gitconfig' to '/Users/runner/work/_temp/5b19f9e4-021b-46d9-84d3-7e9b9f0607d2/.gitconfig' +2026-10-31T00:22:39.1195820Z Temporarily overriding HOME='/Users/runner/work/_temp/5b19f9e4-021b-46d9-84d3-7e9b9f0607d2' before making global git config changes +2026-10-31T00:22:39.1199170Z Adding repository directory to the temporary git global config as a safe directory +2026-10-31T00:22:39.1208510Z [command]/usr/local/bin/git config --global --add safe.directory /Users/runner/work/cybercode-cli/cybercode-cli +2026-10-31T00:22:39.1360060Z [command]/usr/local/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-31T00:22:39.1510890Z [command]/usr/local/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-31T00:22:39.3950990Z [command]/usr/local/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-31T00:22:39.4114410Z http.https://github.com/.extraheader +2026-10-31T00:22:39.4140590Z [command]/usr/local/bin/git config --local --unset-all http.https://github.com/.extraheader +2026-10-31T00:22:39.4349270Z [command]/usr/local/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-31T00:22:40.0438070Z [command]/usr/local/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-31T00:22:40.1022990Z [command]/usr/local/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-31T00:22:40.5933170Z Cleaning up orphan processes +2026-10-31T00:22:41.4467670Z ##[warning]Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4, actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ diff --git a/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/x64/source-binding.json b/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/x64/source-binding.json new file mode 100644 index 00000000..e9b4bdff --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/x64/source-binding.json @@ -0,0 +1,19 @@ +{ + "run_id": 41146156599, + "job_id": 124371641477, + "artifact_id": 13021948909, + "artifact_sha256": "4a09e3bb6c4799f1d87bc4780b5753eb1b0b483b024c7f5a98cbdf1029737874", + "head": "d689d2f3ef2c4a0745a27adc363aafa2107699ad", + "tested_merge": "c5d9128d91d6e06bc458e4586a1815c5d65078a2", + "tree": "9db9168f6eb67b49c67834b782ffa209796e24bb", + "ipc_source_sha256": "a6d7fc68ceb9c768184f1c31964c687f16d8f89b97aeb0041dcad1da41656cae", + "scope": "Historical successful run before raw send return validation; does not resolve earlier errno ambiguity or complete native acceptance.", + "files": { + "job.log": "81f6e605a00c515a4b6b289913efbf85a8f651b598f1f3d8ec15de556e9641ae", + "unix-boundary.json": "eb3ae36b5cb5ab3e9b3424ca417d39ea647ac00f4b14e02d821a475883004b78", + "unix-datagram-bind-failure.log": "8329c88f156daa88bcd88d421112fdcf58f43ee2c1073693a87c1f7ee6823c39", + "unix-dropped-rights.log": "37887b766a038757d07952ddb94abcdd29117a397db37acfde32dbe979267a6d", + "unix-missing-scope.log": "c1a8fddf9de299805ef99042d3c39be978b773d8aca34bf87b23932e286ea10e", + "unix-rights-path-reader.log": "2258cfab0924f93f3243d1d9549bddc95f7d80be17669b6149baa45c097db95b" + } +} diff --git a/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/x64/unix-boundary.json b/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/x64/unix-boundary.json new file mode 100644 index 00000000..77e0fbfa --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/x64/unix-boundary.json @@ -0,0 +1,982 @@ +{ + "recorded_at": "2026-10-31T00:22:22.488Z", + "platform": "darwin", + "architecture": "x64", + "kernel_release": "24.6.0", + "sources": [ + "macos_private_ipc.mts", + "macos_policy.mts", + "macos_rights.h", + "macos_datagram.h", + "macos_datagram_race.h", + "macos_datagram_owner.mts", + "macos_datagram_owner.c", + "fixture_native.c", + "process_policy.h", + "macos_exec.c" + ], + "source_sha256": "a6d7fc68ceb9c768184f1c31964c687f16d8f89b97aeb0041dcad1da41656cae", + "target_sha256": "82992c3e7ea0520610df8c408d16c7e1efa36dd69c50b10ffbab672a55ce0627", + "receiver_startup_controls": { + "missing_program_refused": true, + "failed_bind_refused": true + }, + "rows": [ + { + "name": "unconfined", + "flags": { + "read": true, + "write": true, + "shell": true, + "unrestricted": true + }, + "observed": { + "started": true, + "pid": 10782, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": true, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": true, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 7, + "host_acks": 9, + "refused": 0, + "swaps": 17, + "failure_stage": "", + "failure_errno": 0 + }, + "dgram_connect": { + "connected": true, + "sent": true, + "acknowledged": true + }, + "dgram_sendto": { + "connected": false, + "sent": true, + "acknowledged": true + }, + "dgram_sendmsg": { + "connected": false, + "sent": true, + "acknowledged": true + }, + "dgram_alias_connect": { + "connected": true, + "sent": true, + "acknowledged": true + }, + "dgram_alias_sendto": { + "connected": false, + "sent": true, + "acknowledged": true + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": true, + "acknowledged": true + }, + "direct": { + "connected": true, + "sent": true, + "acknowledged": true + }, + "hardlink": { + "connected": true, + "sent": true, + "acknowledged": true + }, + "symlink": { + "connected": true, + "sent": true, + "acknowledged": true + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 3, + "owner_received_fixture": true, + "datagram_receipts": 16, + "owner_datagram_received_fixture": true + }, + { + "name": "r0w0s0", + "flags": { + "read": false, + "write": false, + "shell": false + }, + "observed": { + "started": true, + "pid": 10785, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 7, + "host_acks": 0, + "refused": 9, + "swaps": 19, + "failure_stage": "", + "failure_errno": 0 + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r0w0s1", + "flags": { + "read": false, + "write": false, + "shell": true + }, + "observed": { + "started": true, + "pid": 10787, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0 + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r0w1s0", + "flags": { + "read": false, + "write": true, + "shell": false + }, + "observed": { + "started": true, + "pid": 10790, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 17, + "failure_stage": "", + "failure_errno": 0 + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r0w1s1", + "flags": { + "read": false, + "write": true, + "shell": true + }, + "observed": { + "started": true, + "pid": 10792, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 7, + "host_acks": 0, + "refused": 9, + "swaps": 18, + "failure_stage": "", + "failure_errno": 0 + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r1w0s0", + "flags": { + "read": true, + "write": false, + "shell": false + }, + "observed": { + "started": true, + "pid": 10795, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0 + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r1w0s1", + "flags": { + "read": true, + "write": false, + "shell": true + }, + "observed": { + "started": true, + "pid": 10797, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 9, + "host_acks": 0, + "refused": 7, + "swaps": 18, + "failure_stage": "", + "failure_errno": 0 + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r1w1s0", + "flags": { + "read": true, + "write": true, + "shell": false + }, + "observed": { + "started": true, + "pid": 10800, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 17, + "failure_stage": "", + "failure_errno": 0 + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r1w1s1", + "flags": { + "read": true, + "write": true, + "shell": true + }, + "observed": { + "started": true, + "pid": 10802, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 17, + "failure_stage": "", + "failure_errno": 0 + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + } + ], + "scope": "Experimental pre-runtime native UNIX stream/datagram/descriptor controls; complete IPC/proxy/ownership and App acceptance remain required." +} diff --git a/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/x64/unix-datagram-bind-failure.log b/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/x64/unix-datagram-bind-failure.log new file mode 100644 index 00000000..b5c792c4 --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/x64/unix-datagram-bind-failure.log @@ -0,0 +1,20 @@ +node:internal/modules/run_main:123 + triggerUncaughtException( + ^ + +AssertionError [ERR_ASSERTION]: private datagram race control failed: {"name":"unconfined","flags":{"read":true,"write":true,"shell":true,"unrestricted":true},"observed":{"started":true,"pid":10940,"private_unix":[true,true],"private_peer_checks":8,"private_peer_matches":true,"hardlink_created":true,"symlink_created":true,"private_aliases":[true,true],"rights":{"sent":true,"original_closed":true,"token":true,"truncated":false,"received":true,"same_inode":true,"readable":true,"written":true,"cloexec":true},"rights_path_replaced":true,"private_datagram":[true,true,true],"datagram_symlink_created":true,"datagram_race":{"private_control":false,"host_control":false,"settled":false,"failed":false,"attempts":0,"private_acks":0,"host_acks":0,"refused":0,"swaps":0,"failure_stage":"client_bind","failure_errno":48},"dgram_connect":{"connected":true,"sent":true,"acknowledged":true},"dgram_sendto":{"connected":false,"sent":true,"acknowledged":true},"dgram_sendmsg":{"connected":false,"sent":true,"acknowledged":true},"dgram_alias_connect":{"connected":true,"sent":true,"acknowledged":true},"dgram_alias_sendto":{"connected":false,"sent":true,"acknowledged":true},"dgram_alias_sendmsg":{"connected":false,"sent":true,"acknowledged":true},"direct":{"connected":true,"sent":true,"acknowledged":true},"hardlink":{"connected":true,"sent":true,"acknowledged":true},"symlink":{"connected":true,"sent":true,"acknowledged":true}},"rights_payload":"AB","rights_link_count":0,"kernel_diagnostic":{"pid":10940,"status":null,"signal":"SIGKILL","error":"spawnSync /usr/bin/log ETIMEDOUT","stderr":"","output":""},"owner_receipts":3,"owner_received_fixture":true,"datagram_receipts":6,"owner_datagram_received_fixture":true} + +false !== true + + at check (file:///Users/runner/work/_temp/macos-datagram-bind-failure/macos_private_ipc.mts:150:10) + at file:///Users/runner/work/_temp/macos-datagram-bind-failure/macos_private_ipc.mts:206:5 + at process.processTicksAndRejections (node:internal/process/task_queues:103:5) { + generatedMessage: false, + code: 'ERR_ASSERTION', + actual: false, + expected: true, + operator: 'strictEqual', + diff: 'simple' +} + +Node.js v22.23.2 diff --git a/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/x64/unix-dropped-rights.log b/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/x64/unix-dropped-rights.log new file mode 100644 index 00000000..9418a9b2 --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/x64/unix-dropped-rights.log @@ -0,0 +1,56 @@ +node:internal/modules/run_main:123 + triggerUncaughtException( + ^ + +AssertionError [ERR_ASSERTION]: private SCM_RIGHTS exchange failed: {"name":"r0w0s0","flags":{"read":false,"write":false,"shell":false},"observed":{"started":true,"pid":11002,"private_unix":[true,true],"private_peer_checks":8,"private_peer_matches":true,"hardlink_created":false,"symlink_created":true,"private_aliases":[true,true],"rights":{"sent":true,"original_closed":true,"token":true,"truncated":false,"received":false,"same_inode":false,"readable":false,"written":false,"cloexec":false},"rights_path_replaced":true,"private_datagram":[true,true,true],"datagram_symlink_created":true,"datagram_race":{"private_control":true,"host_control":false,"settled":true,"failed":false,"attempts":16,"private_acks":7,"host_acks":0,"refused":9,"swaps":21,"failure_stage":"","failure_errno":0},"dgram_connect":{"connected":false,"sent":false,"acknowledged":false},"dgram_sendto":{"connected":false,"sent":false,"acknowledged":false},"dgram_sendmsg":{"connected":false,"sent":false,"acknowledged":false},"dgram_alias_connect":{"connected":false,"sent":false,"acknowledged":false},"dgram_alias_sendto":{"connected":false,"sent":false,"acknowledged":false},"dgram_alias_sendmsg":{"connected":false,"sent":false,"acknowledged":false},"direct":{"connected":false,"sent":false,"acknowledged":false},"hardlink":{"connected":false,"sent":false,"acknowledged":false},"symlink":{"connected":false,"sent":false,"acknowledged":false}},"rights_payload":"A","rights_link_count":0,"owner_receipts":0,"owner_received_fixture":false,"datagram_receipts":0,"owner_datagram_received_fixture":false} ++ actual - expected + + { ++ cloexec: false, +- cloexec: true, + original_closed: true, ++ readable: false, ++ received: false, ++ same_inode: false, +- readable: true, +- received: true, +- same_inode: true, + sent: true, + token: true, + truncated: false, ++ written: false +- written: true + } + + at check (file:///Users/runner/work/cybercode-cli/cybercode-cli/scripts/probes/plugin-confinement/macos_private_ipc.mts:142:10) + at file:///Users/runner/work/cybercode-cli/cybercode-cli/scripts/probes/plugin-confinement/macos_private_ipc.mts:206:5 + at process.processTicksAndRejections (node:internal/process/task_queues:103:5) { + generatedMessage: false, + code: 'ERR_ASSERTION', + actual: { + sent: true, + original_closed: true, + token: true, + truncated: false, + received: false, + same_inode: false, + readable: false, + written: false, + cloexec: false + }, + expected: { + sent: true, + original_closed: true, + token: true, + truncated: false, + received: true, + same_inode: true, + readable: true, + written: true, + cloexec: true + }, + operator: 'deepStrictEqual', + diff: 'simple' +} + +Node.js v22.23.2 diff --git a/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/x64/unix-missing-scope.log b/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/x64/unix-missing-scope.log new file mode 100644 index 00000000..fb9de58c --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/x64/unix-missing-scope.log @@ -0,0 +1,20 @@ +node:internal/modules/run_main:123 + triggerUncaughtException( + ^ + +AssertionError [ERR_ASSERTION]: macOS datagram endpoint escaped scratch: {"name":"r0w0s0","flags":{"read":false,"write":false,"shell":false},"observed":{"started":true,"pid":10915,"private_unix":[true,true],"private_peer_checks":8,"private_peer_matches":true,"hardlink_created":false,"symlink_created":true,"private_aliases":[true,true],"rights":{"sent":true,"original_closed":true,"token":true,"truncated":false,"received":true,"same_inode":true,"readable":true,"written":true,"cloexec":true},"rights_path_replaced":true,"private_datagram":[true,true,true],"datagram_symlink_created":true,"datagram_race":{"private_control":true,"host_control":true,"settled":true,"failed":false,"attempts":16,"private_acks":8,"host_acks":8,"refused":0,"swaps":30,"failure_stage":"","failure_errno":0},"dgram_connect":{"connected":true,"sent":true,"acknowledged":true},"dgram_sendto":{"connected":false,"sent":true,"acknowledged":true},"dgram_sendmsg":{"connected":false,"sent":true,"acknowledged":true},"dgram_alias_connect":{"connected":true,"sent":true,"acknowledged":true},"dgram_alias_sendto":{"connected":false,"sent":true,"acknowledged":true},"dgram_alias_sendmsg":{"connected":false,"sent":true,"acknowledged":true},"direct":{"connected":true,"sent":true,"acknowledged":true},"hardlink":{"connected":false,"sent":false,"acknowledged":false},"symlink":{"connected":true,"sent":true,"acknowledged":true}},"rights_payload":"AB","rights_link_count":0,"owner_receipts":2,"owner_received_fixture":true,"datagram_receipts":15,"owner_datagram_received_fixture":true} + +15 !== 0 + + at check (file:///Users/runner/work/cybercode-cli/cybercode-cli/scripts/probes/plugin-confinement/macos_private_ipc.mts:158:10) + at file:///Users/runner/work/cybercode-cli/cybercode-cli/scripts/probes/plugin-confinement/macos_private_ipc.mts:206:5 + at process.processTicksAndRejections (node:internal/process/task_queues:103:5) { + generatedMessage: false, + code: 'ERR_ASSERTION', + actual: 15, + expected: 0, + operator: 'strictEqual', + diff: 'simple' +} + +Node.js v22.23.2 diff --git a/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/x64/unix-rights-path-reader.log b/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/x64/unix-rights-path-reader.log new file mode 100644 index 00000000..0b2f96c5 --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/x64/unix-rights-path-reader.log @@ -0,0 +1,20 @@ +node:internal/modules/run_main:123 + triggerUncaughtException( + ^ + +AssertionError [ERR_ASSERTION]: received descriptor file effect: {"name":"unconfined","flags":{"read":true,"write":true,"shell":true,"unrestricted":true},"observed":{"started":true,"pid":11112,"private_unix":[true,true],"private_peer_checks":8,"private_peer_matches":true,"hardlink_created":true,"symlink_created":true,"private_aliases":[true,true],"rights":{"sent":true,"original_closed":true,"token":true,"truncated":false,"received":true,"same_inode":true,"readable":true,"written":true,"cloexec":true},"rights_path_replaced":true,"private_datagram":[true,true,true],"datagram_symlink_created":true,"datagram_race":{"private_control":true,"host_control":true,"settled":true,"failed":false,"attempts":16,"private_acks":8,"host_acks":8,"refused":0,"swaps":17,"failure_stage":"","failure_errno":0},"dgram_connect":{"connected":true,"sent":true,"acknowledged":true},"dgram_sendto":{"connected":false,"sent":true,"acknowledged":true},"dgram_sendmsg":{"connected":false,"sent":true,"acknowledged":true},"dgram_alias_connect":{"connected":true,"sent":true,"acknowledged":true},"dgram_alias_sendto":{"connected":false,"sent":true,"acknowledged":true},"dgram_alias_sendmsg":{"connected":false,"sent":true,"acknowledged":true},"direct":{"connected":true,"sent":true,"acknowledged":true},"hardlink":{"connected":true,"sent":true,"acknowledged":true},"symlink":{"connected":true,"sent":true,"acknowledged":true}},"rights_payload":"XX","rights_link_count":0,"owner_receipts":3,"owner_received_fixture":true,"datagram_receipts":15,"owner_datagram_received_fixture":true} + +'XX' !== 'AB' + + at check (file:///Users/runner/work/_temp/macos-rights-path-reader/macos_private_ipc.mts:146:10) + at file:///Users/runner/work/_temp/macos-rights-path-reader/macos_private_ipc.mts:206:5 + at process.processTicksAndRejections (node:internal/process/task_queues:103:5) { + generatedMessage: false, + code: 'ERR_ASSERTION', + actual: 'XX', + expected: 'AB', + operator: 'strictEqual', + diff: 'simple' +} + +Node.js v22.23.2 diff --git a/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/exec.json b/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/exec.json new file mode 100644 index 00000000..4921c1a4 --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/exec.json @@ -0,0 +1,82 @@ +{ + "recorded_at": "2026-10-31T12:47:23.097Z", + "platform": "darwin", + "architecture": "arm64", + "kernel_release": "25.6.0", + "sources": [ + "macos_signing_exec.mts", + "macos_exec.c", + "fixture_exec.c", + "macos_signature.c", + "macos_fds.c" + ], + "source_sha256": "7a06af58c27b8b134dd4833f6947b1a27623c4c3ef34c74542528d05ae284723", + "signing_identifier": "com.cyberdyne.probe.helperX.565ef08b-70ed-4f69-ac35-fef898a13420", + "signature": { + "status": 0, + "signal": null, + "stdout": "", + "stderr": "" + }, + "native_control": { + "initial_exec": true, + "self_exec": true + }, + "native": { + "initial_exec": true, + "self_exec": false + }, + "original_platform_image": { + "path": "/bin/bash", + "sha256": "67e853b740606c0cb92fc8b7186a98d327d783f7e7cd911773bb83f73f3d6583", + "control": { + "status": 0, + "signal": null, + "stdout": "initial-admitted\nself-exec", + "stderr": "" + }, + "restricted": { + "status": 1, + "signal": null, + "stdout": "initial-admitted\n", + "stderr": "/bin/bash: /bin/bash: Operation not permitted\n/bin/bash: /bin/bash: Undefined error: 0\n" + } + }, + "same_identifier_counterexample": { + "initial_exec": true, + "self_exec": true + }, + "detached_signature": { + "control": [ + { + "initial_exec": true, + "add_signature_result": 0, + "add_signature_errno": 0 + }, + { + "self_exec": true + } + ], + "restricted": [ + { + "initial_exec": true, + "add_signature_result": 0, + "add_signature_errno": 0 + }, + { + "self_exec": false, + "exec_errno": 1 + } + ], + "original_image_unchanged": true + }, + "inherited_above_soft_limit": { + "control": { + "inherited_descriptor": true + }, + "launcher": { + "inherited_descriptor": false + } + }, + "limitation": "Experimental exec-only candidate. Identifier collision is an observed bypass. Immutable package/helper identity admission across all slices, other kernel mutation interfaces, packaging and owner integration remain unproved; no production support change." +} diff --git a/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/matrix.json b/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/matrix.json new file mode 100644 index 00000000..a2229c63 --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/matrix.json @@ -0,0 +1,548 @@ +{ + "recorded_at": "2026-10-31T12:47:20.377Z", + "kernel_release": "25.6.0", + "sources": [ + "run.mts", + "macos_policy.mts", + "macos_rights.h", + "macos_datagram_send.h", + "macos_datagram.h", + "macos_datagram_race.h", + "macos_python.c", + "macos_node.c", + "native_exec.c", + "node_bootstrap.cjs", + "fixture.py", + "fixture.cjs", + "private_unix.cjs", + "process_policy.h", + "linux_filter.h", + "linux_exec.c", + "linux_initial_exec.h", + "fixture_native.c", + "macos_exec.c", + "macos_stage.mts" + ], + "source_sha256": "b7b415bfc2d330ef9833c3b818e58db84b3f1676f1fded955940ff5cc53d4fab", + "platform": "darwin", + "architecture": "arm64", + "runtime": "native", + "version": "fixture-v2", + "signing_identifier": "com.cyberdyne.probe.bootstrap.969c3154-377d-4a36-9a45-aa0114970c57", + "socket_broker_candidate": false, + "private_stream_candidate": false, + "macos_private_unix_candidate": true, + "mechanism": "fresh signing identifier on trusted launcher + exact-target Seatbelt exec rule before any runtime instruction; target signature unchanged; experimental subject-identity candidate", + "limitation": "experimental native mechanisms; macOS uses deprecated Seatbelt API; not production packaging or Windows acceptance", + "unsupported_cases": [], + "rows": [ + { + "name": "unconfined-control", + "flags": { + "read": true, + "write": true, + "shell": true, + "unrestricted": true + }, + "observations": { + "stdio_tool": true, + "package_read": true, + "scratch_write": true, + "scratch_read": true, + "project_read": true, + "project_list": true, + "project_write": true, + "written_project_read": true, + "private_read": true, + "private_list": true, + "private_write": true, + "protected_read": true, + "protected_write": true, + "symlink_private_read": true, + "hardlink_private": true, + "project_rename": true, + "inherited_descriptor": false, + "thread": true, + "package_hardlink": true, + "package_alias_write": true, + "thread_reads": [ + true, + true + ], + "thread_shell": true, + "shell": true, + "native_fork": true, + "child_reads": [ + true, + true + ], + "native_child_reads": [ + true, + true + ], + "cannot_relax": null, + "constructor_private_read": true, + "constructor_fork": true, + "native_spawn": true, + "platform_status_known": true, + "platform_before": false, + "platform_after_set": false, + "private_unix": [ + true, + true + ] + }, + "self_exec": true, + "constructor_self_exec": true, + "constructor_spawn": true + }, + { + "name": "no-capabilities", + "flags": { + "read": false, + "write": false, + "shell": false + }, + "observations": { + "stdio_tool": true, + "package_read": true, + "scratch_write": true, + "scratch_read": true, + "project_read": false, + "project_list": false, + "project_write": false, + "written_project_read": false, + "private_read": false, + "private_list": false, + "private_write": false, + "protected_read": false, + "protected_write": false, + "symlink_private_read": false, + "hardlink_private": false, + "project_rename": false, + "inherited_descriptor": false, + "thread": true, + "package_hardlink": false, + "package_alias_write": false, + "thread_reads": [ + false, + false + ], + "thread_shell": false, + "shell": false, + "native_fork": false, + "child_reads": null, + "native_child_reads": null, + "cannot_relax": true, + "constructor_private_read": false, + "constructor_fork": false, + "native_spawn": false, + "platform_status_known": true, + "platform_before": false, + "platform_after_set": false, + "private_unix": [ + true, + true + ] + }, + "self_exec": false, + "constructor_self_exec": false, + "constructor_spawn": false + }, + { + "name": "read-only", + "flags": { + "read": true, + "write": false, + "shell": false + }, + "observations": { + "stdio_tool": true, + "package_read": true, + "scratch_write": true, + "scratch_read": true, + "project_read": true, + "project_list": true, + "project_write": false, + "written_project_read": false, + "private_read": false, + "private_list": false, + "private_write": false, + "protected_read": false, + "protected_write": false, + "symlink_private_read": false, + "hardlink_private": false, + "project_rename": false, + "inherited_descriptor": false, + "thread": true, + "package_hardlink": false, + "package_alias_write": false, + "thread_reads": [ + true, + false + ], + "thread_shell": false, + "shell": false, + "native_fork": false, + "child_reads": null, + "native_child_reads": null, + "cannot_relax": true, + "constructor_private_read": false, + "constructor_fork": false, + "native_spawn": false, + "platform_status_known": true, + "platform_before": false, + "platform_after_set": false, + "private_unix": [ + true, + true + ] + }, + "self_exec": false, + "constructor_self_exec": false, + "constructor_spawn": false + }, + { + "name": "write-without-read", + "flags": { + "read": false, + "write": true, + "shell": false + }, + "observations": { + "stdio_tool": true, + "package_read": true, + "scratch_write": true, + "scratch_read": true, + "project_read": false, + "project_list": false, + "project_write": true, + "written_project_read": false, + "private_read": false, + "private_list": false, + "private_write": false, + "protected_read": false, + "protected_write": false, + "symlink_private_read": false, + "hardlink_private": false, + "project_rename": false, + "inherited_descriptor": false, + "thread": true, + "package_hardlink": false, + "package_alias_write": false, + "thread_reads": [ + false, + false + ], + "thread_shell": false, + "shell": false, + "native_fork": false, + "child_reads": null, + "native_child_reads": null, + "cannot_relax": true, + "constructor_private_read": false, + "constructor_fork": false, + "native_spawn": false, + "platform_status_known": true, + "platform_before": false, + "platform_after_set": false, + "private_unix": [ + true, + true + ] + }, + "self_exec": false, + "constructor_self_exec": false, + "constructor_spawn": false + }, + { + "name": "shell-without-read", + "flags": { + "read": false, + "write": false, + "shell": true + }, + "observations": { + "stdio_tool": true, + "package_read": true, + "scratch_write": true, + "scratch_read": true, + "project_read": false, + "project_list": false, + "project_write": false, + "written_project_read": false, + "private_read": false, + "private_list": false, + "private_write": false, + "protected_read": false, + "protected_write": false, + "symlink_private_read": false, + "hardlink_private": false, + "project_rename": false, + "inherited_descriptor": false, + "thread": true, + "package_hardlink": false, + "package_alias_write": false, + "thread_reads": [ + false, + false + ], + "thread_shell": true, + "shell": true, + "native_fork": true, + "child_reads": [ + false, + false + ], + "native_child_reads": [ + false, + false + ], + "cannot_relax": true, + "constructor_private_read": false, + "constructor_fork": true, + "native_spawn": true, + "platform_status_known": true, + "platform_before": false, + "platform_after_set": false, + "private_unix": [ + true, + true + ] + }, + "self_exec": true, + "constructor_self_exec": true, + "constructor_spawn": true + }, + { + "name": "read-write-without-shell", + "flags": { + "read": true, + "write": true, + "shell": false + }, + "observations": { + "stdio_tool": true, + "package_read": true, + "scratch_write": true, + "scratch_read": true, + "project_read": true, + "project_list": true, + "project_write": true, + "written_project_read": true, + "private_read": false, + "private_list": false, + "private_write": false, + "protected_read": false, + "protected_write": false, + "symlink_private_read": false, + "hardlink_private": false, + "project_rename": false, + "inherited_descriptor": false, + "thread": true, + "package_hardlink": false, + "package_alias_write": false, + "thread_reads": [ + true, + false + ], + "thread_shell": false, + "shell": false, + "native_fork": false, + "child_reads": null, + "native_child_reads": null, + "cannot_relax": true, + "constructor_private_read": false, + "constructor_fork": false, + "native_spawn": false, + "platform_status_known": true, + "platform_before": false, + "platform_after_set": false, + "private_unix": [ + true, + true + ] + }, + "self_exec": false, + "constructor_self_exec": false, + "constructor_spawn": false + }, + { + "name": "read-shell-without-write", + "flags": { + "read": true, + "write": false, + "shell": true + }, + "observations": { + "stdio_tool": true, + "package_read": true, + "scratch_write": true, + "scratch_read": true, + "project_read": true, + "project_list": true, + "project_write": false, + "written_project_read": false, + "private_read": false, + "private_list": false, + "private_write": false, + "protected_read": false, + "protected_write": false, + "symlink_private_read": false, + "hardlink_private": false, + "project_rename": false, + "inherited_descriptor": false, + "thread": true, + "package_hardlink": false, + "package_alias_write": false, + "thread_reads": [ + true, + false + ], + "thread_shell": true, + "shell": true, + "native_fork": true, + "child_reads": [ + true, + false + ], + "native_child_reads": [ + true, + false + ], + "cannot_relax": true, + "constructor_private_read": false, + "constructor_fork": true, + "native_spawn": true, + "platform_status_known": true, + "platform_before": false, + "platform_after_set": false, + "private_unix": [ + true, + true + ] + }, + "self_exec": true, + "constructor_self_exec": true, + "constructor_spawn": true + }, + { + "name": "write-shell-without-read", + "flags": { + "read": false, + "write": true, + "shell": true + }, + "observations": { + "stdio_tool": true, + "package_read": true, + "scratch_write": true, + "scratch_read": true, + "project_read": false, + "project_list": false, + "project_write": true, + "written_project_read": false, + "private_read": false, + "private_list": false, + "private_write": false, + "protected_read": false, + "protected_write": false, + "symlink_private_read": false, + "hardlink_private": false, + "project_rename": false, + "inherited_descriptor": false, + "thread": true, + "package_hardlink": false, + "package_alias_write": false, + "thread_reads": [ + false, + false + ], + "thread_shell": true, + "shell": true, + "native_fork": true, + "child_reads": [ + false, + false + ], + "native_child_reads": [ + false, + false + ], + "cannot_relax": true, + "constructor_private_read": false, + "constructor_fork": true, + "native_spawn": true, + "platform_status_known": true, + "platform_before": false, + "platform_after_set": false, + "private_unix": [ + true, + true + ] + }, + "self_exec": true, + "constructor_self_exec": true, + "constructor_spawn": true + }, + { + "name": "declared-read-write-shell", + "flags": { + "read": true, + "write": true, + "shell": true + }, + "observations": { + "stdio_tool": true, + "package_read": true, + "scratch_write": true, + "scratch_read": true, + "project_read": true, + "project_list": true, + "project_write": true, + "written_project_read": true, + "private_read": false, + "private_list": false, + "private_write": false, + "protected_read": false, + "protected_write": false, + "symlink_private_read": false, + "hardlink_private": false, + "project_rename": false, + "inherited_descriptor": false, + "thread": true, + "package_hardlink": false, + "package_alias_write": false, + "thread_reads": [ + true, + false + ], + "thread_shell": true, + "shell": true, + "native_fork": true, + "child_reads": [ + true, + false + ], + "native_child_reads": [ + true, + false + ], + "cannot_relax": true, + "constructor_private_read": false, + "constructor_fork": true, + "native_spawn": true, + "platform_status_known": true, + "platform_before": false, + "platform_after_set": false, + "private_unix": [ + true, + true + ] + }, + "self_exec": true, + "constructor_self_exec": true, + "constructor_spawn": true + } + ] +} diff --git a/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/private-unix-missing-grant.log b/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/private-unix-missing-grant.log new file mode 100644 index 00000000..8e4573d5 --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/private-unix-missing-grant.log @@ -0,0 +1,31 @@ +node:internal/modules/run_main:123 + triggerUncaughtException( + ^ + +AssertionError [ERR_ASSERTION]: no-capabilities: private UNIX runtime exchange failed: [false,false] ++ actual - expected + + [ ++ false, ++ false +- true, +- true + ] + + at check (file:///private/tmp/cyber-send-result-workflow-v2mdmiga/macos-private-unix-missing-grant/run.mts:298:12) + at file:///private/tmp/cyber-send-result-workflow-v2mdmiga/macos-private-unix-missing-grant/run.mts:402:31 + at Array.map () + at main (file:///private/tmp/cyber-send-result-workflow-v2mdmiga/macos-private-unix-missing-grant/run.mts:402:8) + at file:///private/tmp/cyber-send-result-workflow-v2mdmiga/macos-private-unix-missing-grant/run.mts:425:1 + at ModuleJob.run (node:internal/modules/esm/module_job:345:25) + at async onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:665:26) + at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:117:5) { + generatedMessage: false, + code: 'ERR_ASSERTION', + actual: [ false, false ], + expected: [ true, true ], + operator: 'deepStrictEqual', + diff: 'simple' +} + +Node.js v22.20.0 diff --git a/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/unix-boundary.json b/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/unix-boundary.json new file mode 100644 index 00000000..09e2e16f --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/unix-boundary.json @@ -0,0 +1,992 @@ +{ + "recorded_at": "2026-10-31T12:47:26.048Z", + "platform": "darwin", + "architecture": "arm64", + "kernel_release": "25.6.0", + "sources": [ + "macos_private_ipc.mts", + "macos_policy.mts", + "macos_rights.h", + "macos_datagram_send.h", + "macos_datagram.h", + "macos_datagram_race.h", + "macos_datagram_owner.mts", + "macos_datagram_owner.c", + "fixture_native.c", + "process_policy.h", + "macos_exec.c" + ], + "source_sha256": "cea84ef0e7df78eb6397dcc9c7e7c1a83516f140b683ad76eafbec8e55386e80", + "target_sha256": "7c212b8b1ae4c61dd1e49b42dca954d9ae05b6a68ec97548d9b526e032bfdd71", + "receiver_startup_controls": { + "missing_program_refused": true, + "failed_bind_refused": true + }, + "rows": [ + { + "name": "unconfined", + "flags": { + "read": true, + "write": true, + "shell": true, + "unrestricted": true + }, + "observed": { + "started": true, + "pid": 55838, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": true, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": true, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 8, + "refused": 0, + "swaps": 17, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": true, + "sent": true, + "acknowledged": true + }, + "dgram_sendto": { + "connected": false, + "sent": true, + "acknowledged": true + }, + "dgram_sendmsg": { + "connected": false, + "sent": true, + "acknowledged": true + }, + "dgram_alias_connect": { + "connected": true, + "sent": true, + "acknowledged": true + }, + "dgram_alias_sendto": { + "connected": false, + "sent": true, + "acknowledged": true + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": true, + "acknowledged": true + }, + "direct": { + "connected": true, + "sent": true, + "acknowledged": true + }, + "hardlink": { + "connected": true, + "sent": true, + "acknowledged": true + }, + "symlink": { + "connected": true, + "sent": true, + "acknowledged": true + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 3, + "owner_received_fixture": true, + "datagram_receipts": 15, + "owner_datagram_received_fixture": true + }, + { + "name": "r0w0s0", + "flags": { + "read": false, + "write": false, + "shell": false + }, + "observed": { + "started": true, + "pid": 55841, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 17, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r0w0s1", + "flags": { + "read": false, + "write": false, + "shell": true + }, + "observed": { + "started": true, + "pid": 55843, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r0w1s0", + "flags": { + "read": false, + "write": true, + "shell": false + }, + "observed": { + "started": true, + "pid": 55846, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r0w1s1", + "flags": { + "read": false, + "write": true, + "shell": true + }, + "observed": { + "started": true, + "pid": 55848, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r1w0s0", + "flags": { + "read": true, + "write": false, + "shell": false + }, + "observed": { + "started": true, + "pid": 55851, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 17, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r1w0s1", + "flags": { + "read": true, + "write": false, + "shell": true + }, + "observed": { + "started": true, + "pid": 55853, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 17, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r1w1s0", + "flags": { + "read": true, + "write": true, + "shell": false + }, + "observed": { + "started": true, + "pid": 55856, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r1w1s1", + "flags": { + "read": true, + "write": true, + "shell": true + }, + "observed": { + "started": true, + "pid": 55858, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + } + ], + "scope": "Experimental pre-runtime native UNIX stream/datagram/descriptor controls; complete IPC/proxy/ownership and App acceptance remain required." +} diff --git a/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/unix-datagram-bind-failure.log b/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/unix-datagram-bind-failure.log new file mode 100644 index 00000000..23387d8b --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/unix-datagram-bind-failure.log @@ -0,0 +1,20 @@ +node:internal/modules/run_main:123 + triggerUncaughtException( + ^ + +AssertionError [ERR_ASSERTION]: private datagram race control failed: {"name":"unconfined","flags":{"read":true,"write":true,"shell":true,"unrestricted":true},"observed":{"started":true,"pid":55898,"private_unix":[true,true],"private_peer_checks":8,"private_peer_matches":true,"hardlink_created":true,"symlink_created":true,"private_aliases":[true,true],"rights":{"sent":true,"original_closed":true,"token":true,"truncated":false,"received":true,"same_inode":true,"readable":true,"written":true,"cloexec":true},"rights_path_replaced":true,"private_datagram":[true,true,true],"datagram_symlink_created":true,"datagram_race":{"private_control":false,"host_control":false,"settled":false,"failed":false,"attempts":0,"private_acks":0,"host_acks":0,"refused":0,"swaps":0,"failure_stage":"client_bind","failure_errno":48,"failure_return":null},"dgram_connect":{"connected":true,"sent":true,"acknowledged":true},"dgram_sendto":{"connected":false,"sent":true,"acknowledged":true},"dgram_sendmsg":{"connected":false,"sent":true,"acknowledged":true},"dgram_alias_connect":{"connected":true,"sent":true,"acknowledged":true},"dgram_alias_sendto":{"connected":false,"sent":true,"acknowledged":true},"dgram_alias_sendmsg":{"connected":false,"sent":true,"acknowledged":true},"direct":{"connected":true,"sent":true,"acknowledged":true},"hardlink":{"connected":true,"sent":true,"acknowledged":true},"symlink":{"connected":true,"sent":true,"acknowledged":true}},"rights_payload":"AB","rights_link_count":0,"kernel_diagnostic":{"pid":55898,"status":0,"signal":null,"error":"","stderr":"","output":"[]"},"owner_receipts":3,"owner_received_fixture":true,"datagram_receipts":6,"owner_datagram_received_fixture":true} + +false !== true + + at check (file:///private/tmp/cyber-send-result-workflow-v2mdmiga/macos-datagram-bind-failure/macos_private_ipc.mts:150:10) + at file:///private/tmp/cyber-send-result-workflow-v2mdmiga/macos-datagram-bind-failure/macos_private_ipc.mts:207:5 + at process.processTicksAndRejections (node:internal/process/task_queues:105:5) { + generatedMessage: false, + code: 'ERR_ASSERTION', + actual: false, + expected: true, + operator: 'strictEqual', + diff: 'simple' +} + +Node.js v22.20.0 diff --git a/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/unix-dropped-rights.log b/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/unix-dropped-rights.log new file mode 100644 index 00000000..407340fe --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/unix-dropped-rights.log @@ -0,0 +1,56 @@ +node:internal/modules/run_main:123 + triggerUncaughtException( + ^ + +AssertionError [ERR_ASSERTION]: private SCM_RIGHTS exchange failed: {"name":"r0w0s0","flags":{"read":false,"write":false,"shell":false},"observed":{"started":true,"pid":55963,"private_unix":[true,true],"private_peer_checks":8,"private_peer_matches":true,"hardlink_created":false,"symlink_created":true,"private_aliases":[true,true],"rights":{"sent":true,"original_closed":true,"token":true,"truncated":false,"received":false,"same_inode":false,"readable":false,"written":false,"cloexec":false},"rights_path_replaced":true,"private_datagram":[true,true,true],"datagram_symlink_created":true,"datagram_race":{"private_control":true,"host_control":false,"settled":true,"failed":false,"attempts":16,"private_acks":8,"host_acks":0,"refused":8,"swaps":17,"failure_stage":"","failure_errno":0,"failure_return":null},"dgram_connect":{"connected":false,"sent":false,"acknowledged":false},"dgram_sendto":{"connected":false,"sent":false,"acknowledged":false},"dgram_sendmsg":{"connected":false,"sent":false,"acknowledged":false},"dgram_alias_connect":{"connected":false,"sent":false,"acknowledged":false},"dgram_alias_sendto":{"connected":false,"sent":false,"acknowledged":false},"dgram_alias_sendmsg":{"connected":false,"sent":false,"acknowledged":false},"direct":{"connected":false,"sent":false,"acknowledged":false},"hardlink":{"connected":false,"sent":false,"acknowledged":false},"symlink":{"connected":false,"sent":false,"acknowledged":false}},"rights_payload":"A","rights_link_count":0,"owner_receipts":0,"owner_received_fixture":false,"datagram_receipts":0,"owner_datagram_received_fixture":false} ++ actual - expected + + { ++ cloexec: false, +- cloexec: true, + original_closed: true, ++ readable: false, ++ received: false, ++ same_inode: false, +- readable: true, +- received: true, +- same_inode: true, + sent: true, + token: true, + truncated: false, ++ written: false +- written: true + } + + at check (file:///Users/edvane/work/cybercode-plugin-native-host-admission/scripts/probes/plugin-confinement/macos_private_ipc.mts:142:10) + at file:///Users/edvane/work/cybercode-plugin-native-host-admission/scripts/probes/plugin-confinement/macos_private_ipc.mts:207:5 + at process.processTicksAndRejections (node:internal/process/task_queues:105:5) { + generatedMessage: false, + code: 'ERR_ASSERTION', + actual: { + sent: true, + original_closed: true, + token: true, + truncated: false, + received: false, + same_inode: false, + readable: false, + written: false, + cloexec: false + }, + expected: { + sent: true, + original_closed: true, + token: true, + truncated: false, + received: true, + same_inode: true, + readable: true, + written: true, + cloexec: true + }, + operator: 'deepStrictEqual', + diff: 'simple' +} + +Node.js v22.20.0 diff --git a/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/unix-missing-scope.log b/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/unix-missing-scope.log new file mode 100644 index 00000000..20b78a79 --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/unix-missing-scope.log @@ -0,0 +1,20 @@ +node:internal/modules/run_main:123 + triggerUncaughtException( + ^ + +AssertionError [ERR_ASSERTION]: macOS datagram endpoint escaped scratch: {"name":"r0w0s0","flags":{"read":false,"write":false,"shell":false},"observed":{"started":true,"pid":55879,"private_unix":[true,true],"private_peer_checks":8,"private_peer_matches":true,"hardlink_created":false,"symlink_created":true,"private_aliases":[true,true],"rights":{"sent":true,"original_closed":true,"token":true,"truncated":false,"received":true,"same_inode":true,"readable":true,"written":true,"cloexec":true},"rights_path_replaced":true,"private_datagram":[true,true,true],"datagram_symlink_created":true,"datagram_race":{"private_control":true,"host_control":true,"settled":true,"failed":false,"attempts":16,"private_acks":8,"host_acks":8,"refused":0,"swaps":17,"failure_stage":"","failure_errno":0,"failure_return":null},"dgram_connect":{"connected":true,"sent":true,"acknowledged":true},"dgram_sendto":{"connected":false,"sent":true,"acknowledged":true},"dgram_sendmsg":{"connected":false,"sent":true,"acknowledged":true},"dgram_alias_connect":{"connected":true,"sent":true,"acknowledged":true},"dgram_alias_sendto":{"connected":false,"sent":true,"acknowledged":true},"dgram_alias_sendmsg":{"connected":false,"sent":true,"acknowledged":true},"direct":{"connected":true,"sent":true,"acknowledged":true},"hardlink":{"connected":false,"sent":false,"acknowledged":false},"symlink":{"connected":true,"sent":true,"acknowledged":true}},"rights_payload":"AB","rights_link_count":0,"owner_receipts":2,"owner_received_fixture":true,"datagram_receipts":15,"owner_datagram_received_fixture":true} + +15 !== 0 + + at check (file:///Users/edvane/work/cybercode-plugin-native-host-admission/scripts/probes/plugin-confinement/macos_private_ipc.mts:159:10) + at file:///Users/edvane/work/cybercode-plugin-native-host-admission/scripts/probes/plugin-confinement/macos_private_ipc.mts:207:5 + at process.processTicksAndRejections (node:internal/process/task_queues:105:5) { + generatedMessage: false, + code: 'ERR_ASSERTION', + actual: 15, + expected: 0, + operator: 'strictEqual', + diff: 'simple' +} + +Node.js v22.20.0 diff --git a/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/unix-rights-path-reader.log b/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/unix-rights-path-reader.log new file mode 100644 index 00000000..9860e1b9 --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/unix-rights-path-reader.log @@ -0,0 +1,20 @@ +node:internal/modules/run_main:123 + triggerUncaughtException( + ^ + +AssertionError [ERR_ASSERTION]: received descriptor file effect: {"name":"unconfined","flags":{"read":true,"write":true,"shell":true,"unrestricted":true},"observed":{"started":true,"pid":55982,"private_unix":[true,true],"private_peer_checks":8,"private_peer_matches":true,"hardlink_created":true,"symlink_created":true,"private_aliases":[true,true],"rights":{"sent":true,"original_closed":true,"token":true,"truncated":false,"received":true,"same_inode":true,"readable":true,"written":true,"cloexec":true},"rights_path_replaced":true,"private_datagram":[true,true,true],"datagram_symlink_created":true,"datagram_race":{"private_control":true,"host_control":true,"settled":true,"failed":false,"attempts":16,"private_acks":8,"host_acks":8,"refused":0,"swaps":17,"failure_stage":"","failure_errno":0,"failure_return":null},"dgram_connect":{"connected":true,"sent":true,"acknowledged":true},"dgram_sendto":{"connected":false,"sent":true,"acknowledged":true},"dgram_sendmsg":{"connected":false,"sent":true,"acknowledged":true},"dgram_alias_connect":{"connected":true,"sent":true,"acknowledged":true},"dgram_alias_sendto":{"connected":false,"sent":true,"acknowledged":true},"dgram_alias_sendmsg":{"connected":false,"sent":true,"acknowledged":true},"direct":{"connected":true,"sent":true,"acknowledged":true},"hardlink":{"connected":true,"sent":true,"acknowledged":true},"symlink":{"connected":true,"sent":true,"acknowledged":true}},"rights_payload":"XX","rights_link_count":0,"owner_receipts":3,"owner_received_fixture":true,"datagram_receipts":15,"owner_datagram_received_fixture":true} + +'XX' !== 'AB' + + at check (file:///private/tmp/cyber-send-result-workflow-v2mdmiga/macos-rights-path-reader/macos_private_ipc.mts:146:10) + at file:///private/tmp/cyber-send-result-workflow-v2mdmiga/macos-rights-path-reader/macos_private_ipc.mts:207:5 + at process.processTicksAndRejections (node:internal/process/task_queues:105:5) { + generatedMessage: false, + code: 'ERR_ASSERTION', + actual: 'XX', + expected: 'AB', + operator: 'strictEqual', + diff: 'simple' +} + +Node.js v22.20.0 diff --git a/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/unix-send-result-control.json b/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/unix-send-result-control.json new file mode 100644 index 00000000..03675563 --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/unix-send-result-control.json @@ -0,0 +1,79 @@ +{ + "scope": "Deterministic fault-injected verifier regression, not native confinement acceptance.", + "sources": [ + "macos_datagram_send.h", + "macos_datagram_send_test.c" + ], + "source_sha256": "53afe42b7a5657591f70ac305745a29ab7633b61c793f145a5d8b6a017eeddf3", + "legacy_source_sha256": "38f398f51a6a7ce4bed476a76d8cffb1236c53f160a36c6711e1c74889cb8292", + "fixed": [ + { + "case": "zero-stale-EPERM", + "attempted": 1, + "calls": 1, + "returned": 0, + "error": 0, + "outcome": "E", + "stage": "send_size", + "has_return": 1 + }, + { + "case": "short-stale-EACCES", + "attempted": 1, + "calls": 1, + "returned": 7, + "error": 0, + "outcome": "E", + "stage": "send_size", + "has_return": 1 + }, + { + "case": "failed-EACCES", + "attempted": 1, + "calls": 1, + "returned": -1, + "error": 13, + "outcome": "D", + "stage": "", + "has_return": 0 + }, + { + "case": "failed-EPERM", + "attempted": 1, + "calls": 1, + "returned": -1, + "error": 1, + "outcome": "D", + "stage": "", + "has_return": 0 + }, + { + "case": "failed-EINVAL", + "attempted": 1, + "calls": 1, + "returned": -1, + "error": 22, + "outcome": "E", + "stage": "send", + "has_return": 1 + }, + { + "case": "setup-with-stale-EPERM", + "attempted": 0, + "calls": 0, + "outcome": "E", + "stage": "send_setup", + "has_return": 0 + } + ], + "invalid_legacy_guard": { + "case": "zero-stale-EPERM", + "attempted": 1, + "calls": 1, + "returned": 0, + "error": 1, + "outcome": "D", + "stage": "", + "has_return": 0 + } +} diff --git a/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/unix-stale-errno-guard.log b/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/unix-stale-errno-guard.log new file mode 100644 index 00000000..0ca8db30 --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/unix-stale-errno-guard.log @@ -0,0 +1,2 @@ +send-result regression failed: zero-stale-EPERM +{"case":"zero-stale-EPERM","attempted":1,"calls":1,"returned":0,"error":1,"outcome":"D","stage":"","has_return":0} diff --git a/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/unix-zero-send.log b/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/unix-zero-send.log new file mode 100644 index 00000000..3f64213d --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/unix-zero-send.log @@ -0,0 +1,6 @@ +{"case":"zero-stale-EPERM","attempted":1,"calls":1,"returned":0,"error":0,"outcome":"E","stage":"send_size","has_return":1} +{"case":"short-stale-EACCES","attempted":1,"calls":1,"returned":7,"error":0,"outcome":"E","stage":"send_size","has_return":1} +{"case":"failed-EACCES","attempted":1,"calls":1,"returned":-1,"error":13,"outcome":"D","stage":"","has_return":0} +{"case":"failed-EPERM","attempted":1,"calls":1,"returned":-1,"error":1,"outcome":"D","stage":"","has_return":0} +{"case":"failed-EINVAL","attempted":1,"calls":1,"returned":-1,"error":22,"outcome":"E","stage":"send","has_return":1} +{"case":"setup-with-stale-EPERM","attempted":0,"calls":0,"outcome":"E","stage":"send_setup","has_return":0} diff --git a/scripts/probes/plugin-confinement/evidence/macos-send-result-intel-3f7067dd/job.log b/scripts/probes/plugin-confinement/evidence/macos-send-result-intel-3f7067dd/job.log new file mode 100644 index 00000000..3f711119 --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-send-result-intel-3f7067dd/job.log @@ -0,0 +1,442 @@ +2026-10-31T05:50:09.6576380Z Current runner version: '2.338.2' +2026-10-31T05:50:09.6626200Z ##[group]Runner Image Provisioner +2026-10-31T05:50:09.6629230Z Hosted Compute Agent +2026-10-31T05:50:09.6631560Z Version: 20260819.586 +2026-10-31T05:50:09.6634410Z Commit: 3cc4a88dfa507ef76119ad1bb3eccc6378bb2b76 +2026-10-31T05:50:09.6637980Z Build Date: 2026-08-18T23:20:18Z +2026-10-31T05:50:09.6640020Z Worker ID: {fa4f070e-f9cc-4c26-9efb-b97e7d2853e3} +2026-10-31T05:50:09.6642460Z Azure Region: westus +2026-10-31T05:50:09.6644220Z ##[endgroup] +2026-10-31T05:50:09.6648910Z ##[group]Operating System +2026-10-31T05:50:09.6650560Z macOS +2026-10-31T05:50:09.6652240Z 15.7.9 +2026-10-31T05:50:09.6653790Z 24G830 +2026-10-31T05:50:09.6655300Z ##[endgroup] +2026-10-31T05:50:09.6657740Z ##[group]Runner Image +2026-10-31T05:50:09.6659400Z Image: macos-15 +2026-10-31T05:50:09.6661180Z Version: 20260824.0482.1 +2026-10-31T05:50:09.6664530Z Included Software: https://github.com/actions/runner-images/blob/macos-15/20260824.0482/images/macos/macos-15-Readme.md +2026-10-31T05:50:09.6669090Z Image Release: https://github.com/actions/runner-images/releases/tag/macos-15%2F20260824.0482 +2026-10-31T05:50:09.6672170Z ##[endgroup] +2026-10-31T05:50:09.6675790Z ##[group]GITHUB_TOKEN Permissions +2026-10-31T05:50:09.6680810Z Contents: read +2026-10-31T05:50:09.6683450Z Metadata: read +2026-10-31T05:50:09.6685410Z ##[endgroup] +2026-10-31T05:50:09.6689660Z Secret source: Actions +2026-10-31T05:50:09.6692540Z Cache mode: write +2026-10-31T05:50:09.6695700Z Prepare workflow directory +2026-10-31T05:50:09.7465490Z Prepare all required actions +2026-10-31T05:50:09.7546340Z Getting action download info +2026-10-31T05:50:09.9799040Z Download action repository 'actions/checkout@v4' (SHA:11d5960a326750d5838078e36cf38b85af677262) +2026-10-31T05:50:10.2606110Z Download action repository 'actions/setup-node@v4' (SHA:49933ea5288caeca8642d1e84afbd3f7d6820020) +2026-10-31T05:50:10.4580370Z Download action repository 'actions/upload-artifact@v4' (SHA:ea165f8d65b6e75b540449e92b4886f43607fa02) +2026-10-31T05:50:10.9694430Z Complete job name: Native signing-identity candidate (macos-15-intel) +2026-10-31T05:50:11.1557080Z ##[group]Run actions/checkout@v4 +2026-10-31T05:50:11.1558950Z with: +2026-10-31T05:50:11.1559860Z repository: CyberdyneCorp/cybercode-cli +2026-10-31T05:50:11.1569790Z token: *** +2026-10-31T05:50:11.1571090Z ssh-strict: true +2026-10-31T05:50:11.1571950Z ssh-user: git +2026-10-31T05:50:11.1572800Z persist-credentials: true +2026-10-31T05:50:11.1574070Z clean: true +2026-10-31T05:50:11.1575440Z sparse-checkout-cone-mode: true +2026-10-31T05:50:11.1576730Z fetch-depth: 1 +2026-10-31T05:50:11.1577580Z fetch-tags: false +2026-10-31T05:50:11.1578440Z show-progress: true +2026-10-31T05:50:11.1579310Z lfs: false +2026-10-31T05:50:11.1580110Z submodules: false +2026-10-31T05:50:11.1580990Z set-safe-directory: true +2026-10-31T05:50:11.1581980Z allow-unsafe-pr-checkout: false +2026-10-31T05:50:11.1584010Z ##[endgroup] +2026-10-31T05:50:11.6605740Z Syncing repository: CyberdyneCorp/cybercode-cli +2026-10-31T05:50:11.6611970Z ##[group]Getting Git version info +2026-10-31T05:50:11.6615190Z Working directory is '/Users/runner/work/cybercode-cli/cybercode-cli' +2026-10-31T05:50:11.6620820Z [command]/usr/local/bin/git version +2026-10-31T05:50:11.7065410Z git version 2.55.0 +2026-10-31T05:50:11.7121710Z ##[endgroup] +2026-10-31T05:50:11.7145720Z Copying '/Users/runner/.gitconfig' to '/Users/runner/work/_temp/0e342e91-197a-4ba6-a459-a1481c06cefc/.gitconfig' +2026-10-31T05:50:11.7172670Z Temporarily overriding HOME='/Users/runner/work/_temp/0e342e91-197a-4ba6-a459-a1481c06cefc' before making global git config changes +2026-10-31T05:50:11.7180920Z Adding repository directory to the temporary git global config as a safe directory +2026-10-31T05:50:11.7192220Z [command]/usr/local/bin/git config --global --add safe.directory /Users/runner/work/cybercode-cli/cybercode-cli +2026-10-31T05:50:11.7445910Z Deleting the contents of '/Users/runner/work/cybercode-cli/cybercode-cli' +2026-10-31T05:50:11.7457670Z ##[group]Initializing the repository +2026-10-31T05:50:11.7468150Z [command]/usr/local/bin/git init /Users/runner/work/cybercode-cli/cybercode-cli +2026-10-31T05:50:11.8120630Z hint: Using 'master' as the name for the initial branch. This default branch name +2026-10-31T05:50:11.8125100Z hint: will change to "main" in Git 3.0. To configure the initial branch name +2026-10-31T05:50:11.8130880Z hint: to use in all of your new repositories, which will suppress this warning, +2026-10-31T05:50:11.8147480Z hint: call: +2026-10-31T05:50:11.8150870Z hint: +2026-10-31T05:50:11.8154030Z hint: git config --global init.defaultBranch +2026-10-31T05:50:11.8160390Z hint: +2026-10-31T05:50:11.8164040Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +2026-10-31T05:50:11.8167800Z hint: 'development'. The just-created branch can be renamed via this command: +2026-10-31T05:50:11.8173870Z hint: +2026-10-31T05:50:11.8177130Z hint: git branch -m +2026-10-31T05:50:11.8187840Z hint: +2026-10-31T05:50:11.8190740Z hint: Disable this message with "git config set advice.defaultBranchName false" +2026-10-31T05:50:11.8194950Z Initialized empty Git repository in /Users/runner/work/cybercode-cli/cybercode-cli/.git/ +2026-10-31T05:50:11.8203510Z [command]/usr/local/bin/git remote add origin https://github.com/CyberdyneCorp/cybercode-cli +2026-10-31T05:50:11.8386210Z ##[endgroup] +2026-10-31T05:50:11.8391790Z ##[group]Disabling automatic garbage collection +2026-10-31T05:50:11.8395320Z [command]/usr/local/bin/git config --local gc.auto 0 +2026-10-31T05:50:11.8672590Z ##[endgroup] +2026-10-31T05:50:11.8678070Z ##[group]Setting up auth +2026-10-31T05:50:11.8683500Z [command]/usr/local/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-31T05:50:11.8774240Z [command]/usr/local/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-31T05:50:12.1015580Z [command]/usr/local/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-31T05:50:12.1176880Z [command]/usr/local/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-31T05:50:12.3173390Z [command]/usr/local/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-31T05:50:12.3345510Z [command]/usr/local/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-31T05:50:12.5219020Z [command]/usr/local/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic *** +2026-10-31T05:50:12.5406550Z ##[endgroup] +2026-10-31T05:50:12.5409950Z ##[group]Fetching the repository +2026-10-31T05:50:12.5431230Z [command]/usr/local/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +328e02ef44a1b9259ceece4844117aed4d553765:refs/remotes/pull/84/merge +2026-10-31T05:50:14.9798720Z From https://github.com/CyberdyneCorp/cybercode-cli +2026-10-31T05:50:14.9806930Z * [new ref] 328e02ef44a1b9259ceece4844117aed4d553765 -> pull/84/merge +2026-10-31T05:50:14.9812130Z ##[endgroup] +2026-10-31T05:50:14.9814200Z ##[group]Determining the checkout info +2026-10-31T05:50:14.9816260Z ##[endgroup] +2026-10-31T05:50:14.9819170Z [command]/usr/local/bin/git sparse-checkout disable +2026-10-31T05:50:14.9980200Z [command]/usr/local/bin/git config --local --unset-all extensions.worktreeConfig +2026-10-31T05:50:15.0134950Z ##[group]Checking out the ref +2026-10-31T05:50:15.0145560Z [command]/usr/local/bin/git checkout --progress --force refs/remotes/pull/84/merge +2026-10-31T05:50:16.0630000Z Updating files: 49% (2018/4054) +2026-10-31T05:50:16.0825450Z Updating files: 50% (2027/4054) +2026-10-31T05:50:16.0977920Z Updating files: 51% (2068/4054) +2026-10-31T05:50:16.1127280Z Updating files: 52% (2109/4054) +2026-10-31T05:50:16.1284550Z Updating files: 53% (2149/4054) +2026-10-31T05:50:16.1439420Z Updating files: 54% (2190/4054) +2026-10-31T05:50:16.1595800Z Updating files: 55% (2230/4054) +2026-10-31T05:50:16.1752400Z Updating files: 56% (2271/4054) +2026-10-31T05:50:16.1881850Z Updating files: 57% (2311/4054) +2026-10-31T05:50:16.2069120Z Updating files: 58% (2352/4054) +2026-10-31T05:50:16.2230040Z Updating files: 59% (2392/4054) +2026-10-31T05:50:16.2363850Z Updating files: 60% (2433/4054) +2026-10-31T05:50:16.2509860Z Updating files: 61% (2473/4054) +2026-10-31T05:50:16.2649830Z Updating files: 62% (2514/4054) +2026-10-31T05:50:16.2783390Z Updating files: 63% (2555/4054) +2026-10-31T05:50:16.2959930Z Updating files: 64% (2595/4054) +2026-10-31T05:50:16.3110850Z Updating files: 65% (2636/4054) +2026-10-31T05:50:16.3274410Z Updating files: 66% (2676/4054) +2026-10-31T05:50:16.3440820Z Updating files: 67% (2717/4054) +2026-10-31T05:50:16.3631520Z Updating files: 68% (2757/4054) +2026-10-31T05:50:16.3829910Z Updating files: 69% (2798/4054) +2026-10-31T05:50:16.4017190Z Updating files: 70% (2838/4054) +2026-10-31T05:50:16.4200180Z Updating files: 71% (2879/4054) +2026-10-31T05:50:16.4419730Z Updating files: 72% (2919/4054) +2026-10-31T05:50:16.4586520Z Updating files: 73% (2960/4054) +2026-10-31T05:50:16.4768120Z Updating files: 74% (3000/4054) +2026-10-31T05:50:16.5530700Z Updating files: 75% (3041/4054) +2026-10-31T05:50:16.5667990Z Updating files: 76% (3082/4054) +2026-10-31T05:50:16.5847710Z Updating files: 77% (3122/4054) +2026-10-31T05:50:16.6001990Z Updating files: 78% (3163/4054) +2026-10-31T05:50:16.6209160Z Updating files: 79% (3203/4054) +2026-10-31T05:50:16.6371040Z Updating files: 80% (3244/4054) +2026-10-31T05:50:16.6563540Z Updating files: 81% (3284/4054) +2026-10-31T05:50:16.6792570Z Updating files: 82% (3325/4054) +2026-10-31T05:50:16.6992070Z Updating files: 83% (3365/4054) +2026-10-31T05:50:16.7304570Z Updating files: 84% (3406/4054) +2026-10-31T05:50:16.7552320Z Updating files: 85% (3446/4054) +2026-10-31T05:50:16.7852940Z Updating files: 86% (3487/4054) +2026-10-31T05:50:16.8130490Z Updating files: 87% (3527/4054) +2026-10-31T05:50:16.8371210Z Updating files: 88% (3568/4054) +2026-10-31T05:50:16.8633580Z Updating files: 89% (3609/4054) +2026-10-31T05:50:16.8845160Z Updating files: 90% (3649/4054) +2026-10-31T05:50:16.9129170Z Updating files: 91% (3690/4054) +2026-10-31T05:50:16.9405460Z Updating files: 92% (3730/4054) +2026-10-31T05:50:16.9657440Z Updating files: 93% (3771/4054) +2026-10-31T05:50:17.0441870Z Updating files: 94% (3811/4054) +2026-10-31T05:50:17.0602700Z Updating files: 94% (3844/4054) +2026-10-31T05:50:17.3183410Z Updating files: 95% (3852/4054) +2026-10-31T05:50:17.3404270Z Updating files: 96% (3892/4054) +2026-10-31T05:50:17.3560390Z Updating files: 97% (3933/4054) +2026-10-31T05:50:17.4014020Z Updating files: 98% (3973/4054) +2026-10-31T05:50:17.4702900Z Updating files: 99% (4014/4054) +2026-10-31T05:50:17.4706040Z Updating files: 100% (4054/4054) +2026-10-31T05:50:17.4707120Z Updating files: 100% (4054/4054), done. +2026-10-31T05:50:17.4921750Z HEAD is now at 328e02e Merge 3f7067dd058b91c11320c99c556b60451b103098 into c3bd34c48c990c2f72ab999153cff379e71c3b1c +2026-10-31T05:50:17.4962360Z ##[endgroup] +2026-10-31T05:50:17.5195480Z [command]/usr/local/bin/git log -1 --format=%H +2026-10-31T05:50:17.5334730Z 328e02ef44a1b9259ceece4844117aed4d553765 +2026-10-31T05:50:17.5885320Z ##[group]Run actions/setup-node@v4 +2026-10-31T05:50:17.5885940Z with: +2026-10-31T05:50:17.5886340Z node-version: 22 +2026-10-31T05:50:17.5886780Z always-auth: false +2026-10-31T05:50:17.5887240Z check-latest: false +2026-10-31T05:50:17.5893260Z token: *** +2026-10-31T05:50:17.5893690Z ##[endgroup] +2026-10-31T05:50:17.9700500Z Found in cache @ /Users/runner/hostedtoolcache/node/22.23.2/x64 +2026-10-31T05:50:17.9715960Z (node:1284) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead. +2026-10-31T05:50:17.9719040Z (Use `node --trace-deprecation ...` to show where the warning was created) +2026-10-31T05:50:17.9722130Z ##[group]Environment details +2026-10-31T05:50:21.0198600Z node: v22.23.2 +2026-10-31T05:50:21.0201770Z npm: 10.9.8 +2026-10-31T05:50:21.0202320Z yarn: 1.22.22 +2026-10-31T05:50:21.0208010Z ##[endgroup] +2026-10-31T05:50:21.0803230Z ##[group]Run set -euo pipefail +2026-10-31T05:50:21.0808910Z set -euo pipefail +2026-10-31T05:50:21.0811810Z # Acceptance requires original-image positive startup, denied self-exec, +2026-10-31T05:50:21.0817790Z # matching-identity counterexamples and descriptor isolation. +2026-10-31T05:50:21.0822900Z # The historical re-signing experiment remains an opt-in diagnostic; +2026-10-31T05:50:21.0827790Z # its failed startup control is never counted as confinement. +2026-10-31T05:50:21.0834810Z node --experimental-strip-types scripts/probes/plugin-confinement/run.mts --runtime native --macos-signing-native --macos-private-unix --report "$RUNNER_TEMP/matrix.json" > "$RUNNER_TEMP/matrix.log" 2>&1 +2026-10-31T05:50:21.0843230Z node --experimental-strip-types scripts/probes/plugin-confinement/macos_signing_exec.mts --report "$RUNNER_TEMP/exec.json" > "$RUNNER_TEMP/exec.log" 2>&1 +2026-10-31T05:50:21.1029060Z shell: /bin/bash --noprofile --norc -e -o pipefail {0} +2026-10-31T05:50:21.1034190Z ##[endgroup] +2026-10-31T05:50:29.0773940Z ##[group]Run set -euo pipefail +2026-10-31T05:50:29.0775030Z set -euo pipefail +2026-10-31T05:50:29.0775900Z control="$RUNNER_TEMP/macos-private-unix-missing-grant" +2026-10-31T05:50:29.0776900Z python3 - "$control" <<'PYCONTROL' +2026-10-31T05:50:29.0778150Z from pathlib import Path +2026-10-31T05:50:29.0779710Z import shutil, sys +2026-10-31T05:50:29.0780440Z target = Path(sys.argv[1]) +2026-10-31T05:50:29.0781980Z shutil.copytree('scripts/probes/plugin-confinement', target, ignore=shutil.ignore_patterns('evidence', '__pycache__')) +2026-10-31T05:50:29.0784540Z driver = target / 'macos_policy.mts' +2026-10-31T05:50:29.0785710Z text = driver.read_text() +2026-10-31T05:50:29.0786850Z before = ' if (privateUnix) {' +2026-10-31T05:50:29.0787950Z assert text.count(before) == 1 +2026-10-31T05:50:29.0791110Z driver.write_text(text.replace(before, ' if (false) { // Missing scratch UNIX grant control.')) +2026-10-31T05:50:29.0793770Z PYCONTROL +2026-10-31T05:50:29.0795710Z log="$RUNNER_TEMP/private-unix-missing-grant.log" +2026-10-31T05:50:29.0799150Z if node --experimental-strip-types "$control/run.mts" --runtime native --macos-signing-native --macos-private-unix --report "$control/result.json" > "$log" 2>&1; then +2026-10-31T05:50:29.0802430Z  echo 'Missing private UNIX policy unexpectedly passed' >&2 +2026-10-31T05:50:29.0803870Z  exit 1 +2026-10-31T05:50:29.0805080Z fi +2026-10-31T05:50:29.0806890Z python3 - "$log" <<'PYCONTROL' +2026-10-31T05:50:29.0808000Z from pathlib import Path +2026-10-31T05:50:29.0809150Z import sys +2026-10-31T05:50:29.0810370Z text = Path(sys.argv[1]).read_text() +2026-10-31T05:50:29.0812340Z assert 'no-capabilities: private UNIX runtime exchange failed: [false,false]' in text, text +2026-10-31T05:50:29.0814200Z PYCONTROL +2026-10-31T05:50:29.0932040Z shell: /bin/bash --noprofile --norc -e -o pipefail {0} +2026-10-31T05:50:29.0932900Z ##[endgroup] +2026-10-31T05:50:30.7423150Z ##[group]Run set -euo pipefail +2026-10-31T05:50:30.7423960Z set -euo pipefail +2026-10-31T05:50:30.7426110Z node --experimental-strip-types scripts/probes/plugin-confinement/macos_private_ipc.mts --report "$RUNNER_TEMP/unix-boundary.json" > "$RUNNER_TEMP/unix-boundary.log" 2>&1 +2026-10-31T05:50:30.7560430Z shell: /bin/bash --noprofile --norc -e -o pipefail {0} +2026-10-31T05:50:30.7561640Z ##[endgroup] +2026-10-31T05:50:32.1631740Z ##[group]Run set -euo pipefail +2026-10-31T05:50:32.1632640Z set -euo pipefail +2026-10-31T05:50:32.1633560Z log="$RUNNER_TEMP/unix-missing-scope.log" +2026-10-31T05:50:32.1636050Z if node --experimental-strip-types scripts/probes/plugin-confinement/macos_private_ipc.mts --missing-scope > "$log" 2>&1; then +2026-10-31T05:50:32.1638030Z  echo 'Missing UNIX outbound scope unexpectedly passed' >&2 +2026-10-31T05:50:32.1639010Z  exit 1 +2026-10-31T05:50:32.1639540Z fi +2026-10-31T05:50:32.1640060Z python3 - "$log" <<'PYCONTROL' +2026-10-31T05:50:32.1640840Z from pathlib import Path +2026-10-31T05:50:32.1641560Z import sys +2026-10-31T05:50:32.1642230Z text = Path(sys.argv[1]).read_text() +2026-10-31T05:50:32.1643300Z assert 'macOS datagram endpoint escaped scratch:' in text, text +2026-10-31T05:50:32.1644360Z import json, re +2026-10-31T05:50:32.1646200Z match = re.search(r'macOS datagram endpoint escaped scratch: (\{[^\n]+\})', text) +2026-10-31T05:50:32.1649410Z assert match, text +2026-10-31T05:50:32.1650370Z entry = json.loads(match[1]) +2026-10-31T05:50:32.1651800Z race = entry['observed']['datagram_race'] +2026-10-31T05:50:32.1653060Z assert race['host_control'] and race['settled'] and not race['failed'], entry +2026-10-31T05:50:32.1654460Z assert entry['datagram_receipts'] == 7 + race['host_acks'], entry +2026-10-31T05:50:32.1655810Z for token in ['"owner_received_fixture":true', '"acknowledged":true', +2026-10-31T05:50:32.1657310Z  '"owner_datagram_received_fixture":true', '"private_datagram":[true,true,true]', +2026-10-31T05:50:32.1658830Z  '"private_aliases":[true,true]', '"private_peer_matches":true']: +2026-10-31T05:50:32.1659910Z  assert token in text, text +2026-10-31T05:50:32.1660610Z PYCONTROL +2026-10-31T05:50:32.1739360Z shell: /bin/bash --noprofile --norc -e -o pipefail {0} +2026-10-31T05:50:32.1740370Z ##[endgroup] +2026-10-31T05:50:33.2235990Z ##[group]Run set -euo pipefail +2026-10-31T05:50:33.2237430Z set -euo pipefail +2026-10-31T05:50:33.2238600Z control="$RUNNER_TEMP/macos-datagram-bind-failure" +2026-10-31T05:50:33.2239860Z python3 - "$control" <<'PYCONTROL' +2026-10-31T05:50:33.2240680Z from pathlib import Path +2026-10-31T05:50:33.2241370Z import shutil, sys +2026-10-31T05:50:33.2242040Z target = Path(sys.argv[1]) +2026-10-31T05:50:33.2243620Z shutil.copytree('scripts/probes/plugin-confinement', target, ignore=shutil.ignore_patterns('evidence', '__pycache__')) +2026-10-31T05:50:33.2245440Z fixture = target / 'macos_datagram_race.h' +2026-10-31T05:50:33.2246270Z source = fixture.read_text() +2026-10-31T05:50:33.2247170Z needle = 'int client = datagram_socket(client_path);' +2026-10-31T05:50:33.2248130Z assert source.count(needle) == 1 +2026-10-31T05:50:33.2249470Z fixture.write_text(source.replace(needle, 'int client = datagram_socket(alias);')) +2026-10-31T05:50:33.2250720Z PYCONTROL +2026-10-31T05:50:33.2251440Z log="$RUNNER_TEMP/unix-datagram-bind-failure.log" +2026-10-31T05:50:33.2252850Z if node --experimental-strip-types "$control/macos_private_ipc.mts" > "$log" 2>&1; then +2026-10-31T05:50:33.2254400Z  echo 'Occupied datagram client bind unexpectedly passed' >&2 +2026-10-31T05:50:33.2255410Z  exit 1 +2026-10-31T05:50:33.2255940Z fi +2026-10-31T05:50:33.2256480Z python3 - "$log" <<'PYCONTROL' +2026-10-31T05:50:33.2257420Z from pathlib import Path +2026-10-31T05:50:33.2258150Z import errno, json, re, sys +2026-10-31T05:50:33.2258910Z text = Path(sys.argv[1]).read_text() +2026-10-31T05:50:33.2260120Z match = re.search(r'private datagram race control failed: (\{[^\n]+\})', text) +2026-10-31T05:50:33.2261460Z assert match, text +2026-10-31T05:50:33.2262140Z entry = json.loads(match[1]) +2026-10-31T05:50:33.2262980Z race = entry['observed']['datagram_race'] +2026-10-31T05:50:33.2265000Z assert entry['flags']['unrestricted'] and not race['private_control'], entry +2026-10-31T05:50:33.2266360Z assert race['failure_stage'] == 'client_bind', entry +2026-10-31T05:50:33.2267520Z assert race['failure_errno'] == errno.EADDRINUSE, entry +2026-10-31T05:50:33.2268750Z assert race['refused'] == 0 and race['attempts'] == 0, entry +2026-10-31T05:50:33.2269820Z diagnostic = entry['kernel_diagnostic'] +2026-10-31T05:50:33.2270930Z assert diagnostic['pid'] == entry['observed']['pid'] > 0, entry +2026-10-31T05:50:33.2272910Z assert len(diagnostic['output']) <= 16384 and len(diagnostic['stderr']) <= 2048, entry +2026-10-31T05:50:33.2274320Z PYCONTROL +2026-10-31T05:50:33.2351990Z shell: /bin/bash --noprofile --norc -e -o pipefail {0} +2026-10-31T05:50:33.2352820Z ##[endgroup] +2026-10-31T05:50:39.3240250Z ##[group]Run set -euo pipefail +2026-10-31T05:50:39.3242270Z set -euo pipefail +2026-10-31T05:50:39.3243420Z control="$RUNNER_TEMP/macos-zero-send" +2026-10-31T05:50:39.3244820Z legacy="$RUNNER_TEMP/macos-stale-errno-guard" +2026-10-31T05:50:39.3246400Z python3 - "$control" "$legacy" <<'PYCONTROL' +2026-10-31T05:50:39.3247670Z from pathlib import Path +2026-10-31T05:50:39.3249040Z import shutil, sys +2026-10-31T05:50:39.3250120Z control, legacy = map(Path, sys.argv[1:]) +2026-10-31T05:50:39.3252810Z shutil.copytree('scripts/probes/plugin-confinement', control, ignore=shutil.ignore_patterns('evidence', '__pycache__')) +2026-10-31T05:50:39.3255330Z fixture = control / 'macos_datagram.h' +2026-10-31T05:50:39.3256510Z source = fixture.read_text() +2026-10-31T05:50:39.3257820Z needle = 'result.returned = sendmsg(fd, &message, 0);' +2026-10-31T05:50:39.3259580Z assert source.count(needle) == 1 +2026-10-31T05:50:39.3262060Z replacement = 'result.returned = strstr(path, "/r0w1s1/scratch/dgram-race.sock") ? (errno = EPERM, (ssize_t)0) : sendmsg(fd, &message, 0);' +2026-10-31T05:50:39.3265300Z fixture.write_text(source.replace(needle, replacement)) +2026-10-31T05:50:39.3266780Z shutil.copytree(control, legacy) +2026-10-31T05:50:39.3268070Z fixture = legacy / 'macos_datagram.h' +2026-10-31T05:50:39.3269480Z source = fixture.read_text() +2026-10-31T05:50:39.3270670Z needle = 'result.error = result.returned == -1 ? errno : 0;' +2026-10-31T05:50:39.3272040Z assert source.count(needle) == 1 +2026-10-31T05:50:39.3273770Z fixture.write_text(source.replace(needle, 'result.error = errno;')) +2026-10-31T05:50:39.3275490Z fixture = legacy / 'macos_datagram_race.h' +2026-10-31T05:50:39.3276720Z source = fixture.read_text() +2026-10-31T05:50:39.3278760Z needle = 'sent.attempted && sent.returned == -1 && (sent.error == EACCES || sent.error == EPERM)' +2026-10-31T05:50:39.3280640Z assert source.count(needle) == 1 +2026-10-31T05:50:39.3282760Z fixture.write_text(source.replace(needle, '(sent.error == EACCES || sent.error == EPERM)')) +2026-10-31T05:50:39.3284720Z PYCONTROL +2026-10-31T05:50:39.3285650Z log="$RUNNER_TEMP/unix-zero-send.log" +2026-10-31T05:50:39.3287630Z if node --experimental-strip-types "$control/macos_private_ipc.mts" > "$log" 2>&1; then +2026-10-31T05:50:39.3289810Z  echo 'Zero-return send with stale EPERM unexpectedly passed' >&2 +2026-10-31T05:50:39.3291310Z  exit 1 +2026-10-31T05:50:39.3292340Z fi +2026-10-31T05:50:39.3293150Z python3 - "$log" <<'PYCONTROL' +2026-10-31T05:50:39.3294190Z from pathlib import Path +2026-10-31T05:50:39.3295090Z import json, re, sys +2026-10-31T05:50:39.3299020Z text = Path(sys.argv[1]).read_text() +2026-10-31T05:50:39.3337620Z match = re.search(r'datagram mutation failed: (\{[^\n]+\})', text) +2026-10-31T05:50:39.3366330Z assert match, text +2026-10-31T05:50:39.3367990Z entry = json.loads(match[1]) +2026-10-31T05:50:39.3369170Z race = entry['observed']['datagram_race'] +2026-10-31T05:50:39.3371250Z assert entry['name'] == 'r0w1s1' and race['private_control'] and race['settled'] and race['failed'], entry +2026-10-31T05:50:39.3374190Z assert race['failure_stage'] == 'send_size' and race['failure_return'] == 0 and race['failure_errno'] == 0, entry +2026-10-31T05:50:39.3376880Z assert race['attempts'] == 2 and race['refused'] <= 1 and entry['datagram_receipts'] == 0, entry +2026-10-31T05:50:39.3378870Z PYCONTROL +2026-10-31T05:50:39.3388400Z node --experimental-strip-types "$legacy/macos_private_ipc.mts" --report "$RUNNER_TEMP/unix-stale-errno-guard.json" > "$RUNNER_TEMP/unix-stale-errno-guard.log" 2>&1 +2026-10-31T05:50:39.3394150Z python3 - "$RUNNER_TEMP/unix-stale-errno-guard.json" <<'PYCONTROL' +2026-10-31T05:50:39.3396050Z from pathlib import Path +2026-10-31T05:50:39.3397140Z import json, sys +2026-10-31T05:50:39.3398620Z report = json.loads(Path(sys.argv[1]).read_text()) +2026-10-31T05:50:39.3400490Z assert len(report['rows']) == 9, report +2026-10-31T05:50:39.3402600Z entry = next(row for row in report['rows'] if row['name'] == 'r0w1s1') +2026-10-31T05:50:39.3404740Z race = entry['observed']['datagram_race'] +2026-10-31T05:50:39.3406290Z assert not race['failed'] and race['attempts'] == 16 and race['refused'] >= 8, entry +2026-10-31T05:50:39.3407530Z PYCONTROL +2026-10-31T05:50:39.3783090Z shell: /bin/bash --noprofile --norc -e -o pipefail {0} +2026-10-31T05:50:39.3783950Z ##[endgroup] +2026-10-31T05:50:49.2921680Z ##[error]Process completed with exit code 1. +2026-10-31T05:50:49.3498930Z ##[group]Run set -euo pipefail +2026-10-31T05:50:49.3499810Z set -euo pipefail +2026-10-31T05:50:49.3500590Z log="$RUNNER_TEMP/unix-dropped-rights.log" +2026-10-31T05:50:49.3502740Z if node --experimental-strip-types scripts/probes/plugin-confinement/macos_private_ipc.mts --drop-rights > "$log" 2>&1; then +2026-10-31T05:50:49.3505250Z  echo 'Missing SCM_RIGHTS reception unexpectedly passed' >&2 +2026-10-31T05:50:49.3506390Z  exit 1 +2026-10-31T05:50:49.3506940Z fi +2026-10-31T05:50:49.3507500Z python3 - "$log" <<'PYCONTROL' +2026-10-31T05:50:49.3508320Z from pathlib import Path +2026-10-31T05:50:49.3509030Z import sys +2026-10-31T05:50:49.3509660Z text = Path(sys.argv[1]).read_text() +2026-10-31T05:50:49.3510730Z assert 'private SCM_RIGHTS exchange failed:' in text, text +2026-10-31T05:50:49.3512200Z for token in ['"original_closed":true', '"sent":true', '"token":true', +2026-10-31T05:50:49.3513730Z  '"received":false', '"rights_payload":"A"', '"private_aliases":[true,true]']: +2026-10-31T05:50:49.3514970Z  assert token in text, text +2026-10-31T05:50:49.3515730Z PYCONTROL +2026-10-31T05:50:49.3636470Z shell: /bin/bash --noprofile --norc -e -o pipefail {0} +2026-10-31T05:50:49.3637750Z ##[endgroup] +2026-10-31T05:50:50.5334500Z ##[group]Run set -euo pipefail +2026-10-31T05:50:50.5335850Z set -euo pipefail +2026-10-31T05:50:50.5337090Z control="$RUNNER_TEMP/macos-rights-path-reader" +2026-10-31T05:50:50.5338520Z python3 - "$control" <<'PYCONTROL' +2026-10-31T05:50:50.5339750Z from pathlib import Path +2026-10-31T05:50:50.5340840Z import shutil, sys +2026-10-31T05:50:50.5341860Z target = Path(sys.argv[1]) +2026-10-31T05:50:50.5344520Z shutil.copytree('scripts/probes/plugin-confinement', target, ignore=shutil.ignore_patterns('evidence', '__pycache__')) +2026-10-31T05:50:50.5347200Z driver = target / 'macos_private_ipc.mts' +2026-10-31T05:50:50.5348530Z text = driver.read_text() +2026-10-31T05:50:50.5350280Z before = ' const rights_payload = contents.subarray(0, count).toString();' +2026-10-31T05:50:50.5353820Z assert text.count(before) == 1 +2026-10-31T05:50:50.5356790Z driver.write_text(text.replace(before, ' const rights_payload = readFileSync(join(paths.scratch, "rights.bin"), "utf8");')) +2026-10-31T05:50:50.5359210Z PYCONTROL +2026-10-31T05:50:50.5360290Z log="$RUNNER_TEMP/unix-rights-path-reader.log" +2026-10-31T05:50:50.5362320Z if node --experimental-strip-types "$control/macos_private_ipc.mts" > "$log" 2>&1; then +2026-10-31T05:50:50.5364450Z  echo 'Owner path re-resolution unexpectedly passed' >&2 +2026-10-31T05:50:50.5365820Z  exit 1 +2026-10-31T05:50:50.5366550Z fi +2026-10-31T05:50:50.5367390Z python3 - "$log" <<'PYCONTROL' +2026-10-31T05:50:50.5368440Z from pathlib import Path +2026-10-31T05:50:50.5369380Z import sys +2026-10-31T05:50:50.5370270Z text = Path(sys.argv[1]).read_text() +2026-10-31T05:50:50.5371800Z assert 'received descriptor file effect:' in text, text +2026-10-31T05:50:50.5373440Z for token in ['"rights_path_replaced":true', '"rights_link_count":0', +2026-10-31T05:50:50.5374910Z  '"rights_payload":"XX"', '"written":true', '"original_closed":true']: +2026-10-31T05:50:50.5376080Z  assert token in text, text +2026-10-31T05:50:50.5376910Z PYCONTROL +2026-10-31T05:50:50.5475000Z shell: /bin/bash --noprofile --norc -e -o pipefail {0} +2026-10-31T05:50:50.5476250Z ##[endgroup] +2026-10-31T05:50:51.7402220Z ##[group]Run actions/upload-artifact@v4 +2026-10-31T05:50:51.7403270Z with: +2026-10-31T05:50:51.7404080Z name: native-signing-candidate-macos-15-intel +2026-10-31T05:50:51.7412500Z path: /Users/runner/work/_temp/matrix.json +/Users/runner/work/_temp/matrix.log +/Users/runner/work/_temp/private-unix-missing-grant.log +/Users/runner/work/_temp/unix-boundary.json +/Users/runner/work/_temp/unix-boundary.log +/Users/runner/work/_temp/unix-missing-scope.log +/Users/runner/work/_temp/unix-datagram-bind-failure.log +/Users/runner/work/_temp/unix-zero-send.log +/Users/runner/work/_temp/unix-stale-errno-guard.json +/Users/runner/work/_temp/unix-stale-errno-guard.log +/Users/runner/work/_temp/unix-dropped-rights.log +/Users/runner/work/_temp/unix-rights-path-reader.log +/Users/runner/work/_temp/exec.json +/Users/runner/work/_temp/exec.log + +2026-10-31T05:50:51.7421210Z if-no-files-found: error +2026-10-31T05:50:51.7421890Z retention-days: 14 +2026-10-31T05:50:51.7422480Z compression-level: 6 +2026-10-31T05:50:51.7423220Z overwrite: false +2026-10-31T05:50:51.7424120Z include-hidden-files: false +2026-10-31T05:50:51.7424770Z ##[endgroup] +2026-10-31T05:50:52.1909500Z (node:1890) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead. +2026-10-31T05:50:52.1913020Z (Use `node --trace-deprecation ...` to show where the warning was created) +2026-10-31T05:50:52.2093890Z Multiple search paths detected. Calculating the least common ancestor of all paths +2026-10-31T05:50:52.2142660Z The least common ancestor is /Users/runner/work/_temp. This will be the root directory of the artifact +2026-10-31T05:50:52.2146430Z With the provided path, there will be 13 files uploaded +2026-10-31T05:50:52.2151130Z Artifact name is valid! +2026-10-31T05:50:52.2154740Z Root directory input is valid! +2026-10-31T05:50:52.4488380Z Beginning upload of artifact content to blob storage +2026-10-31T05:50:52.5324320Z (node:1890) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. +2026-10-31T05:50:52.5915330Z Uploaded bytes 15726 +2026-10-31T05:50:52.6218840Z Finished uploading artifact content to blob storage! +2026-10-31T05:50:52.6221800Z SHA256 digest of uploaded artifact zip is 8c1696c0618bd351d62122da5a4491d64b290b8a0199a3fc8a4bbf906347e7a2 +2026-10-31T05:50:52.6227860Z Finalizing artifact upload +2026-10-31T05:50:53.0098300Z Artifact native-signing-candidate-macos-15-intel.zip successfully finalized. Artifact ID 13031558479 +2026-10-31T05:50:53.0101750Z Artifact native-signing-candidate-macos-15-intel has been successfully uploaded! Final size is 15726 bytes. Artifact ID is 13031558479 +2026-10-31T05:50:53.0172750Z Artifact download URL: https://github.com/CyberdyneCorp/cybercode-cli/actions/runs/41173821688/artifacts/13031558479 +2026-10-31T05:50:53.1582570Z Post job cleanup. +2026-10-31T05:50:53.4455180Z [command]/usr/local/bin/git version +2026-10-31T05:50:53.4634760Z git version 2.55.0 +2026-10-31T05:50:53.4704360Z Copying '/Users/runner/.gitconfig' to '/Users/runner/work/_temp/1a440a7b-af32-4cd0-b1ca-549a1d04cfc9/.gitconfig' +2026-10-31T05:50:53.4732420Z Temporarily overriding HOME='/Users/runner/work/_temp/1a440a7b-af32-4cd0-b1ca-549a1d04cfc9' before making global git config changes +2026-10-31T05:50:53.4738080Z Adding repository directory to the temporary git global config as a safe directory +2026-10-31T05:50:53.4753500Z [command]/usr/local/bin/git config --global --add safe.directory /Users/runner/work/cybercode-cli/cybercode-cli +2026-10-31T05:50:53.4966080Z [command]/usr/local/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-31T05:50:53.5130350Z [command]/usr/local/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-31T05:50:53.7309380Z [command]/usr/local/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-31T05:50:53.7461670Z http.https://github.com/.extraheader +2026-10-31T05:50:53.7491550Z [command]/usr/local/bin/git config --local --unset-all http.https://github.com/.extraheader +2026-10-31T05:50:53.7669890Z [command]/usr/local/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-31T05:50:53.9575250Z [command]/usr/local/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-31T05:50:53.9716100Z [command]/usr/local/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-31T05:50:54.1706270Z Cleaning up orphan processes +2026-10-31T05:50:54.1993000Z ##[warning]Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4, actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ diff --git a/scripts/probes/plugin-confinement/evidence/macos-send-result-intel-3f7067dd/source-binding.json b/scripts/probes/plugin-confinement/evidence/macos-send-result-intel-3f7067dd/source-binding.json new file mode 100644 index 00000000..3d75808b --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-send-result-intel-3f7067dd/source-binding.json @@ -0,0 +1,10 @@ +{ + "head": "3f7067dd058b91c11320c99c556b60451b103098", + "tested_merge": "328e02ef44a1b9259ceece4844117aed4d553765", + "tree": "8c841844cbfa7152f4badfac46a903b72002f05d", + "verified_tested_merge_matches_head": true, + "artifact_id": 13031558479, + "artifact_sha256": "8c1696c0618bd351d62122da5a4491d64b290b8a0199a3fc8a4bbf906347e7a2", + "verified_actual_ipc_source_bytes": "c5c5989e24f0223fe09f3b41aded63a49606af4a6c62afcfccbc881bdcc7697d", + "scope": "Primary nine IPC rows passed, zero-send injection rejected, but legacy comparison failed on a different real -1/EINVAL race before the injected row. Failed job is not accepted platform evidence." +} diff --git a/scripts/probes/plugin-confinement/evidence/macos-send-result-intel-3f7067dd/unix-boundary.json b/scripts/probes/plugin-confinement/evidence/macos-send-result-intel-3f7067dd/unix-boundary.json new file mode 100644 index 00000000..09b52b6c --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-send-result-intel-3f7067dd/unix-boundary.json @@ -0,0 +1,991 @@ +{ + "recorded_at": "2026-10-31T05:50:32.084Z", + "platform": "darwin", + "architecture": "x64", + "kernel_release": "24.6.0", + "sources": [ + "macos_private_ipc.mts", + "macos_policy.mts", + "macos_rights.h", + "macos_datagram.h", + "macos_datagram_race.h", + "macos_datagram_owner.mts", + "macos_datagram_owner.c", + "fixture_native.c", + "process_policy.h", + "macos_exec.c" + ], + "source_sha256": "c5c5989e24f0223fe09f3b41aded63a49606af4a6c62afcfccbc881bdcc7697d", + "target_sha256": "615fcbd09cf2f97b248642b8aefc4a20434886da6e2649212830b0f6a9de5aa9", + "receiver_startup_controls": { + "missing_program_refused": true, + "failed_bind_refused": true + }, + "rows": [ + { + "name": "unconfined", + "flags": { + "read": true, + "write": true, + "shell": true, + "unrestricted": true + }, + "observed": { + "started": true, + "pid": 1650, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": true, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": true, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 7, + "host_acks": 9, + "refused": 0, + "swaps": 18, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": true, + "sent": true, + "acknowledged": true + }, + "dgram_sendto": { + "connected": false, + "sent": true, + "acknowledged": true + }, + "dgram_sendmsg": { + "connected": false, + "sent": true, + "acknowledged": true + }, + "dgram_alias_connect": { + "connected": true, + "sent": true, + "acknowledged": true + }, + "dgram_alias_sendto": { + "connected": false, + "sent": true, + "acknowledged": true + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": true, + "acknowledged": true + }, + "direct": { + "connected": true, + "sent": true, + "acknowledged": true + }, + "hardlink": { + "connected": true, + "sent": true, + "acknowledged": true + }, + "symlink": { + "connected": true, + "sent": true, + "acknowledged": true + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 3, + "owner_received_fixture": true, + "datagram_receipts": 16, + "owner_datagram_received_fixture": true + }, + { + "name": "r0w0s0", + "flags": { + "read": false, + "write": false, + "shell": false + }, + "observed": { + "started": true, + "pid": 1653, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r0w0s1", + "flags": { + "read": false, + "write": false, + "shell": true + }, + "observed": { + "started": true, + "pid": 1655, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r0w1s0", + "flags": { + "read": false, + "write": true, + "shell": false + }, + "observed": { + "started": true, + "pid": 1658, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r0w1s1", + "flags": { + "read": false, + "write": true, + "shell": true + }, + "observed": { + "started": true, + "pid": 1660, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r1w0s0", + "flags": { + "read": true, + "write": false, + "shell": false + }, + "observed": { + "started": true, + "pid": 1663, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r1w0s1", + "flags": { + "read": true, + "write": false, + "shell": true + }, + "observed": { + "started": true, + "pid": 1665, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 17, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r1w1s0", + "flags": { + "read": true, + "write": true, + "shell": false + }, + "observed": { + "started": true, + "pid": 1668, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r1w1s1", + "flags": { + "read": true, + "write": true, + "shell": true + }, + "observed": { + "started": true, + "pid": 1670, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + } + ], + "scope": "Experimental pre-runtime native UNIX stream/datagram/descriptor controls; complete IPC/proxy/ownership and App acceptance remain required." +} diff --git a/scripts/probes/plugin-confinement/evidence/macos-send-result-intel-3f7067dd/unix-stale-errno-guard.log b/scripts/probes/plugin-confinement/evidence/macos-send-result-intel-3f7067dd/unix-stale-errno-guard.log new file mode 100644 index 00000000..904a7da5 --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-send-result-intel-3f7067dd/unix-stale-errno-guard.log @@ -0,0 +1,20 @@ +node:internal/modules/run_main:123 + triggerUncaughtException( + ^ + +AssertionError [ERR_ASSERTION]: datagram mutation failed: {"name":"r0w0s1","flags":{"read":false,"write":false,"shell":true},"observed":{"started":true,"pid":1822,"private_unix":[true,true],"private_peer_checks":8,"private_peer_matches":true,"hardlink_created":false,"symlink_created":true,"private_aliases":[true,true],"rights":{"sent":true,"original_closed":true,"token":true,"truncated":false,"received":true,"same_inode":true,"readable":true,"written":true,"cloexec":true},"rights_path_replaced":true,"private_datagram":[true,true,true],"datagram_symlink_created":true,"datagram_race":{"private_control":true,"host_control":false,"settled":true,"failed":true,"attempts":16,"private_acks":7,"host_acks":0,"refused":8,"swaps":18,"failure_stage":"send","failure_errno":22,"failure_return":-1},"dgram_connect":{"connected":false,"sent":false,"acknowledged":false},"dgram_sendto":{"connected":false,"sent":false,"acknowledged":false},"dgram_sendmsg":{"connected":false,"sent":false,"acknowledged":false},"dgram_alias_connect":{"connected":false,"sent":false,"acknowledged":false},"dgram_alias_sendto":{"connected":false,"sent":false,"acknowledged":false},"dgram_alias_sendmsg":{"connected":false,"sent":false,"acknowledged":false},"direct":{"connected":false,"sent":false,"acknowledged":false},"hardlink":{"connected":false,"sent":false,"acknowledged":false},"symlink":{"connected":false,"sent":false,"acknowledged":false}},"rights_payload":"AB","rights_link_count":0,"kernel_diagnostic":{"pid":1822,"status":0,"signal":null,"error":"","stderr":"","output":"[{\n \"timezoneName\" : \"\",\n \"messageType\" : \"Error\",\n \"eventType\" : \"logEvent\",\n \"source\" : null,\n \"formatString\" : \"%s\",\n \"userID\" : 0,\n \"activityIdentifier\" : 0,\n \"subsystem\" : \"com.apple.sandbox.reporting\",\n \"category\" : \"violation\",\n \"threadID\" : 9071,\n \"senderImageUUID\" : \"B8A7B0A3-F7D8-335D-8EFB-F0ACA12649E0\",\n \"backtrace\" : {\n \"frames\" : [\n {\n \"imageOffset\" : 135461,\n \"imageUUID\" : \"B8A7B0A3-F7D8-335D-8EFB-F0ACA12649E0\"\n }\n ]\n },\n \"bootUUID\" : \"46080393-3F25-4CFE-9275-B4A616364519\",\n \"processImagePath\" : \"\\/kernel\",\n \"senderImagePath\" : \"\\/System\\/Library\\/Extensions\\/Sandbox.kext\\/Contents\\/MacOS\\/Sandbox\",\n \"timestamp\" : \"2026-10-31 05:50:47.124591+0000\",\n \"machTimestamp\" : 213223945529,\n \"eventMessage\" : \"Sandbox: guest(1822) deny(1) network-outbound \\/private\\/tmp\\/cyber-unix-dVe8Nr\\/r0w0s1\\/project\\/dgram-host.sock\",\n \"processImageUUID\" : \"F6A1B3D4-1EBB-3628-A1C5-89506C51DDEC\",\n \"traceID\" : 1771059863359492,\n \"processID\" : 0,\n \"senderProgramCounter\" : 135461,\n \"parentActivityIdentifier\" : 0\n},{\n \"timezoneName\" : \"\",\n \"messageType\" : \"Error\",\n \"eventType\" : \"logEvent\",\n \"source\" : null,\n \"formatString\" : \"%s\",\n \"userID\" : 0,\n \"activityIdentifier\" : 0,\n \"subsystem\" : \"com.apple.sandbox.reporting\",\n \"category\" : \"violation\",\n \"threadID\" : 9071,\n \"senderImageUUID\" : \"B8A7B0A3-F7D8-335D-8EFB-F0ACA12649E0\",\n \"backtrace\" : {\n \"frames\" : [\n {\n \"imageOffset\" : 135461,\n \"imageUUID\" : \"B8A7B0A3-F7D8-335D-8EFB-F0ACA12649E0\"\n }\n ]\n },\n \"bootUUID\" : \"46080393-3F25-4CFE-9275-B4A616364519\",\n \"processImagePath\" : \"\\/kernel\",\n \"senderImagePath\" : \"\\/System\\/Library\\/Extensions\\/Sandbox.kext\\/Contents\\/MacOS\\/Sandbox\",\n \"timestamp\" : \"2026-10-31 05:50:47.141833+0000\",\n \"machTimestamp\" : 213241187197,\n \"eventMessage\" : \"14 duplicate reports for Sandbox: guest(1822) deny(1) network-outbound \\/private\\/tmp\\/cyber-unix-dVe8Nr\\/r0w0s1\\/project\\/dgram-host.sock\",\n \"processImageUUID\" : \"F6A1B3D4-1EBB-3628-A1C5-89506C51DDEC\",\n \"traceID\" : 1771059863359492,\n \"processID\" : 0,\n \"senderProgramCounter\" : 135461,\n \"parentActivityIdentifier\" : 0\n},{\n \"timezoneName\" : \"\",\n \"messageType\" : \"Error\",\n \"eventType\" : \"logEvent\",\n \"source\" : null,\n \"formatString\" : \"%s\",\n \"userID\" : 0,\n \"activityIdentifier\" : 0,\n \"subsystem\" : \"com.apple.sandbox.reporting\",\n \"category\" : \"violation\",\n \"threadID\" : 9071,\n \"senderImageUUID\" : \"B8A7B0A3-F7D8-335D-8EFB-F0ACA12649E0\",\n \"backtrace\" : {\n \"frames\" : [\n {\n \"imageOffset\" : 135461,\n \"imageUUID\" : \"B8A7B0A3-F7D8-335D-8EFB-F0ACA12649E0\"\n }\n ]\n },\n \"bootUUID\" : \"46080393-3F25-4CFE-9275-B4A616364519\",\n \"processImagePath\" : \"\\/kernel\",\n \"senderImagePath\" : \"\\/System\\/Library\\/Extensions\\/Sandbox.kext\\/Contents\\/MacOS\\/Sandbox\",\n \"timestamp\" : \"2026-10-31 05:50:47.141844+0000\",\n \"machTimestamp\" : 213241197965,\n \"eventMessage\" : \"Sandbox: guest(1822) deny(1) network-outbound \\/private\\/tmp\\/cyber-unix-dVe8Nr\\/r0w0s1\\/project\\/host.sock\",\n \"processImageUUID\" : \"F6A1B3D4-1EBB-3628-A1C5-89506C51DDEC\",\n \"traceID\" : 1771059863359492,\n \"processID\" : 0,\n \"senderProgramCounter\" : 135461,\n \"parentActivityIdentifier\" : 0\n},{\n \"timezoneName\" : \"\",\n \"messageType\" : \"Error\",\n \"eventType\" : \"logEvent\",\n \"source\" : null,\n \"formatString\" : \"%s\",\n \"userID\" : 0,\n \"activityIdentifier\" : 0,\n \"subsystem\" : \"com.apple.sandbox.reporting\",\n \"category\" : \"violation\",\n \"threadID\" : 9071,\n \"senderImageUUID\" : \"B8A7B0A3-F7D8-335D-8EFB-F0ACA12649E0\",\n \"backtrace\" : {\n \"frames\" : [\n {\n \"imageOffset\" : 135461,\n \"imageUUID\" : \"B8A7B0A3-F7D8-335D-8EFB-F0ACA12649E0\"\n }\n ]\n },\n \"bootUUID\" : \"46080393-3F25-4CFE-9275-B4A616364519\",\n \"processImagePath\" : \"\\/kernel\",\n \"senderImagePath\" : \"\\/System\\/Library\\/Extensions\\/Sandbox.kext\\/Contents\\/MacOS\\/Sandbox\",\n \"timestamp\" : \"2026-10-31 05:50:47.142224+0000\",\n \"machTimestamp\" : 213241578239,\n \"eventMessage\" : \"Sandbox: guest(1822) deny(1) forbidden-link-priv \\/private\\/tmp\\/cyber-unix-dVe8Nr\\/r0w0s1\\/project\\/host.sock \\/private\\/tmp\\/cyber-unix-dVe8Nr\\/r0w0s1\\/scratch\\/host-alias.sock\",\n \"processImageUUID\" : \"F6A1B3D4-1EBB-3628-A1C5-89506C51DDEC\",\n \"traceID\" : 1771059863359492,\n \"processID\" : 0,\n \"senderProgramCounter\" : 135461,\n \"parentActivityIdentifier\" : 0\n},{\n \"timezoneName\" : \"\",\n \"messageType\" : \"Error\",\n \"eventType\" : \"logEvent\",\n \"source\" : null,\n \"formatString\" : \"%s\",\n \"userID\" : 0,\n \"activityIdentifier\" : 0,\n \"subsystem\" : \"com.apple.sandbox.reporting\",\n \"category\" : \"violation\",\n \"threadID\" : 9071,\n \"senderImageUUID\" : \"B8A7B0A3-F7D8-335D-8EFB-F0ACA12649E0\",\n \"backtrace\" : {\n \"frames\" : [\n {\n \"imageOffset\" : 135461,\n \"imageUUID\" : \"B8A7B0A3-F7D8-335D-8EFB-F0ACA12649E0\"\n }\n ]\n },\n \"bootUUID\" : \"46080393-3F25-4CFE-9275-B4A616364519\",\n \"processImagePath\" : \"\\/kernel\",\n \"senderImagePath\" : \"\\/System\\/Library\\/Extensions\\/Sandbox.kext\\/Contents\\/MacOS\\/Sandbox\",\n \"timestamp\" : \"2026-10-31 05:50:47.142401+0000\",\n \"machTimestamp\" : 213241755664,\n \"eventMessage\" : \"Sandbox: guest(1822) deny(1) network-outbound \\/private\\/tmp\\/cyber-unix-dVe8Nr\\/r0w0s1\\/project\\/host.sock\",\n \"processImageUUID\" : \"F6A1B3D4-1EBB-3628-A1C5-89506C51DDEC\",\n \"traceID\" : 1771059863359492,\n \"processID\" : 0,\n \"senderProgramCounter\" : 135461,\n \"parentActivityIdentifier\" : 0\n}]"},"owner_receipts":0,"owner_received_fixture":false,"datagram_receipts":0,"owner_datagram_received_fixture":false} + +true !== false + + at check (file:///Users/runner/work/_temp/macos-stale-errno-guard/macos_private_ipc.mts:152:10) + at file:///Users/runner/work/_temp/macos-stale-errno-guard/macos_private_ipc.mts:207:5 + at process.processTicksAndRejections (node:internal/process/task_queues:103:5) { + generatedMessage: false, + code: 'ERR_ASSERTION', + actual: true, + expected: false, + operator: 'strictEqual', + diff: 'simple' +} + +Node.js v22.23.2 diff --git a/scripts/probes/plugin-confinement/evidence/macos-send-result-intel-3f7067dd/unix-zero-send.log b/scripts/probes/plugin-confinement/evidence/macos-send-result-intel-3f7067dd/unix-zero-send.log new file mode 100644 index 00000000..6ec6aa06 --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-send-result-intel-3f7067dd/unix-zero-send.log @@ -0,0 +1,20 @@ +node:internal/modules/run_main:123 + triggerUncaughtException( + ^ + +AssertionError [ERR_ASSERTION]: datagram mutation failed: {"name":"r0w1s1","flags":{"read":false,"write":true,"shell":true},"observed":{"started":true,"pid":1784,"private_unix":[true,true],"private_peer_checks":8,"private_peer_matches":true,"hardlink_created":false,"symlink_created":true,"private_aliases":[true,true],"rights":{"sent":true,"original_closed":true,"token":true,"truncated":false,"received":true,"same_inode":true,"readable":true,"written":true,"cloexec":true},"rights_path_replaced":true,"private_datagram":[true,true,true],"datagram_symlink_created":true,"datagram_race":{"private_control":true,"host_control":false,"settled":true,"failed":true,"attempts":2,"private_acks":0,"host_acks":0,"refused":1,"swaps":2,"failure_stage":"send_size","failure_errno":0,"failure_return":0},"dgram_connect":{"connected":false,"sent":false,"acknowledged":false},"dgram_sendto":{"connected":false,"sent":false,"acknowledged":false},"dgram_sendmsg":{"connected":false,"sent":false,"acknowledged":false},"dgram_alias_connect":{"connected":false,"sent":false,"acknowledged":false},"dgram_alias_sendto":{"connected":false,"sent":false,"acknowledged":false},"dgram_alias_sendmsg":{"connected":false,"sent":false,"acknowledged":false},"direct":{"connected":false,"sent":false,"acknowledged":false},"hardlink":{"connected":false,"sent":false,"acknowledged":false},"symlink":{"connected":false,"sent":false,"acknowledged":false}},"rights_payload":"AB","rights_link_count":0,"kernel_diagnostic":{"pid":1784,"status":0,"signal":null,"error":"","stderr":"","output":"[{\n \"timezoneName\" : \"\",\n \"messageType\" : \"Error\",\n \"eventType\" : \"logEvent\",\n \"source\" : null,\n \"formatString\" : \"%s\",\n \"userID\" : 0,\n \"activityIdentifier\" : 0,\n \"subsystem\" : \"com.apple.sandbox.reporting\",\n \"category\" : \"violation\",\n \"threadID\" : 8959,\n \"senderImageUUID\" : \"B8A7B0A3-F7D8-335D-8EFB-F0ACA12649E0\",\n \"backtrace\" : {\n \"frames\" : [\n {\n \"imageOffset\" : 135461,\n \"imageUUID\" : \"B8A7B0A3-F7D8-335D-8EFB-F0ACA12649E0\"\n }\n ]\n },\n \"bootUUID\" : \"46080393-3F25-4CFE-9275-B4A616364519\",\n \"processImagePath\" : \"\\/kernel\",\n \"senderImagePath\" : \"\\/System\\/Library\\/Extensions\\/Sandbox.kext\\/Contents\\/MacOS\\/Sandbox\",\n \"timestamp\" : \"2026-10-31 05:50:42.463178+0000\",\n \"machTimestamp\" : 208562532211,\n \"eventMessage\" : \"Sandbox: guest(1784) deny(1) network-outbound \\/private\\/tmp\\/cyber-unix-hJV91P\\/r0w1s1\\/project\\/dgram-host.sock\",\n \"processImageUUID\" : \"F6A1B3D4-1EBB-3628-A1C5-89506C51DDEC\",\n \"traceID\" : 1771059863359492,\n \"processID\" : 0,\n \"senderProgramCounter\" : 135461,\n \"parentActivityIdentifier\" : 0\n},{\n \"timezoneName\" : \"\",\n \"messageType\" : \"Error\",\n \"eventType\" : \"logEvent\",\n \"source\" : null,\n \"formatString\" : \"%s\",\n \"userID\" : 0,\n \"activityIdentifier\" : 0,\n \"subsystem\" : \"com.apple.sandbox.reporting\",\n \"category\" : \"violation\",\n \"threadID\" : 8959,\n \"senderImageUUID\" : \"B8A7B0A3-F7D8-335D-8EFB-F0ACA12649E0\",\n \"backtrace\" : {\n \"frames\" : [\n {\n \"imageOffset\" : 135461,\n \"imageUUID\" : \"B8A7B0A3-F7D8-335D-8EFB-F0ACA12649E0\"\n }\n ]\n },\n \"bootUUID\" : \"46080393-3F25-4CFE-9275-B4A616364519\",\n \"processImagePath\" : \"\\/kernel\",\n \"senderImagePath\" : \"\\/System\\/Library\\/Extensions\\/Sandbox.kext\\/Contents\\/MacOS\\/Sandbox\",\n \"timestamp\" : \"2026-10-31 05:50:42.468036+0000\",\n \"machTimestamp\" : 208567389778,\n \"eventMessage\" : \"6 duplicate reports for Sandbox: guest(1784) deny(1) network-outbound \\/private\\/tmp\\/cyber-unix-hJV91P\\/r0w1s1\\/project\\/dgram-host.sock\",\n \"processImageUUID\" : \"F6A1B3D4-1EBB-3628-A1C5-89506C51DDEC\",\n \"traceID\" : 1771059863359492,\n \"processID\" : 0,\n \"senderProgramCounter\" : 135461,\n \"parentActivityIdentifier\" : 0\n},{\n \"timezoneName\" : \"\",\n \"messageType\" : \"Error\",\n \"eventType\" : \"logEvent\",\n \"source\" : null,\n \"formatString\" : \"%s\",\n \"userID\" : 0,\n \"activityIdentifier\" : 0,\n \"subsystem\" : \"com.apple.sandbox.reporting\",\n \"category\" : \"violation\",\n \"threadID\" : 8959,\n \"senderImageUUID\" : \"B8A7B0A3-F7D8-335D-8EFB-F0ACA12649E0\",\n \"backtrace\" : {\n \"frames\" : [\n {\n \"imageOffset\" : 135461,\n \"imageUUID\" : \"B8A7B0A3-F7D8-335D-8EFB-F0ACA12649E0\"\n }\n ]\n },\n \"bootUUID\" : \"46080393-3F25-4CFE-9275-B4A616364519\",\n \"processImagePath\" : \"\\/kernel\",\n \"senderImagePath\" : \"\\/System\\/Library\\/Extensions\\/Sandbox.kext\\/Contents\\/MacOS\\/Sandbox\",\n \"timestamp\" : \"2026-10-31 05:50:42.468046+0000\",\n \"machTimestamp\" : 208567400506,\n \"eventMessage\" : \"Sandbox: guest(1784) deny(1) network-outbound \\/private\\/tmp\\/cyber-unix-hJV91P\\/r0w1s1\\/project\\/host.sock\",\n \"processImageUUID\" : \"F6A1B3D4-1EBB-3628-A1C5-89506C51DDEC\",\n \"traceID\" : 1771059863359492,\n \"processID\" : 0,\n \"senderProgramCounter\" : 135461,\n \"parentActivityIdentifier\" : 0\n},{\n \"timezoneName\" : \"\",\n \"messageType\" : \"Error\",\n \"eventType\" : \"logEvent\",\n \"source\" : null,\n \"formatString\" : \"%s\",\n \"userID\" : 0,\n \"activityIdentifier\" : 0,\n \"subsystem\" : \"com.apple.sandbox.reporting\",\n \"category\" : \"violation\",\n \"threadID\" : 8959,\n \"senderImageUUID\" : \"B8A7B0A3-F7D8-335D-8EFB-F0ACA12649E0\",\n \"backtrace\" : {\n \"frames\" : [\n {\n \"imageOffset\" : 135461,\n \"imageUUID\" : \"B8A7B0A3-F7D8-335D-8EFB-F0ACA12649E0\"\n }\n ]\n },\n \"bootUUID\" : \"46080393-3F25-4CFE-9275-B4A616364519\",\n \"processImagePath\" : \"\\/kernel\",\n \"senderImagePath\" : \"\\/System\\/Library\\/Extensions\\/Sandbox.kext\\/Contents\\/MacOS\\/Sandbox\",\n \"timestamp\" : \"2026-10-31 05:50:42.468290+0000\",\n \"machTimestamp\" : 208567644204,\n \"eventMessage\" : \"Sandbox: guest(1784) deny(1) forbidden-link-priv \\/private\\/tmp\\/cyber-unix-hJV91P\\/r0w1s1\\/project\\/host.sock \\/private\\/tmp\\/cyber-unix-hJV91P\\/r0w1s1\\/scratch\\/host-alias.sock\",\n \"processImageUUID\" : \"F6A1B3D4-1EBB-3628-A1C5-89506C51DDEC\",\n \"traceID\" : 1771059863359492,\n \"processID\" : 0,\n \"senderProgramCounter\" : 135461,\n \"parentActivityIdentifier\" : 0\n},{\n \"timezoneName\" : \"\",\n \"messageType\" : \"Error\",\n \"eventType\" : \"logEvent\",\n \"source\" : null,\n \"formatString\" : \"%s\",\n \"userID\" : 0,\n \"activityIdentifier\" : 0,\n \"subsystem\" : \"com.apple.sandbox.reporting\",\n \"category\" : \"violation\",\n \"threadID\" : 8959,\n \"senderImageUUID\" : \"B8A7B0A3-F7D8-335D-8EFB-F0ACA12649E0\",\n \"backtrace\" : {\n \"frames\" : [\n {\n \"imageOffset\" : 135461,\n \"imageUUID\" : \"B8A7B0A3-F7D8-335D-8EFB-F0ACA12649E0\"\n }\n ]\n },\n \"bootUUID\" : \"46080393-3F25-4CFE-9275-B4A616364519\",\n \"processImagePath\" : \"\\/kernel\",\n \"senderImagePath\" : \"\\/System\\/Library\\/Extensions\\/Sandbox.kext\\/Contents\\/MacOS\\/Sandbox\",\n \"timestamp\" : \"2026-10-31 05:50:42.468434+0000\",\n \"machTimestamp\" : 208567787911,\n \"eventMessage\" : \"Sandbox: guest(1784) deny(1) network-outbound \\/private\\/tmp\\/cyber-unix-hJV91P\\/r0w1s1\\/project\\/host.sock\",\n \"processImageUUID\" : \"F6A1B3D4-1EBB-3628-A1C5-89506C51DDEC\",\n \"traceID\" : 1771059863359492,\n \"processID\" : 0,\n \"senderProgramCounter\" : 135461,\n \"parentActivityIdentifier\" : 0\n}]"},"owner_receipts":0,"owner_received_fixture":false,"datagram_receipts":0,"owner_datagram_received_fixture":false} + +true !== false + + at check (file:///Users/runner/work/_temp/macos-zero-send/macos_private_ipc.mts:152:10) + at file:///Users/runner/work/_temp/macos-zero-send/macos_private_ipc.mts:207:5 + at process.processTicksAndRejections (node:internal/process/task_queues:103:5) { + generatedMessage: false, + code: 'ERR_ASSERTION', + actual: true, + expected: false, + operator: 'strictEqual', + diff: 'simple' +} + +Node.js v22.23.2 diff --git a/scripts/probes/plugin-confinement/evidence/macos-send-result-local/exec.json b/scripts/probes/plugin-confinement/evidence/macos-send-result-local/exec.json new file mode 100644 index 00000000..6c4d12d4 --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-send-result-local/exec.json @@ -0,0 +1,82 @@ +{ + "recorded_at": "2026-10-31T05:41:50.473Z", + "platform": "darwin", + "architecture": "arm64", + "kernel_release": "25.6.0", + "sources": [ + "macos_signing_exec.mts", + "macos_exec.c", + "fixture_exec.c", + "macos_signature.c", + "macos_fds.c" + ], + "source_sha256": "7a06af58c27b8b134dd4833f6947b1a27623c4c3ef34c74542528d05ae284723", + "signing_identifier": "com.cyberdyne.probe.helperX.4854e76d-b0a7-407a-959b-0caa9748ebdd", + "signature": { + "status": 0, + "signal": null, + "stdout": "", + "stderr": "" + }, + "native_control": { + "initial_exec": true, + "self_exec": true + }, + "native": { + "initial_exec": true, + "self_exec": false + }, + "original_platform_image": { + "path": "/bin/bash", + "sha256": "67e853b740606c0cb92fc8b7186a98d327d783f7e7cd911773bb83f73f3d6583", + "control": { + "status": 0, + "signal": null, + "stdout": "initial-admitted\nself-exec", + "stderr": "" + }, + "restricted": { + "status": 1, + "signal": null, + "stdout": "initial-admitted\n", + "stderr": "/bin/bash: /bin/bash: Operation not permitted\n/bin/bash: /bin/bash: Undefined error: 0\n" + } + }, + "same_identifier_counterexample": { + "initial_exec": true, + "self_exec": true + }, + "detached_signature": { + "control": [ + { + "initial_exec": true, + "add_signature_result": 0, + "add_signature_errno": 0 + }, + { + "self_exec": true + } + ], + "restricted": [ + { + "initial_exec": true, + "add_signature_result": 0, + "add_signature_errno": 0 + }, + { + "self_exec": false, + "exec_errno": 1 + } + ], + "original_image_unchanged": true + }, + "inherited_above_soft_limit": { + "control": { + "inherited_descriptor": true + }, + "launcher": { + "inherited_descriptor": false + } + }, + "limitation": "Experimental exec-only candidate. Identifier collision is an observed bypass. Immutable package/helper identity admission across all slices, other kernel mutation interfaces, packaging and owner integration remain unproved; no production support change." +} diff --git a/scripts/probes/plugin-confinement/evidence/macos-send-result-local/exec.log b/scripts/probes/plugin-confinement/evidence/macos-send-result-local/exec.log new file mode 100644 index 00000000..6c4d12d4 --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-send-result-local/exec.log @@ -0,0 +1,82 @@ +{ + "recorded_at": "2026-10-31T05:41:50.473Z", + "platform": "darwin", + "architecture": "arm64", + "kernel_release": "25.6.0", + "sources": [ + "macos_signing_exec.mts", + "macos_exec.c", + "fixture_exec.c", + "macos_signature.c", + "macos_fds.c" + ], + "source_sha256": "7a06af58c27b8b134dd4833f6947b1a27623c4c3ef34c74542528d05ae284723", + "signing_identifier": "com.cyberdyne.probe.helperX.4854e76d-b0a7-407a-959b-0caa9748ebdd", + "signature": { + "status": 0, + "signal": null, + "stdout": "", + "stderr": "" + }, + "native_control": { + "initial_exec": true, + "self_exec": true + }, + "native": { + "initial_exec": true, + "self_exec": false + }, + "original_platform_image": { + "path": "/bin/bash", + "sha256": "67e853b740606c0cb92fc8b7186a98d327d783f7e7cd911773bb83f73f3d6583", + "control": { + "status": 0, + "signal": null, + "stdout": "initial-admitted\nself-exec", + "stderr": "" + }, + "restricted": { + "status": 1, + "signal": null, + "stdout": "initial-admitted\n", + "stderr": "/bin/bash: /bin/bash: Operation not permitted\n/bin/bash: /bin/bash: Undefined error: 0\n" + } + }, + "same_identifier_counterexample": { + "initial_exec": true, + "self_exec": true + }, + "detached_signature": { + "control": [ + { + "initial_exec": true, + "add_signature_result": 0, + "add_signature_errno": 0 + }, + { + "self_exec": true + } + ], + "restricted": [ + { + "initial_exec": true, + "add_signature_result": 0, + "add_signature_errno": 0 + }, + { + "self_exec": false, + "exec_errno": 1 + } + ], + "original_image_unchanged": true + }, + "inherited_above_soft_limit": { + "control": { + "inherited_descriptor": true + }, + "launcher": { + "inherited_descriptor": false + } + }, + "limitation": "Experimental exec-only candidate. Identifier collision is an observed bypass. Immutable package/helper identity admission across all slices, other kernel mutation interfaces, packaging and owner integration remain unproved; no production support change." +} diff --git a/scripts/probes/plugin-confinement/evidence/macos-send-result-local/matrix.json b/scripts/probes/plugin-confinement/evidence/macos-send-result-local/matrix.json new file mode 100644 index 00000000..747cec1e --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-send-result-local/matrix.json @@ -0,0 +1,547 @@ +{ + "recorded_at": "2026-10-31T05:41:47.763Z", + "kernel_release": "25.6.0", + "sources": [ + "run.mts", + "macos_policy.mts", + "macos_rights.h", + "macos_datagram.h", + "macos_datagram_race.h", + "macos_python.c", + "macos_node.c", + "native_exec.c", + "node_bootstrap.cjs", + "fixture.py", + "fixture.cjs", + "private_unix.cjs", + "process_policy.h", + "linux_filter.h", + "linux_exec.c", + "linux_initial_exec.h", + "fixture_native.c", + "macos_exec.c", + "macos_stage.mts" + ], + "source_sha256": "382f0ddb6f3fb60ec7395a6bb769191c64ffbce9f059bb4654cebe3c13fbe07a", + "platform": "darwin", + "architecture": "arm64", + "runtime": "native", + "version": "fixture-v2", + "signing_identifier": "com.cyberdyne.probe.bootstrap.e09c3ff1-0946-428b-a905-bd9fae300fae", + "socket_broker_candidate": false, + "private_stream_candidate": false, + "macos_private_unix_candidate": true, + "mechanism": "fresh signing identifier on trusted launcher + exact-target Seatbelt exec rule before any runtime instruction; target signature unchanged; experimental subject-identity candidate", + "limitation": "experimental native mechanisms; macOS uses deprecated Seatbelt API; not production packaging or Windows acceptance", + "unsupported_cases": [], + "rows": [ + { + "name": "unconfined-control", + "flags": { + "read": true, + "write": true, + "shell": true, + "unrestricted": true + }, + "observations": { + "stdio_tool": true, + "package_read": true, + "scratch_write": true, + "scratch_read": true, + "project_read": true, + "project_list": true, + "project_write": true, + "written_project_read": true, + "private_read": true, + "private_list": true, + "private_write": true, + "protected_read": true, + "protected_write": true, + "symlink_private_read": true, + "hardlink_private": true, + "project_rename": true, + "inherited_descriptor": false, + "thread": true, + "package_hardlink": true, + "package_alias_write": true, + "thread_reads": [ + true, + true + ], + "thread_shell": true, + "shell": true, + "native_fork": true, + "child_reads": [ + true, + true + ], + "native_child_reads": [ + true, + true + ], + "cannot_relax": null, + "constructor_private_read": true, + "constructor_fork": true, + "native_spawn": true, + "platform_status_known": true, + "platform_before": false, + "platform_after_set": false, + "private_unix": [ + true, + true + ] + }, + "self_exec": true, + "constructor_self_exec": true, + "constructor_spawn": true + }, + { + "name": "no-capabilities", + "flags": { + "read": false, + "write": false, + "shell": false + }, + "observations": { + "stdio_tool": true, + "package_read": true, + "scratch_write": true, + "scratch_read": true, + "project_read": false, + "project_list": false, + "project_write": false, + "written_project_read": false, + "private_read": false, + "private_list": false, + "private_write": false, + "protected_read": false, + "protected_write": false, + "symlink_private_read": false, + "hardlink_private": false, + "project_rename": false, + "inherited_descriptor": false, + "thread": true, + "package_hardlink": false, + "package_alias_write": false, + "thread_reads": [ + false, + false + ], + "thread_shell": false, + "shell": false, + "native_fork": false, + "child_reads": null, + "native_child_reads": null, + "cannot_relax": true, + "constructor_private_read": false, + "constructor_fork": false, + "native_spawn": false, + "platform_status_known": true, + "platform_before": false, + "platform_after_set": false, + "private_unix": [ + true, + true + ] + }, + "self_exec": false, + "constructor_self_exec": false, + "constructor_spawn": false + }, + { + "name": "read-only", + "flags": { + "read": true, + "write": false, + "shell": false + }, + "observations": { + "stdio_tool": true, + "package_read": true, + "scratch_write": true, + "scratch_read": true, + "project_read": true, + "project_list": true, + "project_write": false, + "written_project_read": false, + "private_read": false, + "private_list": false, + "private_write": false, + "protected_read": false, + "protected_write": false, + "symlink_private_read": false, + "hardlink_private": false, + "project_rename": false, + "inherited_descriptor": false, + "thread": true, + "package_hardlink": false, + "package_alias_write": false, + "thread_reads": [ + true, + false + ], + "thread_shell": false, + "shell": false, + "native_fork": false, + "child_reads": null, + "native_child_reads": null, + "cannot_relax": true, + "constructor_private_read": false, + "constructor_fork": false, + "native_spawn": false, + "platform_status_known": true, + "platform_before": false, + "platform_after_set": false, + "private_unix": [ + true, + true + ] + }, + "self_exec": false, + "constructor_self_exec": false, + "constructor_spawn": false + }, + { + "name": "write-without-read", + "flags": { + "read": false, + "write": true, + "shell": false + }, + "observations": { + "stdio_tool": true, + "package_read": true, + "scratch_write": true, + "scratch_read": true, + "project_read": false, + "project_list": false, + "project_write": true, + "written_project_read": false, + "private_read": false, + "private_list": false, + "private_write": false, + "protected_read": false, + "protected_write": false, + "symlink_private_read": false, + "hardlink_private": false, + "project_rename": false, + "inherited_descriptor": false, + "thread": true, + "package_hardlink": false, + "package_alias_write": false, + "thread_reads": [ + false, + false + ], + "thread_shell": false, + "shell": false, + "native_fork": false, + "child_reads": null, + "native_child_reads": null, + "cannot_relax": true, + "constructor_private_read": false, + "constructor_fork": false, + "native_spawn": false, + "platform_status_known": true, + "platform_before": false, + "platform_after_set": false, + "private_unix": [ + true, + true + ] + }, + "self_exec": false, + "constructor_self_exec": false, + "constructor_spawn": false + }, + { + "name": "shell-without-read", + "flags": { + "read": false, + "write": false, + "shell": true + }, + "observations": { + "stdio_tool": true, + "package_read": true, + "scratch_write": true, + "scratch_read": true, + "project_read": false, + "project_list": false, + "project_write": false, + "written_project_read": false, + "private_read": false, + "private_list": false, + "private_write": false, + "protected_read": false, + "protected_write": false, + "symlink_private_read": false, + "hardlink_private": false, + "project_rename": false, + "inherited_descriptor": false, + "thread": true, + "package_hardlink": false, + "package_alias_write": false, + "thread_reads": [ + false, + false + ], + "thread_shell": true, + "shell": true, + "native_fork": true, + "child_reads": [ + false, + false + ], + "native_child_reads": [ + false, + false + ], + "cannot_relax": true, + "constructor_private_read": false, + "constructor_fork": true, + "native_spawn": true, + "platform_status_known": true, + "platform_before": false, + "platform_after_set": false, + "private_unix": [ + true, + true + ] + }, + "self_exec": true, + "constructor_self_exec": true, + "constructor_spawn": true + }, + { + "name": "read-write-without-shell", + "flags": { + "read": true, + "write": true, + "shell": false + }, + "observations": { + "stdio_tool": true, + "package_read": true, + "scratch_write": true, + "scratch_read": true, + "project_read": true, + "project_list": true, + "project_write": true, + "written_project_read": true, + "private_read": false, + "private_list": false, + "private_write": false, + "protected_read": false, + "protected_write": false, + "symlink_private_read": false, + "hardlink_private": false, + "project_rename": false, + "inherited_descriptor": false, + "thread": true, + "package_hardlink": false, + "package_alias_write": false, + "thread_reads": [ + true, + false + ], + "thread_shell": false, + "shell": false, + "native_fork": false, + "child_reads": null, + "native_child_reads": null, + "cannot_relax": true, + "constructor_private_read": false, + "constructor_fork": false, + "native_spawn": false, + "platform_status_known": true, + "platform_before": false, + "platform_after_set": false, + "private_unix": [ + true, + true + ] + }, + "self_exec": false, + "constructor_self_exec": false, + "constructor_spawn": false + }, + { + "name": "read-shell-without-write", + "flags": { + "read": true, + "write": false, + "shell": true + }, + "observations": { + "stdio_tool": true, + "package_read": true, + "scratch_write": true, + "scratch_read": true, + "project_read": true, + "project_list": true, + "project_write": false, + "written_project_read": false, + "private_read": false, + "private_list": false, + "private_write": false, + "protected_read": false, + "protected_write": false, + "symlink_private_read": false, + "hardlink_private": false, + "project_rename": false, + "inherited_descriptor": false, + "thread": true, + "package_hardlink": false, + "package_alias_write": false, + "thread_reads": [ + true, + false + ], + "thread_shell": true, + "shell": true, + "native_fork": true, + "child_reads": [ + true, + false + ], + "native_child_reads": [ + true, + false + ], + "cannot_relax": true, + "constructor_private_read": false, + "constructor_fork": true, + "native_spawn": true, + "platform_status_known": true, + "platform_before": false, + "platform_after_set": false, + "private_unix": [ + true, + true + ] + }, + "self_exec": true, + "constructor_self_exec": true, + "constructor_spawn": true + }, + { + "name": "write-shell-without-read", + "flags": { + "read": false, + "write": true, + "shell": true + }, + "observations": { + "stdio_tool": true, + "package_read": true, + "scratch_write": true, + "scratch_read": true, + "project_read": false, + "project_list": false, + "project_write": true, + "written_project_read": false, + "private_read": false, + "private_list": false, + "private_write": false, + "protected_read": false, + "protected_write": false, + "symlink_private_read": false, + "hardlink_private": false, + "project_rename": false, + "inherited_descriptor": false, + "thread": true, + "package_hardlink": false, + "package_alias_write": false, + "thread_reads": [ + false, + false + ], + "thread_shell": true, + "shell": true, + "native_fork": true, + "child_reads": [ + false, + false + ], + "native_child_reads": [ + false, + false + ], + "cannot_relax": true, + "constructor_private_read": false, + "constructor_fork": true, + "native_spawn": true, + "platform_status_known": true, + "platform_before": false, + "platform_after_set": false, + "private_unix": [ + true, + true + ] + }, + "self_exec": true, + "constructor_self_exec": true, + "constructor_spawn": true + }, + { + "name": "declared-read-write-shell", + "flags": { + "read": true, + "write": true, + "shell": true + }, + "observations": { + "stdio_tool": true, + "package_read": true, + "scratch_write": true, + "scratch_read": true, + "project_read": true, + "project_list": true, + "project_write": true, + "written_project_read": true, + "private_read": false, + "private_list": false, + "private_write": false, + "protected_read": false, + "protected_write": false, + "symlink_private_read": false, + "hardlink_private": false, + "project_rename": false, + "inherited_descriptor": false, + "thread": true, + "package_hardlink": false, + "package_alias_write": false, + "thread_reads": [ + true, + false + ], + "thread_shell": true, + "shell": true, + "native_fork": true, + "child_reads": [ + true, + false + ], + "native_child_reads": [ + true, + false + ], + "cannot_relax": true, + "constructor_private_read": false, + "constructor_fork": true, + "native_spawn": true, + "platform_status_known": true, + "platform_before": false, + "platform_after_set": false, + "private_unix": [ + true, + true + ] + }, + "self_exec": true, + "constructor_self_exec": true, + "constructor_spawn": true + } + ] +} diff --git a/scripts/probes/plugin-confinement/evidence/macos-send-result-local/matrix.log b/scripts/probes/plugin-confinement/evidence/macos-send-result-local/matrix.log new file mode 100644 index 00000000..747cec1e --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-send-result-local/matrix.log @@ -0,0 +1,547 @@ +{ + "recorded_at": "2026-10-31T05:41:47.763Z", + "kernel_release": "25.6.0", + "sources": [ + "run.mts", + "macos_policy.mts", + "macos_rights.h", + "macos_datagram.h", + "macos_datagram_race.h", + "macos_python.c", + "macos_node.c", + "native_exec.c", + "node_bootstrap.cjs", + "fixture.py", + "fixture.cjs", + "private_unix.cjs", + "process_policy.h", + "linux_filter.h", + "linux_exec.c", + "linux_initial_exec.h", + "fixture_native.c", + "macos_exec.c", + "macos_stage.mts" + ], + "source_sha256": "382f0ddb6f3fb60ec7395a6bb769191c64ffbce9f059bb4654cebe3c13fbe07a", + "platform": "darwin", + "architecture": "arm64", + "runtime": "native", + "version": "fixture-v2", + "signing_identifier": "com.cyberdyne.probe.bootstrap.e09c3ff1-0946-428b-a905-bd9fae300fae", + "socket_broker_candidate": false, + "private_stream_candidate": false, + "macos_private_unix_candidate": true, + "mechanism": "fresh signing identifier on trusted launcher + exact-target Seatbelt exec rule before any runtime instruction; target signature unchanged; experimental subject-identity candidate", + "limitation": "experimental native mechanisms; macOS uses deprecated Seatbelt API; not production packaging or Windows acceptance", + "unsupported_cases": [], + "rows": [ + { + "name": "unconfined-control", + "flags": { + "read": true, + "write": true, + "shell": true, + "unrestricted": true + }, + "observations": { + "stdio_tool": true, + "package_read": true, + "scratch_write": true, + "scratch_read": true, + "project_read": true, + "project_list": true, + "project_write": true, + "written_project_read": true, + "private_read": true, + "private_list": true, + "private_write": true, + "protected_read": true, + "protected_write": true, + "symlink_private_read": true, + "hardlink_private": true, + "project_rename": true, + "inherited_descriptor": false, + "thread": true, + "package_hardlink": true, + "package_alias_write": true, + "thread_reads": [ + true, + true + ], + "thread_shell": true, + "shell": true, + "native_fork": true, + "child_reads": [ + true, + true + ], + "native_child_reads": [ + true, + true + ], + "cannot_relax": null, + "constructor_private_read": true, + "constructor_fork": true, + "native_spawn": true, + "platform_status_known": true, + "platform_before": false, + "platform_after_set": false, + "private_unix": [ + true, + true + ] + }, + "self_exec": true, + "constructor_self_exec": true, + "constructor_spawn": true + }, + { + "name": "no-capabilities", + "flags": { + "read": false, + "write": false, + "shell": false + }, + "observations": { + "stdio_tool": true, + "package_read": true, + "scratch_write": true, + "scratch_read": true, + "project_read": false, + "project_list": false, + "project_write": false, + "written_project_read": false, + "private_read": false, + "private_list": false, + "private_write": false, + "protected_read": false, + "protected_write": false, + "symlink_private_read": false, + "hardlink_private": false, + "project_rename": false, + "inherited_descriptor": false, + "thread": true, + "package_hardlink": false, + "package_alias_write": false, + "thread_reads": [ + false, + false + ], + "thread_shell": false, + "shell": false, + "native_fork": false, + "child_reads": null, + "native_child_reads": null, + "cannot_relax": true, + "constructor_private_read": false, + "constructor_fork": false, + "native_spawn": false, + "platform_status_known": true, + "platform_before": false, + "platform_after_set": false, + "private_unix": [ + true, + true + ] + }, + "self_exec": false, + "constructor_self_exec": false, + "constructor_spawn": false + }, + { + "name": "read-only", + "flags": { + "read": true, + "write": false, + "shell": false + }, + "observations": { + "stdio_tool": true, + "package_read": true, + "scratch_write": true, + "scratch_read": true, + "project_read": true, + "project_list": true, + "project_write": false, + "written_project_read": false, + "private_read": false, + "private_list": false, + "private_write": false, + "protected_read": false, + "protected_write": false, + "symlink_private_read": false, + "hardlink_private": false, + "project_rename": false, + "inherited_descriptor": false, + "thread": true, + "package_hardlink": false, + "package_alias_write": false, + "thread_reads": [ + true, + false + ], + "thread_shell": false, + "shell": false, + "native_fork": false, + "child_reads": null, + "native_child_reads": null, + "cannot_relax": true, + "constructor_private_read": false, + "constructor_fork": false, + "native_spawn": false, + "platform_status_known": true, + "platform_before": false, + "platform_after_set": false, + "private_unix": [ + true, + true + ] + }, + "self_exec": false, + "constructor_self_exec": false, + "constructor_spawn": false + }, + { + "name": "write-without-read", + "flags": { + "read": false, + "write": true, + "shell": false + }, + "observations": { + "stdio_tool": true, + "package_read": true, + "scratch_write": true, + "scratch_read": true, + "project_read": false, + "project_list": false, + "project_write": true, + "written_project_read": false, + "private_read": false, + "private_list": false, + "private_write": false, + "protected_read": false, + "protected_write": false, + "symlink_private_read": false, + "hardlink_private": false, + "project_rename": false, + "inherited_descriptor": false, + "thread": true, + "package_hardlink": false, + "package_alias_write": false, + "thread_reads": [ + false, + false + ], + "thread_shell": false, + "shell": false, + "native_fork": false, + "child_reads": null, + "native_child_reads": null, + "cannot_relax": true, + "constructor_private_read": false, + "constructor_fork": false, + "native_spawn": false, + "platform_status_known": true, + "platform_before": false, + "platform_after_set": false, + "private_unix": [ + true, + true + ] + }, + "self_exec": false, + "constructor_self_exec": false, + "constructor_spawn": false + }, + { + "name": "shell-without-read", + "flags": { + "read": false, + "write": false, + "shell": true + }, + "observations": { + "stdio_tool": true, + "package_read": true, + "scratch_write": true, + "scratch_read": true, + "project_read": false, + "project_list": false, + "project_write": false, + "written_project_read": false, + "private_read": false, + "private_list": false, + "private_write": false, + "protected_read": false, + "protected_write": false, + "symlink_private_read": false, + "hardlink_private": false, + "project_rename": false, + "inherited_descriptor": false, + "thread": true, + "package_hardlink": false, + "package_alias_write": false, + "thread_reads": [ + false, + false + ], + "thread_shell": true, + "shell": true, + "native_fork": true, + "child_reads": [ + false, + false + ], + "native_child_reads": [ + false, + false + ], + "cannot_relax": true, + "constructor_private_read": false, + "constructor_fork": true, + "native_spawn": true, + "platform_status_known": true, + "platform_before": false, + "platform_after_set": false, + "private_unix": [ + true, + true + ] + }, + "self_exec": true, + "constructor_self_exec": true, + "constructor_spawn": true + }, + { + "name": "read-write-without-shell", + "flags": { + "read": true, + "write": true, + "shell": false + }, + "observations": { + "stdio_tool": true, + "package_read": true, + "scratch_write": true, + "scratch_read": true, + "project_read": true, + "project_list": true, + "project_write": true, + "written_project_read": true, + "private_read": false, + "private_list": false, + "private_write": false, + "protected_read": false, + "protected_write": false, + "symlink_private_read": false, + "hardlink_private": false, + "project_rename": false, + "inherited_descriptor": false, + "thread": true, + "package_hardlink": false, + "package_alias_write": false, + "thread_reads": [ + true, + false + ], + "thread_shell": false, + "shell": false, + "native_fork": false, + "child_reads": null, + "native_child_reads": null, + "cannot_relax": true, + "constructor_private_read": false, + "constructor_fork": false, + "native_spawn": false, + "platform_status_known": true, + "platform_before": false, + "platform_after_set": false, + "private_unix": [ + true, + true + ] + }, + "self_exec": false, + "constructor_self_exec": false, + "constructor_spawn": false + }, + { + "name": "read-shell-without-write", + "flags": { + "read": true, + "write": false, + "shell": true + }, + "observations": { + "stdio_tool": true, + "package_read": true, + "scratch_write": true, + "scratch_read": true, + "project_read": true, + "project_list": true, + "project_write": false, + "written_project_read": false, + "private_read": false, + "private_list": false, + "private_write": false, + "protected_read": false, + "protected_write": false, + "symlink_private_read": false, + "hardlink_private": false, + "project_rename": false, + "inherited_descriptor": false, + "thread": true, + "package_hardlink": false, + "package_alias_write": false, + "thread_reads": [ + true, + false + ], + "thread_shell": true, + "shell": true, + "native_fork": true, + "child_reads": [ + true, + false + ], + "native_child_reads": [ + true, + false + ], + "cannot_relax": true, + "constructor_private_read": false, + "constructor_fork": true, + "native_spawn": true, + "platform_status_known": true, + "platform_before": false, + "platform_after_set": false, + "private_unix": [ + true, + true + ] + }, + "self_exec": true, + "constructor_self_exec": true, + "constructor_spawn": true + }, + { + "name": "write-shell-without-read", + "flags": { + "read": false, + "write": true, + "shell": true + }, + "observations": { + "stdio_tool": true, + "package_read": true, + "scratch_write": true, + "scratch_read": true, + "project_read": false, + "project_list": false, + "project_write": true, + "written_project_read": false, + "private_read": false, + "private_list": false, + "private_write": false, + "protected_read": false, + "protected_write": false, + "symlink_private_read": false, + "hardlink_private": false, + "project_rename": false, + "inherited_descriptor": false, + "thread": true, + "package_hardlink": false, + "package_alias_write": false, + "thread_reads": [ + false, + false + ], + "thread_shell": true, + "shell": true, + "native_fork": true, + "child_reads": [ + false, + false + ], + "native_child_reads": [ + false, + false + ], + "cannot_relax": true, + "constructor_private_read": false, + "constructor_fork": true, + "native_spawn": true, + "platform_status_known": true, + "platform_before": false, + "platform_after_set": false, + "private_unix": [ + true, + true + ] + }, + "self_exec": true, + "constructor_self_exec": true, + "constructor_spawn": true + }, + { + "name": "declared-read-write-shell", + "flags": { + "read": true, + "write": true, + "shell": true + }, + "observations": { + "stdio_tool": true, + "package_read": true, + "scratch_write": true, + "scratch_read": true, + "project_read": true, + "project_list": true, + "project_write": true, + "written_project_read": true, + "private_read": false, + "private_list": false, + "private_write": false, + "protected_read": false, + "protected_write": false, + "symlink_private_read": false, + "hardlink_private": false, + "project_rename": false, + "inherited_descriptor": false, + "thread": true, + "package_hardlink": false, + "package_alias_write": false, + "thread_reads": [ + true, + false + ], + "thread_shell": true, + "shell": true, + "native_fork": true, + "child_reads": [ + true, + false + ], + "native_child_reads": [ + true, + false + ], + "cannot_relax": true, + "constructor_private_read": false, + "constructor_fork": true, + "native_spawn": true, + "platform_status_known": true, + "platform_before": false, + "platform_after_set": false, + "private_unix": [ + true, + true + ] + }, + "self_exec": true, + "constructor_self_exec": true, + "constructor_spawn": true + } + ] +} diff --git a/scripts/probes/plugin-confinement/evidence/macos-send-result-local/source-binding.json b/scripts/probes/plugin-confinement/evidence/macos-send-result-local/source-binding.json new file mode 100644 index 00000000..d61dc44e --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-send-result-local/source-binding.json @@ -0,0 +1,23 @@ +{ + "scope": "Local Darwin arm64 diagnostic verification only; no hosted, production admission or complete platform acceptance claim. unix-stale-errno-guard is an intentionally invalid copied-fixture counterexample, not acceptance.", + "reports": { + "matrix.json": "382f0ddb6f3fb60ec7395a6bb769191c64ffbce9f059bb4654cebe3c13fbe07a", + "exec.json": "7a06af58c27b8b134dd4833f6947b1a27623c4c3ef34c74542528d05ae284723", + "unix-boundary.json": "c5c5989e24f0223fe09f3b41aded63a49606af4a6c62afcfccbc881bdcc7697d" + }, + "evidence_sha256": { + "exec.json": "7559db1d97edf066e6674b3b7a67ea49c8701d6a49e499ee4d2f16d63d7807eb", + "exec.log": "7559db1d97edf066e6674b3b7a67ea49c8701d6a49e499ee4d2f16d63d7807eb", + "matrix.json": "85034482db415b793006b3b75563497f1415436cf19bf5623c58a4296ec6f7cd", + "matrix.log": "85034482db415b793006b3b75563497f1415436cf19bf5623c58a4296ec6f7cd", + "unix-boundary.json": "d169b59468dbcb297d3493a32035c219deb61fb6efe8557b995937aba93fc01e", + "unix-boundary.log": "d169b59468dbcb297d3493a32035c219deb61fb6efe8557b995937aba93fc01e", + "unix-datagram-bind-failure.log": "b10144096f8b7431a731ef1b4b13620daffb74486e685330bfae15fd276d56f8", + "unix-dropped-rights.log": "8b39f894ca90701eec80ada2932923edf5d576c6e717b4b571f6113a61749423", + "unix-missing-scope.log": "63114f11dbf5a689ab132c1d0635eb0bbcb628022a3cebc88dcdf10b7038b158", + "unix-rights-path-reader.log": "9fd81154f97b5e3612c795cb054c1966a028d49830f7fd9e5d1554015a118db4", + "unix-stale-errno-guard.json": "f3934bf4ca38a4dc231d12f38f0e3d648474977b563620b97e6eddc28698de99", + "unix-stale-errno-guard.log": "f3934bf4ca38a4dc231d12f38f0e3d648474977b563620b97e6eddc28698de99", + "unix-zero-send.log": "5f75dcc55134cd929c7a13c4d9277b94b8934e476ae42973691a5f76156b545b" + } +} diff --git a/scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-boundary.json b/scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-boundary.json new file mode 100644 index 00000000..d29e1c1b --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-boundary.json @@ -0,0 +1,991 @@ +{ + "recorded_at": "2026-10-31T05:37:15.374Z", + "platform": "darwin", + "architecture": "arm64", + "kernel_release": "25.6.0", + "sources": [ + "macos_private_ipc.mts", + "macos_policy.mts", + "macos_rights.h", + "macos_datagram.h", + "macos_datagram_race.h", + "macos_datagram_owner.mts", + "macos_datagram_owner.c", + "fixture_native.c", + "process_policy.h", + "macos_exec.c" + ], + "source_sha256": "c5c5989e24f0223fe09f3b41aded63a49606af4a6c62afcfccbc881bdcc7697d", + "target_sha256": "b9cf30d40960b7d2085067a0c0165217d9812be979915e5533ef2e1c93a626fa", + "receiver_startup_controls": { + "missing_program_refused": true, + "failed_bind_refused": true + }, + "rows": [ + { + "name": "unconfined", + "flags": { + "read": true, + "write": true, + "shell": true, + "unrestricted": true + }, + "observed": { + "started": true, + "pid": 52872, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": true, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": true, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 8, + "refused": 0, + "swaps": 17, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": true, + "sent": true, + "acknowledged": true + }, + "dgram_sendto": { + "connected": false, + "sent": true, + "acknowledged": true + }, + "dgram_sendmsg": { + "connected": false, + "sent": true, + "acknowledged": true + }, + "dgram_alias_connect": { + "connected": true, + "sent": true, + "acknowledged": true + }, + "dgram_alias_sendto": { + "connected": false, + "sent": true, + "acknowledged": true + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": true, + "acknowledged": true + }, + "direct": { + "connected": true, + "sent": true, + "acknowledged": true + }, + "hardlink": { + "connected": true, + "sent": true, + "acknowledged": true + }, + "symlink": { + "connected": true, + "sent": true, + "acknowledged": true + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 3, + "owner_received_fixture": true, + "datagram_receipts": 15, + "owner_datagram_received_fixture": true + }, + { + "name": "r0w0s0", + "flags": { + "read": false, + "write": false, + "shell": false + }, + "observed": { + "started": true, + "pid": 52875, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r0w0s1", + "flags": { + "read": false, + "write": false, + "shell": true + }, + "observed": { + "started": true, + "pid": 52877, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r0w1s0", + "flags": { + "read": false, + "write": true, + "shell": false + }, + "observed": { + "started": true, + "pid": 52880, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 17, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r0w1s1", + "flags": { + "read": false, + "write": true, + "shell": true + }, + "observed": { + "started": true, + "pid": 52882, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r1w0s0", + "flags": { + "read": true, + "write": false, + "shell": false + }, + "observed": { + "started": true, + "pid": 52885, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r1w0s1", + "flags": { + "read": true, + "write": false, + "shell": true + }, + "observed": { + "started": true, + "pid": 52887, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r1w1s0", + "flags": { + "read": true, + "write": true, + "shell": false + }, + "observed": { + "started": true, + "pid": 52890, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r1w1s1", + "flags": { + "read": true, + "write": true, + "shell": true + }, + "observed": { + "started": true, + "pid": 52892, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + } + ], + "scope": "Experimental pre-runtime native UNIX stream/datagram/descriptor controls; complete IPC/proxy/ownership and App acceptance remain required." +} diff --git a/scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-boundary.log b/scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-boundary.log new file mode 100644 index 00000000..d29e1c1b --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-boundary.log @@ -0,0 +1,991 @@ +{ + "recorded_at": "2026-10-31T05:37:15.374Z", + "platform": "darwin", + "architecture": "arm64", + "kernel_release": "25.6.0", + "sources": [ + "macos_private_ipc.mts", + "macos_policy.mts", + "macos_rights.h", + "macos_datagram.h", + "macos_datagram_race.h", + "macos_datagram_owner.mts", + "macos_datagram_owner.c", + "fixture_native.c", + "process_policy.h", + "macos_exec.c" + ], + "source_sha256": "c5c5989e24f0223fe09f3b41aded63a49606af4a6c62afcfccbc881bdcc7697d", + "target_sha256": "b9cf30d40960b7d2085067a0c0165217d9812be979915e5533ef2e1c93a626fa", + "receiver_startup_controls": { + "missing_program_refused": true, + "failed_bind_refused": true + }, + "rows": [ + { + "name": "unconfined", + "flags": { + "read": true, + "write": true, + "shell": true, + "unrestricted": true + }, + "observed": { + "started": true, + "pid": 52872, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": true, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": true, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 8, + "refused": 0, + "swaps": 17, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": true, + "sent": true, + "acknowledged": true + }, + "dgram_sendto": { + "connected": false, + "sent": true, + "acknowledged": true + }, + "dgram_sendmsg": { + "connected": false, + "sent": true, + "acknowledged": true + }, + "dgram_alias_connect": { + "connected": true, + "sent": true, + "acknowledged": true + }, + "dgram_alias_sendto": { + "connected": false, + "sent": true, + "acknowledged": true + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": true, + "acknowledged": true + }, + "direct": { + "connected": true, + "sent": true, + "acknowledged": true + }, + "hardlink": { + "connected": true, + "sent": true, + "acknowledged": true + }, + "symlink": { + "connected": true, + "sent": true, + "acknowledged": true + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 3, + "owner_received_fixture": true, + "datagram_receipts": 15, + "owner_datagram_received_fixture": true + }, + { + "name": "r0w0s0", + "flags": { + "read": false, + "write": false, + "shell": false + }, + "observed": { + "started": true, + "pid": 52875, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r0w0s1", + "flags": { + "read": false, + "write": false, + "shell": true + }, + "observed": { + "started": true, + "pid": 52877, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r0w1s0", + "flags": { + "read": false, + "write": true, + "shell": false + }, + "observed": { + "started": true, + "pid": 52880, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 17, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r0w1s1", + "flags": { + "read": false, + "write": true, + "shell": true + }, + "observed": { + "started": true, + "pid": 52882, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r1w0s0", + "flags": { + "read": true, + "write": false, + "shell": false + }, + "observed": { + "started": true, + "pid": 52885, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r1w0s1", + "flags": { + "read": true, + "write": false, + "shell": true + }, + "observed": { + "started": true, + "pid": 52887, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r1w1s0", + "flags": { + "read": true, + "write": true, + "shell": false + }, + "observed": { + "started": true, + "pid": 52890, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r1w1s1", + "flags": { + "read": true, + "write": true, + "shell": true + }, + "observed": { + "started": true, + "pid": 52892, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + } + ], + "scope": "Experimental pre-runtime native UNIX stream/datagram/descriptor controls; complete IPC/proxy/ownership and App acceptance remain required." +} diff --git a/scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-datagram-bind-failure.log b/scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-datagram-bind-failure.log new file mode 100644 index 00000000..3d921423 --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-datagram-bind-failure.log @@ -0,0 +1,20 @@ +node:internal/modules/run_main:123 + triggerUncaughtException( + ^ + +AssertionError [ERR_ASSERTION]: private datagram race control failed: {"name":"unconfined","flags":{"read":true,"write":true,"shell":true,"unrestricted":true},"observed":{"started":true,"pid":52932,"private_unix":[true,true],"private_peer_checks":8,"private_peer_matches":true,"hardlink_created":true,"symlink_created":true,"private_aliases":[true,true],"rights":{"sent":true,"original_closed":true,"token":true,"truncated":false,"received":true,"same_inode":true,"readable":true,"written":true,"cloexec":true},"rights_path_replaced":true,"private_datagram":[true,true,true],"datagram_symlink_created":true,"datagram_race":{"private_control":false,"host_control":false,"settled":false,"failed":false,"attempts":0,"private_acks":0,"host_acks":0,"refused":0,"swaps":0,"failure_stage":"client_bind","failure_errno":48,"failure_return":null},"dgram_connect":{"connected":true,"sent":true,"acknowledged":true},"dgram_sendto":{"connected":false,"sent":true,"acknowledged":true},"dgram_sendmsg":{"connected":false,"sent":true,"acknowledged":true},"dgram_alias_connect":{"connected":true,"sent":true,"acknowledged":true},"dgram_alias_sendto":{"connected":false,"sent":true,"acknowledged":true},"dgram_alias_sendmsg":{"connected":false,"sent":true,"acknowledged":true},"direct":{"connected":true,"sent":true,"acknowledged":true},"hardlink":{"connected":true,"sent":true,"acknowledged":true},"symlink":{"connected":true,"sent":true,"acknowledged":true}},"rights_payload":"AB","rights_link_count":0,"kernel_diagnostic":{"pid":52932,"status":0,"signal":null,"error":"","stderr":"","output":"[]"},"owner_receipts":3,"owner_received_fixture":true,"datagram_receipts":6,"owner_datagram_received_fixture":true} + +false !== true + + at check (file:///private/tmp/cyber-final-send-return-3288_esm/macos-datagram-bind-failure/macos_private_ipc.mts:150:10) + at file:///private/tmp/cyber-final-send-return-3288_esm/macos-datagram-bind-failure/macos_private_ipc.mts:207:5 + at process.processTicksAndRejections (node:internal/process/task_queues:105:5) { + generatedMessage: false, + code: 'ERR_ASSERTION', + actual: false, + expected: true, + operator: 'strictEqual', + diff: 'simple' +} + +Node.js v22.20.0 diff --git a/scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-dropped-rights.log b/scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-dropped-rights.log new file mode 100644 index 00000000..1d764473 --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-dropped-rights.log @@ -0,0 +1,56 @@ +node:internal/modules/run_main:123 + triggerUncaughtException( + ^ + +AssertionError [ERR_ASSERTION]: private SCM_RIGHTS exchange failed: {"name":"r0w0s0","flags":{"read":false,"write":false,"shell":false},"observed":{"started":true,"pid":53030,"private_unix":[true,true],"private_peer_checks":8,"private_peer_matches":true,"hardlink_created":false,"symlink_created":true,"private_aliases":[true,true],"rights":{"sent":true,"original_closed":true,"token":true,"truncated":false,"received":false,"same_inode":false,"readable":false,"written":false,"cloexec":false},"rights_path_replaced":true,"private_datagram":[true,true,true],"datagram_symlink_created":true,"datagram_race":{"private_control":true,"host_control":false,"settled":true,"failed":false,"attempts":16,"private_acks":8,"host_acks":0,"refused":8,"swaps":16,"failure_stage":"","failure_errno":0,"failure_return":null},"dgram_connect":{"connected":false,"sent":false,"acknowledged":false},"dgram_sendto":{"connected":false,"sent":false,"acknowledged":false},"dgram_sendmsg":{"connected":false,"sent":false,"acknowledged":false},"dgram_alias_connect":{"connected":false,"sent":false,"acknowledged":false},"dgram_alias_sendto":{"connected":false,"sent":false,"acknowledged":false},"dgram_alias_sendmsg":{"connected":false,"sent":false,"acknowledged":false},"direct":{"connected":false,"sent":false,"acknowledged":false},"hardlink":{"connected":false,"sent":false,"acknowledged":false},"symlink":{"connected":false,"sent":false,"acknowledged":false}},"rights_payload":"A","rights_link_count":0,"owner_receipts":0,"owner_received_fixture":false,"datagram_receipts":0,"owner_datagram_received_fixture":false} ++ actual - expected + + { ++ cloexec: false, +- cloexec: true, + original_closed: true, ++ readable: false, ++ received: false, ++ same_inode: false, +- readable: true, +- received: true, +- same_inode: true, + sent: true, + token: true, + truncated: false, ++ written: false +- written: true + } + + at check (file:///Users/edvane/work/cybercode-plugin-native-host-admission/scripts/probes/plugin-confinement/macos_private_ipc.mts:142:10) + at file:///Users/edvane/work/cybercode-plugin-native-host-admission/scripts/probes/plugin-confinement/macos_private_ipc.mts:207:5 + at process.processTicksAndRejections (node:internal/process/task_queues:105:5) { + generatedMessage: false, + code: 'ERR_ASSERTION', + actual: { + sent: true, + original_closed: true, + token: true, + truncated: false, + received: false, + same_inode: false, + readable: false, + written: false, + cloexec: false + }, + expected: { + sent: true, + original_closed: true, + token: true, + truncated: false, + received: true, + same_inode: true, + readable: true, + written: true, + cloexec: true + }, + operator: 'deepStrictEqual', + diff: 'simple' +} + +Node.js v22.20.0 diff --git a/scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-missing-scope.log b/scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-missing-scope.log new file mode 100644 index 00000000..5c3fc897 --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-missing-scope.log @@ -0,0 +1,20 @@ +node:internal/modules/run_main:123 + triggerUncaughtException( + ^ + +AssertionError [ERR_ASSERTION]: macOS datagram endpoint escaped scratch: {"name":"r0w0s0","flags":{"read":false,"write":false,"shell":false},"observed":{"started":true,"pid":52913,"private_unix":[true,true],"private_peer_checks":8,"private_peer_matches":true,"hardlink_created":false,"symlink_created":true,"private_aliases":[true,true],"rights":{"sent":true,"original_closed":true,"token":true,"truncated":false,"received":true,"same_inode":true,"readable":true,"written":true,"cloexec":true},"rights_path_replaced":true,"private_datagram":[true,true,true],"datagram_symlink_created":true,"datagram_race":{"private_control":true,"host_control":true,"settled":true,"failed":false,"attempts":16,"private_acks":8,"host_acks":8,"refused":0,"swaps":16,"failure_stage":"","failure_errno":0,"failure_return":null},"dgram_connect":{"connected":true,"sent":true,"acknowledged":true},"dgram_sendto":{"connected":false,"sent":true,"acknowledged":true},"dgram_sendmsg":{"connected":false,"sent":true,"acknowledged":true},"dgram_alias_connect":{"connected":true,"sent":true,"acknowledged":true},"dgram_alias_sendto":{"connected":false,"sent":true,"acknowledged":true},"dgram_alias_sendmsg":{"connected":false,"sent":true,"acknowledged":true},"direct":{"connected":true,"sent":true,"acknowledged":true},"hardlink":{"connected":false,"sent":false,"acknowledged":false},"symlink":{"connected":true,"sent":true,"acknowledged":true}},"rights_payload":"AB","rights_link_count":0,"owner_receipts":2,"owner_received_fixture":true,"datagram_receipts":15,"owner_datagram_received_fixture":true} + +15 !== 0 + + at check (file:///Users/edvane/work/cybercode-plugin-native-host-admission/scripts/probes/plugin-confinement/macos_private_ipc.mts:159:10) + at file:///Users/edvane/work/cybercode-plugin-native-host-admission/scripts/probes/plugin-confinement/macos_private_ipc.mts:207:5 + at process.processTicksAndRejections (node:internal/process/task_queues:105:5) { + generatedMessage: false, + code: 'ERR_ASSERTION', + actual: 15, + expected: 0, + operator: 'strictEqual', + diff: 'simple' +} + +Node.js v22.20.0 diff --git a/scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-rights-path-reader.log b/scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-rights-path-reader.log new file mode 100644 index 00000000..3a549ef4 --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-rights-path-reader.log @@ -0,0 +1,20 @@ +node:internal/modules/run_main:123 + triggerUncaughtException( + ^ + +AssertionError [ERR_ASSERTION]: received descriptor file effect: {"name":"unconfined","flags":{"read":true,"write":true,"shell":true,"unrestricted":true},"observed":{"started":true,"pid":53049,"private_unix":[true,true],"private_peer_checks":8,"private_peer_matches":true,"hardlink_created":true,"symlink_created":true,"private_aliases":[true,true],"rights":{"sent":true,"original_closed":true,"token":true,"truncated":false,"received":true,"same_inode":true,"readable":true,"written":true,"cloexec":true},"rights_path_replaced":true,"private_datagram":[true,true,true],"datagram_symlink_created":true,"datagram_race":{"private_control":true,"host_control":true,"settled":true,"failed":false,"attempts":16,"private_acks":8,"host_acks":8,"refused":0,"swaps":17,"failure_stage":"","failure_errno":0,"failure_return":null},"dgram_connect":{"connected":true,"sent":true,"acknowledged":true},"dgram_sendto":{"connected":false,"sent":true,"acknowledged":true},"dgram_sendmsg":{"connected":false,"sent":true,"acknowledged":true},"dgram_alias_connect":{"connected":true,"sent":true,"acknowledged":true},"dgram_alias_sendto":{"connected":false,"sent":true,"acknowledged":true},"dgram_alias_sendmsg":{"connected":false,"sent":true,"acknowledged":true},"direct":{"connected":true,"sent":true,"acknowledged":true},"hardlink":{"connected":true,"sent":true,"acknowledged":true},"symlink":{"connected":true,"sent":true,"acknowledged":true}},"rights_payload":"XX","rights_link_count":0,"owner_receipts":3,"owner_received_fixture":true,"datagram_receipts":15,"owner_datagram_received_fixture":true} + +'XX' !== 'AB' + + at check (file:///private/tmp/cyber-final-send-return-3288_esm/macos-rights-path-reader/macos_private_ipc.mts:146:10) + at file:///private/tmp/cyber-final-send-return-3288_esm/macos-rights-path-reader/macos_private_ipc.mts:207:5 + at process.processTicksAndRejections (node:internal/process/task_queues:105:5) { + generatedMessage: false, + code: 'ERR_ASSERTION', + actual: 'XX', + expected: 'AB', + operator: 'strictEqual', + diff: 'simple' +} + +Node.js v22.20.0 diff --git a/scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-stale-errno-guard.json b/scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-stale-errno-guard.json new file mode 100644 index 00000000..e7e0d3ae --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-stale-errno-guard.json @@ -0,0 +1,991 @@ +{ + "recorded_at": "2026-10-31T05:37:23.761Z", + "platform": "darwin", + "architecture": "arm64", + "kernel_release": "25.6.0", + "sources": [ + "macos_private_ipc.mts", + "macos_policy.mts", + "macos_rights.h", + "macos_datagram.h", + "macos_datagram_race.h", + "macos_datagram_owner.mts", + "macos_datagram_owner.c", + "fixture_native.c", + "process_policy.h", + "macos_exec.c" + ], + "source_sha256": "13eb33cb10ad660aa89649ee5e29cb9d6772232d340622bd8d1532f3c5cd19c0", + "target_sha256": "d2e4a081f3c22c7971ae3f8dfa25a0ef80c95e2ac1492414b956c9eb7c311d34", + "receiver_startup_controls": { + "missing_program_refused": true, + "failed_bind_refused": true + }, + "rows": [ + { + "name": "unconfined", + "flags": { + "read": true, + "write": true, + "shell": true, + "unrestricted": true + }, + "observed": { + "started": true, + "pid": 52988, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": true, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": true, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 8, + "refused": 0, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": true, + "sent": true, + "acknowledged": true + }, + "dgram_sendto": { + "connected": false, + "sent": true, + "acknowledged": true + }, + "dgram_sendmsg": { + "connected": false, + "sent": true, + "acknowledged": true + }, + "dgram_alias_connect": { + "connected": true, + "sent": true, + "acknowledged": true + }, + "dgram_alias_sendto": { + "connected": false, + "sent": true, + "acknowledged": true + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": true, + "acknowledged": true + }, + "direct": { + "connected": true, + "sent": true, + "acknowledged": true + }, + "hardlink": { + "connected": true, + "sent": true, + "acknowledged": true + }, + "symlink": { + "connected": true, + "sent": true, + "acknowledged": true + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 3, + "owner_received_fixture": true, + "datagram_receipts": 15, + "owner_datagram_received_fixture": true + }, + { + "name": "r0w0s0", + "flags": { + "read": false, + "write": false, + "shell": false + }, + "observed": { + "started": true, + "pid": 52991, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r0w0s1", + "flags": { + "read": false, + "write": false, + "shell": true + }, + "observed": { + "started": true, + "pid": 52993, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r0w1s0", + "flags": { + "read": false, + "write": true, + "shell": false + }, + "observed": { + "started": true, + "pid": 52996, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r0w1s1", + "flags": { + "read": false, + "write": true, + "shell": true + }, + "observed": { + "started": true, + "pid": 52998, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 0, + "host_acks": 0, + "refused": 16, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r1w0s0", + "flags": { + "read": true, + "write": false, + "shell": false + }, + "observed": { + "started": true, + "pid": 53001, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r1w0s1", + "flags": { + "read": true, + "write": false, + "shell": true + }, + "observed": { + "started": true, + "pid": 53003, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r1w1s0", + "flags": { + "read": true, + "write": true, + "shell": false + }, + "observed": { + "started": true, + "pid": 53006, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r1w1s1", + "flags": { + "read": true, + "write": true, + "shell": true + }, + "observed": { + "started": true, + "pid": 53008, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + } + ], + "scope": "Experimental pre-runtime native UNIX stream/datagram/descriptor controls; complete IPC/proxy/ownership and App acceptance remain required." +} diff --git a/scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-stale-errno-guard.log b/scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-stale-errno-guard.log new file mode 100644 index 00000000..e7e0d3ae --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-stale-errno-guard.log @@ -0,0 +1,991 @@ +{ + "recorded_at": "2026-10-31T05:37:23.761Z", + "platform": "darwin", + "architecture": "arm64", + "kernel_release": "25.6.0", + "sources": [ + "macos_private_ipc.mts", + "macos_policy.mts", + "macos_rights.h", + "macos_datagram.h", + "macos_datagram_race.h", + "macos_datagram_owner.mts", + "macos_datagram_owner.c", + "fixture_native.c", + "process_policy.h", + "macos_exec.c" + ], + "source_sha256": "13eb33cb10ad660aa89649ee5e29cb9d6772232d340622bd8d1532f3c5cd19c0", + "target_sha256": "d2e4a081f3c22c7971ae3f8dfa25a0ef80c95e2ac1492414b956c9eb7c311d34", + "receiver_startup_controls": { + "missing_program_refused": true, + "failed_bind_refused": true + }, + "rows": [ + { + "name": "unconfined", + "flags": { + "read": true, + "write": true, + "shell": true, + "unrestricted": true + }, + "observed": { + "started": true, + "pid": 52988, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": true, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": true, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 8, + "refused": 0, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": true, + "sent": true, + "acknowledged": true + }, + "dgram_sendto": { + "connected": false, + "sent": true, + "acknowledged": true + }, + "dgram_sendmsg": { + "connected": false, + "sent": true, + "acknowledged": true + }, + "dgram_alias_connect": { + "connected": true, + "sent": true, + "acknowledged": true + }, + "dgram_alias_sendto": { + "connected": false, + "sent": true, + "acknowledged": true + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": true, + "acknowledged": true + }, + "direct": { + "connected": true, + "sent": true, + "acknowledged": true + }, + "hardlink": { + "connected": true, + "sent": true, + "acknowledged": true + }, + "symlink": { + "connected": true, + "sent": true, + "acknowledged": true + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 3, + "owner_received_fixture": true, + "datagram_receipts": 15, + "owner_datagram_received_fixture": true + }, + { + "name": "r0w0s0", + "flags": { + "read": false, + "write": false, + "shell": false + }, + "observed": { + "started": true, + "pid": 52991, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r0w0s1", + "flags": { + "read": false, + "write": false, + "shell": true + }, + "observed": { + "started": true, + "pid": 52993, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r0w1s0", + "flags": { + "read": false, + "write": true, + "shell": false + }, + "observed": { + "started": true, + "pid": 52996, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r0w1s1", + "flags": { + "read": false, + "write": true, + "shell": true + }, + "observed": { + "started": true, + "pid": 52998, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 0, + "host_acks": 0, + "refused": 16, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r1w0s0", + "flags": { + "read": true, + "write": false, + "shell": false + }, + "observed": { + "started": true, + "pid": 53001, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r1w0s1", + "flags": { + "read": true, + "write": false, + "shell": true + }, + "observed": { + "started": true, + "pid": 53003, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r1w1s0", + "flags": { + "read": true, + "write": true, + "shell": false + }, + "observed": { + "started": true, + "pid": 53006, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + }, + { + "name": "r1w1s1", + "flags": { + "read": true, + "write": true, + "shell": true + }, + "observed": { + "started": true, + "pid": 53008, + "private_unix": [ + true, + true + ], + "private_peer_checks": 8, + "private_peer_matches": true, + "hardlink_created": false, + "symlink_created": true, + "private_aliases": [ + true, + true + ], + "rights": { + "sent": true, + "original_closed": true, + "token": true, + "truncated": false, + "received": true, + "same_inode": true, + "readable": true, + "written": true, + "cloexec": true + }, + "rights_path_replaced": true, + "private_datagram": [ + true, + true, + true + ], + "datagram_symlink_created": true, + "datagram_race": { + "private_control": true, + "host_control": false, + "settled": true, + "failed": false, + "attempts": 16, + "private_acks": 8, + "host_acks": 0, + "refused": 8, + "swaps": 16, + "failure_stage": "", + "failure_errno": 0, + "failure_return": null + }, + "dgram_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_connect": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendto": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "dgram_alias_sendmsg": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "direct": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "hardlink": { + "connected": false, + "sent": false, + "acknowledged": false + }, + "symlink": { + "connected": false, + "sent": false, + "acknowledged": false + } + }, + "rights_payload": "AB", + "rights_link_count": 0, + "owner_receipts": 0, + "owner_received_fixture": false, + "datagram_receipts": 0, + "owner_datagram_received_fixture": false + } + ], + "scope": "Experimental pre-runtime native UNIX stream/datagram/descriptor controls; complete IPC/proxy/ownership and App acceptance remain required." +} diff --git a/scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-zero-send.log b/scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-zero-send.log new file mode 100644 index 00000000..f9ec4c7b --- /dev/null +++ b/scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-zero-send.log @@ -0,0 +1,20 @@ +node:internal/modules/run_main:123 + triggerUncaughtException( + ^ + +AssertionError [ERR_ASSERTION]: datagram mutation failed: {"name":"r0w1s1","flags":{"read":false,"write":true,"shell":true},"observed":{"started":true,"pid":52963,"private_unix":[true,true],"private_peer_checks":8,"private_peer_matches":true,"hardlink_created":false,"symlink_created":true,"private_aliases":[true,true],"rights":{"sent":true,"original_closed":true,"token":true,"truncated":false,"received":true,"same_inode":true,"readable":true,"written":true,"cloexec":true},"rights_path_replaced":true,"private_datagram":[true,true,true],"datagram_symlink_created":true,"datagram_race":{"private_control":true,"host_control":false,"settled":true,"failed":true,"attempts":2,"private_acks":0,"host_acks":0,"refused":1,"swaps":2,"failure_stage":"send_size","failure_errno":0,"failure_return":0},"dgram_connect":{"connected":false,"sent":false,"acknowledged":false},"dgram_sendto":{"connected":false,"sent":false,"acknowledged":false},"dgram_sendmsg":{"connected":false,"sent":false,"acknowledged":false},"dgram_alias_connect":{"connected":false,"sent":false,"acknowledged":false},"dgram_alias_sendto":{"connected":false,"sent":false,"acknowledged":false},"dgram_alias_sendmsg":{"connected":false,"sent":false,"acknowledged":false},"direct":{"connected":false,"sent":false,"acknowledged":false},"hardlink":{"connected":false,"sent":false,"acknowledged":false},"symlink":{"connected":false,"sent":false,"acknowledged":false}},"rights_payload":"AB","rights_link_count":0,"kernel_diagnostic":{"pid":52963,"status":0,"signal":null,"error":"","stderr":"","output":"[{\n \"timezoneName\" : \"\",\n \"messageType\" : \"Error\",\n \"eventType\" : \"logEvent\",\n \"source\" : null,\n \"formatString\" : \"%s\",\n \"userID\" : 0,\n \"activityIdentifier\" : 0,\n \"subsystem\" : \"\",\n \"category\" : \"\",\n \"threadID\" : 20357451,\n \"senderImageUUID\" : \"CAB6E5F0-8492-3DED-B04B-66D2CC8E3C61\",\n \"backtrace\" : {\n \"frames\" : [\n {\n \"imageOffset\" : 168600,\n \"imageUUID\" : \"CAB6E5F0-8492-3DED-B04B-66D2CC8E3C61\"\n }\n ]\n },\n \"bootUUID\" : \"6E98935B-21F1-470A-8CB9-B9FCB74486FD\",\n \"processImagePath\" : \"\\/kernel\",\n \"senderImagePath\" : \"\\/System\\/Library\\/Extensions\\/Sandbox.kext\\/Contents\\/MacOS\\/Sandbox\",\n \"timestamp\" : \"2026-10-31 01:37:21.067337-0400\",\n \"machTimestamp\" : 92551792436923,\n \"eventMessage\" : \"Sandbox: guest(52963) deny(1) network-outbound \\/private\\/tmp\\/cyber-unix-PNXsRQ\\/r0w1s1\\/project\\/dgram-host.sock\",\n \"processImageUUID\" : \"8E9A9C48-952A-383F-87EF-DA1552DF6DB0\",\n \"traceID\" : 17575040258052,\n \"processID\" : 0,\n \"senderProgramCounter\" : 168600,\n \"parentActivityIdentifier\" : 0\n},{\n \"timezoneName\" : \"\",\n \"messageType\" : \"Error\",\n \"eventType\" : \"logEvent\",\n \"source\" : null,\n \"formatString\" : \"%s\",\n \"userID\" : 0,\n \"activityIdentifier\" : 0,\n \"subsystem\" : \"\",\n \"category\" : \"\",\n \"threadID\" : 20357451,\n \"senderImageUUID\" : \"CAB6E5F0-8492-3DED-B04B-66D2CC8E3C61\",\n \"backtrace\" : {\n \"frames\" : [\n {\n \"imageOffset\" : 168600,\n \"imageUUID\" : \"CAB6E5F0-8492-3DED-B04B-66D2CC8E3C61\"\n }\n ]\n },\n \"bootUUID\" : \"6E98935B-21F1-470A-8CB9-B9FCB74486FD\",\n \"processImagePath\" : \"\\/kernel\",\n \"senderImagePath\" : \"\\/System\\/Library\\/Extensions\\/Sandbox.kext\\/Contents\\/MacOS\\/Sandbox\",\n \"timestamp\" : \"2026-10-31 01:37:21.068749-0400\",\n \"machTimestamp\" : 92551792470819,\n \"eventMessage\" : \"6 duplicate reports for Sandbox: guest(52963) deny(1) network-outbound \\/private\\/tmp\\/cyber-unix-PNXsRQ\\/r0w1s1\\/project\\/dgram-host.sock\",\n \"processImageUUID\" : \"8E9A9C48-952A-383F-87EF-DA1552DF6DB0\",\n \"traceID\" : 17575040258052,\n \"processID\" : 0,\n \"senderProgramCounter\" : 168600,\n \"parentActivityIdentifier\" : 0\n},{\n \"timezoneName\" : \"\",\n \"messageType\" : \"Error\",\n \"eventType\" : \"logEvent\",\n \"source\" : null,\n \"formatString\" : \"%s\",\n \"userID\" : 0,\n \"activityIdentifier\" : 0,\n \"subsystem\" : \"\",\n \"category\" : \"\",\n \"threadID\" : 20357451,\n \"senderImageUUID\" : \"CAB6E5F0-8492-3DED-B04B-66D2CC8E3C61\",\n \"backtrace\" : {\n \"frames\" : [\n {\n \"imageOffset\" : 168600,\n \"imageUUID\" : \"CAB6E5F0-8492-3DED-B04B-66D2CC8E3C61\"\n }\n ]\n },\n \"bootUUID\" : \"6E98935B-21F1-470A-8CB9-B9FCB74486FD\",\n \"processImagePath\" : \"\\/kernel\",\n \"senderImagePath\" : \"\\/System\\/Library\\/Extensions\\/Sandbox.kext\\/Contents\\/MacOS\\/Sandbox\",\n \"timestamp\" : \"2026-10-31 01:37:21.068751-0400\",\n \"machTimestamp\" : 92551792470860,\n \"eventMessage\" : \"Sandbox: guest(52963) deny(1) network-outbound \\/private\\/tmp\\/cyber-unix-PNXsRQ\\/r0w1s1\\/project\\/host.sock\",\n \"processImageUUID\" : \"8E9A9C48-952A-383F-87EF-DA1552DF6DB0\",\n \"traceID\" : 17575040258052,\n \"processID\" : 0,\n \"senderProgramCounter\" : 168600,\n \"parentActivityIdentifier\" : 0\n},{\n \"timezoneName\" : \"\",\n \"messageType\" : \"Error\",\n \"eventType\" : \"logEvent\",\n \"source\" : null,\n \"formatString\" : \"%s\",\n \"userID\" : 0,\n \"activityIdentifier\" : 0,\n \"subsystem\" : \"\",\n \"category\" : \"\",\n \"threadID\" : 20357451,\n \"senderImageUUID\" : \"CAB6E5F0-8492-3DED-B04B-66D2CC8E3C61\",\n \"backtrace\" : {\n \"frames\" : [\n {\n \"imageOffset\" : 168600,\n \"imageUUID\" : \"CAB6E5F0-8492-3DED-B04B-66D2CC8E3C61\"\n }\n ]\n },\n \"bootUUID\" : \"6E98935B-21F1-470A-8CB9-B9FCB74486FD\",\n \"processImagePath\" : \"\\/kernel\",\n \"senderImagePath\" : \"\\/System\\/Library\\/Extensions\\/Sandbox.kext\\/Contents\\/MacOS\\/Sandbox\",\n \"timestamp\" : \"2026-10-31 01:37:21.068835-0400\",\n \"machTimestamp\" : 92551792472876,\n \"eventMessage\" : \"Sandbox: guest(52963) deny(1) forbidden-link-priv \\/private\\/tmp\\/cyber-unix-PNXsRQ\\/r0w1s1\\/project\\/host.sock \\/private\\/tmp\\/cyber-unix-PNXsRQ\\/r0w1s1\\/scratch\\/host-alias.sock\",\n \"processImageUUID\" : \"8E9A9C48-952A-383F-87EF-DA1552DF6DB0\",\n \"traceID\" : 17575040258052,\n \"processID\" : 0,\n \"senderProgramCounter\" : 168600,\n \"parentActivityIdentifier\" : 0\n},{\n \"timezoneName\" : \"\",\n \"messageType\" : \"Error\",\n \"eventType\" : \"logEvent\",\n \"source\" : null,\n \"formatString\" : \"%s\",\n \"userID\" : 0,\n \"activityIdentifier\" : 0,\n \"subsystem\" : \"\",\n \"category\" : \"\",\n \"threadID\" : 20357451,\n \"senderImageUUID\" : \"CAB6E5F0-8492-3DED-B04B-66D2CC8E3C61\",\n \"backtrace\" : {\n \"frames\" : [\n {\n \"imageOffset\" : 168600,\n \"imageUUID\" : \"CAB6E5F0-8492-3DED-B04B-66D2CC8E3C61\"\n }\n ]\n },\n \"bootUUID\" : \"6E98935B-21F1-470A-8CB9-B9FCB74486FD\",\n \"processImagePath\" : \"\\/kernel\",\n \"senderImagePath\" : \"\\/System\\/Library\\/Extensions\\/Sandbox.kext\\/Contents\\/MacOS\\/Sandbox\",\n \"timestamp\" : \"2026-10-31 01:37:21.068880-0400\",\n \"machTimestamp\" : 92551792473952,\n \"eventMessage\" : \"Sandbox: guest(52963) deny(1) network-outbound \\/private\\/tmp\\/cyber-unix-PNXsRQ\\/r0w1s1\\/project\\/host.sock\",\n \"processImageUUID\" : \"8E9A9C48-952A-383F-87EF-DA1552DF6DB0\",\n \"traceID\" : 17575040258052,\n \"processID\" : 0,\n \"senderProgramCounter\" : 168600,\n \"parentActivityIdentifier\" : 0\n}]"},"owner_receipts":0,"owner_received_fixture":false,"datagram_receipts":0,"owner_datagram_received_fixture":false} + +true !== false + + at check (file:///private/tmp/cyber-final-send-return-3288_esm/macos-zero-send/macos_private_ipc.mts:152:10) + at file:///private/tmp/cyber-final-send-return-3288_esm/macos-zero-send/macos_private_ipc.mts:207:5 + at process.processTicksAndRejections (node:internal/process/task_queues:105:5) { + generatedMessage: false, + code: 'ERR_ASSERTION', + actual: true, + expected: false, + operator: 'strictEqual', + diff: 'simple' +} + +Node.js v22.20.0 diff --git a/scripts/probes/plugin-confinement/fixture_native.c b/scripts/probes/plugin-confinement/fixture_native.c index 54c6b0db..99785a4f 100644 --- a/scripts/probes/plugin-confinement/fixture_native.c +++ b/scripts/probes/plugin-confinement/fixture_native.c @@ -154,7 +154,7 @@ static int private_stream_probe(const char *scratch, int result[2]) { #ifdef __APPLE__ #include "macos_rights.h" -struct unix_attempt { int connected, sent, acknowledged; }; +#include "macos_datagram_send.h" static struct unix_attempt host_unix_attempt(const char *path) { struct unix_attempt result = {0}; struct sockaddr_un address = { .sun_family = AF_UNIX }; diff --git a/scripts/probes/plugin-confinement/macos_datagram.h b/scripts/probes/plugin-confinement/macos_datagram.h index cc818bef..d53258a6 100644 --- a/scripts/probes/plugin-confinement/macos_datagram.h +++ b/scripts/probes/plugin-confinement/macos_datagram.h @@ -3,43 +3,6 @@ #define CYBER_MACOS_DATAGRAM_H #include -static int datagram_address(const char *path, struct sockaddr_un *address) { - if (strlen(path) >= sizeof(address->sun_path)) return 0; - memset(address, 0, sizeof(*address)); - address->sun_family = AF_UNIX; - strcpy(address->sun_path, path); - return 1; -} - -static int datagram_socket(const char *path) { - struct sockaddr_un address; - if (!datagram_address(path, &address)) return -1; - int fd = socket(AF_UNIX, SOCK_DGRAM, 0); - if (fd < 0) return -1; - struct timeval timeout = { .tv_sec = 2 }; - if (setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout)) != 0 || - setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, &timeout, sizeof(timeout)) != 0 || - bind(fd, (struct sockaddr *)&address, sizeof(address)) != 0) { close(fd); return -1; } - return fd; -} - -static struct unix_attempt datagram_send(int fd, const char *path, int method) { - struct unix_attempt result = {0}; - struct sockaddr_un address; - if (!datagram_address(path, &address)) return result; - if (method == 0) { - result.connected = connect(fd, (struct sockaddr *)&address, sizeof(address)) == 0; - result.sent = result.connected && send(fd, "fixture-only", 12, 0) == 12; - } else if (method == 1) { - result.sent = sendto(fd, "fixture-only", 12, 0, (struct sockaddr *)&address, sizeof(address)) == 12; - } else { - struct iovec body = { .iov_base = (void *)"fixture-only", .iov_len = 12 }; - struct msghdr message = { .msg_name = &address, .msg_namelen = sizeof(address), .msg_iov = &body, .msg_iovlen = 1 }; - result.sent = sendmsg(fd, &message, 0) == 12; - } - return result; -} - static int private_datagram(const char *scratch, int method) { char server_path[PATH_MAX], client_path[PATH_MAX]; if (!joined(server_path, scratch, "dgram-private.sock") || !joined(client_path, scratch, "dgram-client.sock")) return 0; diff --git a/scripts/probes/plugin-confinement/macos_datagram_race.h b/scripts/probes/plugin-confinement/macos_datagram_race.h index 69341f4e..b60b2f75 100644 --- a/scripts/probes/plugin-confinement/macos_datagram_race.h +++ b/scripts/probes/plugin-confinement/macos_datagram_race.h @@ -36,13 +36,6 @@ static int await_datagram_swap(struct datagram_mutator *state, unsigned previous return 1; } -struct datagram_failure { const char *stage; int error; }; - -static char datagram_failed(struct datagram_failure *failure, const char *stage, int error) { - if (!failure->stage) { failure->stage = stage; failure->error = error; } - return 'E'; -} - /* Returns P for an actual private acknowledgement, A for the owned host, * D for a policy refusal and E for any invalid/unknown exchange. */ static char datagram_race_exchange(int server, const char *scratch, const char *alias, int method, @@ -52,9 +45,8 @@ static char datagram_race_exchange(int server, const char *scratch, const char * int client = datagram_socket(client_path); if (client < 0) return datagram_failed(failure, "client_bind", errno); struct unix_attempt sent = datagram_send(client, alias, method); - int send_error = errno; if (!sent.sent) { - ack = send_error == EACCES || send_error == EPERM ? 'D' : datagram_failed(failure, "send", send_error); + ack = datagram_send_failure(sent, failure); } else { ssize_t size = recv(server, token, sizeof(token), MSG_DONTWAIT); if (size == 12 && memcmp(token, "fixture-only", 12) == 0) { @@ -62,8 +54,10 @@ static char datagram_race_exchange(int server, const char *scratch, const char * if (!datagram_address(client_path, &reply)) { ack = datagram_failed(failure, "private_reply_path", ENAMETOOLONG); goto done; } - if (sendto(server, "P", 1, 0, (struct sockaddr *)&reply, sizeof(reply)) != 1) { - ack = datagram_failed(failure, "private_reply", errno); goto done; + ssize_t replied = sendto(server, "P", 1, 0, (struct sockaddr *)&reply, sizeof(reply)); + if (replied != 1) { + if (!failure->stage) { failure->returned = replied; failure->has_return = 1; } + ack = datagram_failed(failure, "private_reply", replied == -1 ? errno : 0); goto done; } } else if (size >= 0 || (errno != EAGAIN && errno != EWOULDBLOCK)) { ack = datagram_failed(failure, "private_receive", size < 0 ? errno : EPROTO); goto done; @@ -132,9 +126,12 @@ static struct datagram_race_result datagram_race(const char *scratch, const char static void print_datagram_race(struct datagram_race_result result) { printf(",\"datagram_race\":{\"private_control\":%s,\"host_control\":%s,\"settled\":%s,\"failed\":%s," "\"attempts\":%d,\"private_acks\":%d,\"host_acks\":%d,\"refused\":%d,\"swaps\":%u," - "\"failure_stage\":\"%s\",\"failure_errno\":%d}", + "\"failure_stage\":\"%s\",\"failure_errno\":%d,\"failure_return\":", truth(result.private_control), truth(result.host_control), truth(result.settled), truth(result.failed), result.attempts, result.private_acks, result.host_acks, result.refused, result.swaps, result.failure.stage ? result.failure.stage : "", result.failure.error); + if (result.failure.has_return) printf("%zd", result.failure.returned); + else fputs("null", stdout); + putchar('}'); } #endif diff --git a/scripts/probes/plugin-confinement/macos_datagram_send.h b/scripts/probes/plugin-confinement/macos_datagram_send.h new file mode 100644 index 00000000..536d071f --- /dev/null +++ b/scripts/probes/plugin-confinement/macos_datagram_send.h @@ -0,0 +1,81 @@ +/* Shared send/result implementation; deterministic controls include these exact helpers. */ +#ifndef CYBER_MACOS_DATAGRAM_SEND_H +#define CYBER_MACOS_DATAGRAM_SEND_H +#include +#include +#include +#include +#include +#include +#include +#include + +struct unix_attempt { + int connected, sent, acknowledged; + /* Datagram diagnostics retain errno only for a real failed send. */ + int attempted, error; + ssize_t returned; +}; +struct datagram_failure { const char *stage; int error, has_return; ssize_t returned; }; + +static char datagram_failed(struct datagram_failure *failure, const char *stage, int error) { + if (!failure->stage) { failure->stage = stage; failure->error = error; } + return 'E'; +} + +static char datagram_send_failure(struct unix_attempt sent, struct datagram_failure *failure) { + if (sent.attempted && sent.returned == -1 && (sent.error == EACCES || sent.error == EPERM)) return 'D'; + if (!failure->stage && sent.attempted) { + failure->returned = sent.returned; failure->has_return = 1; + } + const char *stage = !sent.attempted ? "send_setup" : sent.returned == -1 ? "send" : "send_size"; + return datagram_failed(failure, stage, sent.error); +} + +static int datagram_address(const char *path, struct sockaddr_un *address) { + if (strlen(path) >= sizeof(address->sun_path)) return 0; + memset(address, 0, sizeof(*address)); + address->sun_family = AF_UNIX; + strcpy(address->sun_path, path); + return 1; +} + +static int datagram_socket(const char *path) { + struct sockaddr_un address; + if (!datagram_address(path, &address)) { errno = ENAMETOOLONG; return -1; } + int fd = socket(AF_UNIX, SOCK_DGRAM, 0); + if (fd < 0) return -1; + struct timeval timeout = { .tv_sec = 2 }; + if (setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout)) != 0 || + setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, &timeout, sizeof(timeout)) != 0 || + bind(fd, (struct sockaddr *)&address, sizeof(address)) != 0) { + int error = errno; + close(fd); errno = error; return -1; + } + return fd; +} + +static struct unix_attempt datagram_send(int fd, const char *path, int method) { + struct unix_attempt result = { .returned = -1 }; + struct sockaddr_un address; + if (!datagram_address(path, &address)) { result.error = ENAMETOOLONG; return result; } + if (method == 0) { + result.connected = connect(fd, (struct sockaddr *)&address, sizeof(address)) == 0; + if (!result.connected) { result.error = errno; return result; } + } + result.attempted = 1; + if (method == 0) { + result.returned = send(fd, "fixture-only", 12, 0); + } else if (method == 1) { + result.returned = sendto(fd, "fixture-only", 12, 0, (struct sockaddr *)&address, sizeof(address)); + } else { + struct iovec body = { .iov_base = (void *)"fixture-only", .iov_len = 12 }; + struct msghdr message = { .msg_name = &address, .msg_namelen = sizeof(address), .msg_iov = &body, .msg_iovlen = 1 }; + result.returned = sendmsg(fd, &message, 0); + } + result.error = result.returned == -1 ? errno : 0; + result.sent = result.returned == 12; + return result; +} + +#endif diff --git a/scripts/probes/plugin-confinement/macos_datagram_send_test.c b/scripts/probes/plugin-confinement/macos_datagram_send_test.c new file mode 100644 index 00000000..040a476f --- /dev/null +++ b/scripts/probes/plugin-confinement/macos_datagram_send_test.c @@ -0,0 +1,67 @@ +/* Fault injection tests the actual send/result helpers without a pathname race. + * This is verifier regression evidence, never native confinement acceptance. */ +#include +#include +#include + +static ssize_t injected_return; +static int injected_errno, send_calls; +static ssize_t controlled_sendmsg(int fd, const struct msghdr *message, int flags) { + (void)fd; (void)message; (void)flags; + send_calls++; + errno = injected_errno; + return injected_return; +} +#define sendmsg controlled_sendmsg +#include "macos_datagram_send.h" +#undef sendmsg + +static int check(const char *name, ssize_t returned, int stale_error, char expected, + const char *stage, int error) { + injected_return = returned; injected_errno = stale_error; send_calls = 0; + struct unix_attempt sent = datagram_send(-1, "/controlled.sock", 2); + struct datagram_failure failure = {0}; + char outcome = datagram_send_failure(sent, &failure); + printf("{\"case\":\"%s\",\"attempted\":%d,\"calls\":%d,\"returned\":%zd," + "\"error\":%d,\"outcome\":\"%c\",\"stage\":\"%s\",\"has_return\":%d}\n", + name, sent.attempted, send_calls, sent.returned, sent.error, outcome, + failure.stage ? failure.stage : "", failure.has_return); + int ok = send_calls == 1 && sent.attempted && !sent.sent && sent.returned == returned && + sent.error == error && outcome == expected; + if (expected == 'E') { + ok &= failure.stage && strcmp(failure.stage, stage) == 0 && + failure.error == error && failure.has_return && failure.returned == returned; + /* A later error must not overwrite the first operation's raw witness. */ + struct unix_attempt later = { .attempted = 1, .returned = -1, .error = EBADF }; + (void)datagram_send_failure(later, &failure); + ok &= failure.stage && strcmp(failure.stage, stage) == 0 && + failure.error == error && failure.has_return && failure.returned == returned; + } else { + ok &= !failure.stage && !failure.has_return; + } + if (!ok) fprintf(stderr, "send-result regression failed: %s\n", name); + return ok; +} + +int main(void) { + if (!check("zero-stale-EPERM", 0, EPERM, 'E', "send_size", 0) || + !check("short-stale-EACCES", 7, EACCES, 'E', "send_size", 0) || + !check("failed-EACCES", -1, EACCES, 'D', "", EACCES) || + !check("failed-EPERM", -1, EPERM, 'D', "", EPERM) || + !check("failed-EINVAL", -1, EINVAL, 'E', "send", EINVAL)) return 1; + char oversized[sizeof(((struct sockaddr_un *)0)->sun_path) + 1]; + memset(oversized, 'x', sizeof(oversized) - 1); oversized[sizeof(oversized) - 1] = 0; + errno = EPERM; send_calls = 0; + struct unix_attempt sent = datagram_send(-1, oversized, 2); + struct datagram_failure failure = {0}; + char outcome = datagram_send_failure(sent, &failure); + if (sent.attempted || send_calls || sent.error != ENAMETOOLONG || outcome != 'E' || + !failure.stage || strcmp(failure.stage, "send_setup") || failure.has_return) { + fputs("send-result regression failed: setup-with-stale-EPERM\n", stderr); return 1; + } + if (datagram_socket(oversized) != -1 || errno != ENAMETOOLONG) { + fputs("send-result regression failed: oversized-socket-address\n", stderr); return 1; + } + puts("{\"case\":\"setup-with-stale-EPERM\",\"attempted\":0,\"calls\":0,\"outcome\":\"E\",\"stage\":\"send_setup\",\"has_return\":0}"); + return 0; +} diff --git a/scripts/probes/plugin-confinement/macos_private_ipc.mts b/scripts/probes/plugin-confinement/macos_private_ipc.mts index 450e8a55..7241c754 100644 --- a/scripts/probes/plugin-confinement/macos_private_ipc.mts +++ b/scripts/probes/plugin-confinement/macos_private_ipc.mts @@ -152,6 +152,7 @@ function check(entry: Awaited>) { assert.equal(race.failed, false, `datagram mutation failed: ${JSON.stringify(entry)}`); assert.equal(race.failure_stage, ""); assert.equal(race.failure_errno, 0); + assert.equal(race.failure_return, null); assert.equal(race.attempts, 16); assert(race.swaps >= race.attempts && race.swaps <= 4096); assert.equal(race.private_acks + race.host_acks + race.refused, race.attempts); @@ -207,7 +208,7 @@ try { rows.push(observed); } assert.equal(createHash("sha256").update(readFileSync(prepared.target)).digest("hex"), targetHash); - const sources = ["macos_private_ipc.mts", "macos_policy.mts", "macos_rights.h", "macos_datagram.h", "macos_datagram_race.h", "macos_datagram_owner.mts", "macos_datagram_owner.c", "fixture_native.c", "process_policy.h", "macos_exec.c"]; + const sources = ["macos_private_ipc.mts", "macos_policy.mts", "macos_rights.h", "macos_datagram_send.h", "macos_datagram.h", "macos_datagram_race.h", "macos_datagram_owner.mts", "macos_datagram_owner.c", "fixture_native.c", "process_policy.h", "macos_exec.c"]; const hash = createHash("sha256"); for (const file of sources) hash.update(file + "\0").update(readFileSync(join(source, file))); const report = { recorded_at: new Date().toISOString(), platform: process.platform, architecture: process.arch, diff --git a/scripts/probes/plugin-confinement/run.mts b/scripts/probes/plugin-confinement/run.mts index 4bde6ea7..cba2ac2e 100644 --- a/scripts/probes/plugin-confinement/run.mts +++ b/scripts/probes/plugin-confinement/run.mts @@ -401,7 +401,7 @@ function main() { const rows = cases.filter(([name]) => !unsupported_cases.some(item => item.name === name)) .map(([name, flags]) => check(root, artifacts, runtime, name, flags)); const digest = createHash("sha256"); - const sources = ["run.mts", "macos_policy.mts", "macos_rights.h", "macos_datagram.h", "macos_datagram_race.h", "macos_python.c", "macos_node.c", "native_exec.c", "node_bootstrap.cjs", "fixture.py", "fixture.cjs", "private_unix.cjs", "process_policy.h", "linux_filter.h", "linux_exec.c", "linux_initial_exec.h", "fixture_native.c", "macos_exec.c", "macos_stage.mts"]; + const sources = ["run.mts", "macos_policy.mts", "macos_rights.h", "macos_datagram_send.h", "macos_datagram.h", "macos_datagram_race.h", "macos_python.c", "macos_node.c", "native_exec.c", "node_bootstrap.cjs", "fixture.py", "fixture.cjs", "private_unix.cjs", "process_policy.h", "linux_filter.h", "linux_exec.c", "linux_initial_exec.h", "fixture_native.c", "macos_exec.c", "macos_stage.mts"]; for (const file of sources) { digest.update(file + "\0").update(readFileSync(join(source, file))); }