From 3f7067dd058b91c11320c99c556b60451b103098 Mon Sep 17 00:00:00 2001 From: Edvane Cristina Santos Daltro Date: Sat, 31 Oct 2026 01:44:43 -0400 Subject: [PATCH 1/2] Validate raw datagram send results in native confinement proof --- .../workflows/plugin-confinement-proof.yml | 60 ++ docs/goal-delivery.md | 12 +- .../macos-datagram-alias-race.md | 6 +- .../macos-send-result-validation.md | 84 ++ .../complete-plugin-hook-runtime/tasks.md | 5 + scripts/probes/plugin-confinement/README.md | 5 +- .../macos-owned-unix-d689d2f3/arm64/job.log | 349 ++++++ .../arm64/source-binding.json | 19 + .../arm64/unix-boundary.json | 982 +++++++++++++++++ .../arm64/unix-datagram-bind-failure.log | 20 + .../arm64/unix-dropped-rights.log | 56 + .../arm64/unix-missing-scope.log | 20 + .../arm64/unix-rights-path-reader.log | 20 + .../macos-owned-unix-d689d2f3/x64/job.log | 412 ++++++++ .../x64/source-binding.json | 19 + .../x64/unix-boundary.json | 982 +++++++++++++++++ .../x64/unix-datagram-bind-failure.log | 20 + .../x64/unix-dropped-rights.log | 56 + .../x64/unix-missing-scope.log | 20 + .../x64/unix-rights-path-reader.log | 20 + .../macos-send-result-local/exec.json | 82 ++ .../evidence/macos-send-result-local/exec.log | 82 ++ .../macos-send-result-local/matrix.json | 547 ++++++++++ .../macos-send-result-local/matrix.log | 547 ++++++++++ .../source-binding.json | 23 + .../unix-boundary.json | 991 ++++++++++++++++++ .../macos-send-result-local/unix-boundary.log | 991 ++++++++++++++++++ .../unix-datagram-bind-failure.log | 20 + .../unix-dropped-rights.log | 56 + .../unix-missing-scope.log | 20 + .../unix-rights-path-reader.log | 20 + .../unix-stale-errno-guard.json | 991 ++++++++++++++++++ .../unix-stale-errno-guard.log | 991 ++++++++++++++++++ .../unix-zero-send.log | 20 + .../plugin-confinement/fixture_native.c | 7 +- .../plugin-confinement/macos_datagram.h | 21 +- .../plugin-confinement/macos_datagram_race.h | 25 +- .../plugin-confinement/macos_private_ipc.mts | 1 + 38 files changed, 8581 insertions(+), 21 deletions(-) create mode 100644 openspec/changes/complete-plugin-hook-runtime/macos-send-result-validation.md create mode 100644 scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/arm64/job.log create mode 100644 scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/arm64/source-binding.json create mode 100644 scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/arm64/unix-boundary.json create mode 100644 scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/arm64/unix-datagram-bind-failure.log create mode 100644 scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/arm64/unix-dropped-rights.log create mode 100644 scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/arm64/unix-missing-scope.log create mode 100644 scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/arm64/unix-rights-path-reader.log create mode 100644 scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/x64/job.log create mode 100644 scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/x64/source-binding.json create mode 100644 scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/x64/unix-boundary.json create mode 100644 scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/x64/unix-datagram-bind-failure.log create mode 100644 scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/x64/unix-dropped-rights.log create mode 100644 scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/x64/unix-missing-scope.log create mode 100644 scripts/probes/plugin-confinement/evidence/macos-owned-unix-d689d2f3/x64/unix-rights-path-reader.log create mode 100644 scripts/probes/plugin-confinement/evidence/macos-send-result-local/exec.json create mode 100644 scripts/probes/plugin-confinement/evidence/macos-send-result-local/exec.log create mode 100644 scripts/probes/plugin-confinement/evidence/macos-send-result-local/matrix.json create mode 100644 scripts/probes/plugin-confinement/evidence/macos-send-result-local/matrix.log create mode 100644 scripts/probes/plugin-confinement/evidence/macos-send-result-local/source-binding.json create mode 100644 scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-boundary.json create mode 100644 scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-boundary.log create mode 100644 scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-datagram-bind-failure.log create mode 100644 scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-dropped-rights.log create mode 100644 scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-missing-scope.log create mode 100644 scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-rights-path-reader.log create mode 100644 scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-stale-errno-guard.json create mode 100644 scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-stale-errno-guard.log create mode 100644 scripts/probes/plugin-confinement/evidence/macos-send-result-local/unix-zero-send.log diff --git a/.github/workflows/plugin-confinement-proof.yml b/.github/workflows/plugin-confinement-proof.yml index 02d597cf..dae3733e 100644 --- a/.github/workflows/plugin-confinement-proof.yml +++ b/.github/workflows/plugin-confinement-proof.yml @@ -246,6 +246,63 @@ 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 + control="$RUNNER_TEMP/macos-zero-send" + legacy="$RUNNER_TEMP/macos-stale-errno-guard" + python3 - "$control" "$legacy" <<'PYCONTROL' + from pathlib import Path + import shutil, sys + control, legacy = map(Path, sys.argv[1:]) + shutil.copytree('scripts/probes/plugin-confinement', control, ignore=shutil.ignore_patterns('evidence', '__pycache__')) + fixture = control / 'macos_datagram.h' + source = fixture.read_text() + needle = 'result.returned = sendmsg(fd, &message, 0);' + assert source.count(needle) == 1 + replacement = 'result.returned = strstr(path, "/r0w1s1/scratch/dgram-race.sock") ? (errno = EPERM, (ssize_t)0) : sendmsg(fd, &message, 0);' + fixture.write_text(source.replace(needle, replacement)) + shutil.copytree(control, legacy) + fixture = legacy / 'macos_datagram.h' + source = fixture.read_text() + needle = 'result.error = result.returned == -1 ? errno : 0;' + assert source.count(needle) == 1 + fixture.write_text(source.replace(needle, 'result.error = errno;')) + fixture = legacy / 'macos_datagram_race.h' + source = fixture.read_text() + needle = 'sent.attempted && sent.returned == -1 && (sent.error == EACCES || sent.error == EPERM)' + assert source.count(needle) == 1 + fixture.write_text(source.replace(needle, '(sent.error == EACCES || sent.error == EPERM)')) + PYCONTROL + log="$RUNNER_TEMP/unix-zero-send.log" + if node --experimental-strip-types "$control/macos_private_ipc.mts" > "$log" 2>&1; then + echo 'Zero-return send with stale EPERM unexpectedly passed' >&2 + exit 1 + fi + python3 - "$log" <<'PYCONTROL' + from pathlib import Path + import json, re, sys + text = Path(sys.argv[1]).read_text() + match = re.search(r'datagram mutation failed: (\{[^\n]+\})', text) + assert match, text + entry = json.loads(match[1]) + race = entry['observed']['datagram_race'] + assert entry['name'] == 'r0w1s1' and race['private_control'] and race['settled'] and race['failed'], entry + assert race['failure_stage'] == 'send_size' and race['failure_return'] == 0 and race['failure_errno'] == 0, entry + assert race['attempts'] == 2 and race['refused'] <= 1 and entry['datagram_receipts'] == 0, entry + PYCONTROL + 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 + python3 - "$RUNNER_TEMP/unix-stale-errno-guard.json" <<'PYCONTROL' + from pathlib import Path + import json, sys + report = json.loads(Path(sys.argv[1]).read_text()) + assert len(report['rows']) == 9, report + entry = next(row for row in report['rows'] if row['name'] == 'r0w1s1') + race = entry['observed']['datagram_race'] + assert not race['failed'] and race['attempts'] == 16 and race['refused'] >= 8, entry + PYCONTROL - name: Reject missing private descriptor reception if: always() && !cancelled() && steps.native_setup.outcome == 'success' shell: bash @@ -309,6 +366,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-stale-errno-guard.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/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..b0a4ee44 --- /dev/null +++ b/openspec/changes/complete-plugin-hook-runtime/macos-send-result-validation.md @@ -0,0 +1,84 @@ +# 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 + +A copied fixture substitutes zero with stale EPERM only for sendmsg through the +r0w1s1 race alias. Its other exchanges, unrestricted control and private positive +control remain real. The corrected driver must execute and fail the named +mutation assertion on attempt two, with `send_size`, raw return zero, error zero, +a settled thread and zero owner host receipts. Compilation or startup failure +cannot satisfy the control. + +A separate copy restores the old unconditional errno capture and removes the +raw-return qualification. That copy must falsely pass all nine cases, including +at least eight refusal counts in the injected case. This demonstrates that the +fixture does not reject the injected condition for an unrelated reason. Its +report is labeled as an invalid legacy-guard counterexample, never acceptance. +Both copies and the main run still use source-bound reports. + +## 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. + +Local arm64/Darwin checks pass all nine normal rows, the six exact workflow steps +and the original native capability/signature/exec setup. The zero-result control +fails precisely and its legacy-guard copy reproduces false acceptance. Evidence +is retained under +`scripts/probes/plugin-confinement/evidence/macos-send-result-local`. +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 six IPC workflow steps, +including the deliberately failing zero-send case and its invalid 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..deee3fa2 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. 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-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..f50dec47 100644 --- a/scripts/probes/plugin-confinement/fixture_native.c +++ b/scripts/probes/plugin-confinement/fixture_native.c @@ -154,7 +154,12 @@ static int private_stream_probe(const char *scratch, int result[2]) { #ifdef __APPLE__ #include "macos_rights.h" -struct unix_attempt { int connected, sent, acknowledged; }; +struct unix_attempt { + int connected, sent, acknowledged; + /* Datagram diagnostics retain errno only for a real failed send. */ + int attempted, error; + ssize_t returned; +}; 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..d36e3069 100644 --- a/scripts/probes/plugin-confinement/macos_datagram.h +++ b/scripts/probes/plugin-confinement/macos_datagram.h @@ -19,24 +19,33 @@ static int datagram_socket(const char *path) { 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; } + 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 = {0}; + struct unix_attempt result = { .returned = -1 }; struct sockaddr_un address; - if (!datagram_address(path, &address)) return result; + if (!datagram_address(path, &address)) { result.error = ENAMETOOLONG; 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; + 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.sent = sendto(fd, "fixture-only", 12, 0, (struct sockaddr *)&address, sizeof(address)) == 12; + 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.sent = sendmsg(fd, &message, 0) == 12; + result.returned = sendmsg(fd, &message, 0); } + result.error = result.returned == -1 ? errno : 0; + result.sent = result.returned == 12; return result; } diff --git a/scripts/probes/plugin-confinement/macos_datagram_race.h b/scripts/probes/plugin-confinement/macos_datagram_race.h index 69341f4e..87113041 100644 --- a/scripts/probes/plugin-confinement/macos_datagram_race.h +++ b/scripts/probes/plugin-confinement/macos_datagram_race.h @@ -36,13 +36,22 @@ static int await_datagram_swap(struct datagram_mutator *state, unsigned previous return 1; } -struct datagram_failure { const char *stage; int error; }; +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); +} + /* 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 +61,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 +70,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 +142,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_private_ipc.mts b/scripts/probes/plugin-confinement/macos_private_ipc.mts index 450e8a55..2515e8df 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); From 62a3068e14ab0d54e980f21848a1c3a21af93597 Mon Sep 17 00:00:00 2001 From: Edvane Cristina Santos Daltro Date: Sat, 31 Oct 2026 08:49:11 -0400 Subject: [PATCH 2/2] Isolate datagram result regression from concurrent endpoint tests --- .../workflows/plugin-confinement-proof.yml | 84 +- .../file-observation-pending-owner.md | 9 + .../macos-send-result-validation.md | 72 +- scripts/probes/plugin-confinement/README.md | 8 + .../exec.json | 82 ++ .../matrix.json | 548 ++++++++++ .../private-unix-missing-grant.log | 31 + .../unix-boundary.json | 992 ++++++++++++++++++ .../unix-datagram-bind-failure.log | 20 + .../unix-dropped-rights.log | 56 + .../unix-missing-scope.log | 20 + .../unix-rights-path-reader.log | 20 + .../unix-send-result-control.json | 79 ++ .../unix-stale-errno-guard.log | 2 + .../unix-zero-send.log | 6 + .../macos-send-result-intel-3f7067dd/job.log | 442 ++++++++ .../source-binding.json | 10 + .../unix-boundary.json | 991 +++++++++++++++++ .../unix-stale-errno-guard.log | 20 + .../unix-zero-send.log | 20 + .../plugin-confinement/fixture_native.c | 7 +- .../plugin-confinement/macos_datagram.h | 46 - .../plugin-confinement/macos_datagram_race.h | 16 - .../plugin-confinement/macos_datagram_send.h | 81 ++ .../macos_datagram_send_test.c | 67 ++ .../plugin-confinement/macos_private_ipc.mts | 2 +- scripts/probes/plugin-confinement/run.mts | 2 +- 27 files changed, 3598 insertions(+), 135 deletions(-) create mode 100644 scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/exec.json create mode 100644 scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/matrix.json create mode 100644 scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/private-unix-missing-grant.log create mode 100644 scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/unix-boundary.json create mode 100644 scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/unix-datagram-bind-failure.log create mode 100644 scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/unix-dropped-rights.log create mode 100644 scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/unix-missing-scope.log create mode 100644 scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/unix-rights-path-reader.log create mode 100644 scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/unix-send-result-control.json create mode 100644 scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/unix-stale-errno-guard.log create mode 100644 scripts/probes/plugin-confinement/evidence/macos-send-result-deterministic-local/unix-zero-send.log create mode 100644 scripts/probes/plugin-confinement/evidence/macos-send-result-intel-3f7067dd/job.log create mode 100644 scripts/probes/plugin-confinement/evidence/macos-send-result-intel-3f7067dd/source-binding.json create mode 100644 scripts/probes/plugin-confinement/evidence/macos-send-result-intel-3f7067dd/unix-boundary.json create mode 100644 scripts/probes/plugin-confinement/evidence/macos-send-result-intel-3f7067dd/unix-stale-errno-guard.log create mode 100644 scripts/probes/plugin-confinement/evidence/macos-send-result-intel-3f7067dd/unix-zero-send.log create mode 100644 scripts/probes/plugin-confinement/macos_datagram_send.h create mode 100644 scripts/probes/plugin-confinement/macos_datagram_send_test.c diff --git a/.github/workflows/plugin-confinement-proof.yml b/.github/workflows/plugin-confinement-proof.yml index dae3733e..9f7a5ed1 100644 --- a/.github/workflows/plugin-confinement-proof.yml +++ b/.github/workflows/plugin-confinement-proof.yml @@ -251,57 +251,53 @@ jobs: shell: bash run: | set -euo pipefail - control="$RUNNER_TEMP/macos-zero-send" + 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 - "$control" "$legacy" <<'PYCONTROL' + python3 - "$legacy" <<'PYCONTROL' from pathlib import Path import shutil, sys - control, legacy = map(Path, sys.argv[1:]) - shutil.copytree('scripts/probes/plugin-confinement', control, ignore=shutil.ignore_patterns('evidence', '__pycache__')) - fixture = control / 'macos_datagram.h' - source = fixture.read_text() - needle = 'result.returned = sendmsg(fd, &message, 0);' - assert source.count(needle) == 1 - replacement = 'result.returned = strstr(path, "/r0w1s1/scratch/dgram-race.sock") ? (errno = EPERM, (ssize_t)0) : sendmsg(fd, &message, 0);' - fixture.write_text(source.replace(needle, replacement)) - shutil.copytree(control, legacy) - fixture = legacy / 'macos_datagram.h' - source = fixture.read_text() - needle = 'result.error = result.returned == -1 ? errno : 0;' - assert source.count(needle) == 1 - fixture.write_text(source.replace(needle, 'result.error = errno;')) - fixture = legacy / 'macos_datagram_race.h' + 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() - needle = 'sent.attempted && sent.returned == -1 && (sent.error == EACCES || sent.error == EPERM)' - assert source.count(needle) == 1 - fixture.write_text(source.replace(needle, '(sent.error == EACCES || sent.error == EPERM)')) + 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 - log="$RUNNER_TEMP/unix-zero-send.log" - if node --experimental-strip-types "$control/macos_private_ipc.mts" > "$log" 2>&1; then - echo 'Zero-return send with stale EPERM unexpectedly passed' >&2 + 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 - "$log" <<'PYCONTROL' + python3 - "$RUNNER_TEMP" <<'PYCONTROL' from pathlib import Path - import json, re, sys - text = Path(sys.argv[1]).read_text() - match = re.search(r'datagram mutation failed: (\{[^\n]+\})', text) - assert match, text - entry = json.loads(match[1]) - race = entry['observed']['datagram_race'] - assert entry['name'] == 'r0w1s1' and race['private_control'] and race['settled'] and race['failed'], entry - assert race['failure_stage'] == 'send_size' and race['failure_return'] == 0 and race['failure_errno'] == 0, entry - assert race['attempts'] == 2 and race['refused'] <= 1 and entry['datagram_receipts'] == 0, entry - PYCONTROL - 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 - python3 - "$RUNNER_TEMP/unix-stale-errno-guard.json" <<'PYCONTROL' - from pathlib import Path - import json, sys - report = json.loads(Path(sys.argv[1]).read_text()) - assert len(report['rows']) == 9, report - entry = next(row for row in report['rows'] if row['name'] == 'r0w1s1') - race = entry['observed']['datagram_race'] - assert not race['failed'] and race['attempts'] == 16 and race['refused'] >= 8, entry + 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' @@ -367,7 +363,7 @@ jobs: ${{ runner.temp }}/unix-missing-scope.log ${{ runner.temp }}/unix-datagram-bind-failure.log ${{ runner.temp }}/unix-zero-send.log - ${{ runner.temp }}/unix-stale-errno-guard.json + ${{ 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 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-send-result-validation.md b/openspec/changes/complete-plugin-hook-runtime/macos-send-result-validation.md index b0a4ee44..ca6b7727 100644 --- a/openspec/changes/complete-plugin-hook-runtime/macos-send-result-validation.md +++ b/openspec/changes/complete-plugin-hook-runtime/macos-send-result-validation.md @@ -29,19 +29,45 @@ stages. No error is retried or silently recategorized as a successful exchange. ## Regression and missing-guard control -A copied fixture substitutes zero with stale EPERM only for sendmsg through the -r0w1s1 race alias. Its other exchanges, unrestricted control and private positive -control remain real. The corrected driver must execute and fail the named -mutation assertion on attempt two, with `send_size`, raw return zero, error zero, -a settled thread and zero owner host receipts. Compilation or startup failure -cannot satisfy the control. - -A separate copy restores the old unconditional errno capture and removes the -raw-return qualification. That copy must falsely pass all nine cases, including -at least eight refusal counts in the injected case. This demonstrates that the -fixture does not reject the injected condition for an unrelated reason. Its -report is labeled as an invalid legacy-guard counterexample, never acceptance. -Both copies and the main run still use source-bound reports. +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 @@ -57,11 +83,15 @@ 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. -Local arm64/Darwin checks pass all nine normal rows, the six exact workflow steps -and the original native capability/signature/exec setup. The zero-result control -fails precisely and its legacy-guard copy reproduces false acceptance. Evidence -is retained under -`scripts/probes/plugin-confinement/evidence/macos-send-result-local`. +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. @@ -74,9 +104,9 @@ 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 six IPC workflow steps, -including the deliberately failing zero-send case and its invalid legacy-guard -counterexample; native capability/signature/exec setup; YAML, shell and embedded +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 diff --git a/scripts/probes/plugin-confinement/README.md b/scripts/probes/plugin-confinement/README.md index deee3fa2..650e9f0c 100644 --- a/scripts/probes/plugin-confinement/README.md +++ b/scripts/probes/plugin-confinement/README.md @@ -401,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-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/fixture_native.c b/scripts/probes/plugin-confinement/fixture_native.c index f50dec47..99785a4f 100644 --- a/scripts/probes/plugin-confinement/fixture_native.c +++ b/scripts/probes/plugin-confinement/fixture_native.c @@ -154,12 +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; - /* Datagram diagnostics retain errno only for a real failed send. */ - int attempted, error; - ssize_t returned; -}; +#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 d36e3069..d53258a6 100644 --- a/scripts/probes/plugin-confinement/macos_datagram.h +++ b/scripts/probes/plugin-confinement/macos_datagram.h @@ -3,52 +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) { - 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; -} - 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 87113041..b60b2f75 100644 --- a/scripts/probes/plugin-confinement/macos_datagram_race.h +++ b/scripts/probes/plugin-confinement/macos_datagram_race.h @@ -36,22 +36,6 @@ static int await_datagram_swap(struct datagram_mutator *state, unsigned previous return 1; } -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); -} - /* 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, 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 2515e8df..7241c754 100644 --- a/scripts/probes/plugin-confinement/macos_private_ipc.mts +++ b/scripts/probes/plugin-confinement/macos_private_ipc.mts @@ -208,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))); }