Skip to content

Unattended capture: Smart App Control blocks the unsigned native host exe #8

Description

@wolfgang-aura

Impact: unattended capture (scripts/sourcecapsule-capture.mjs) cannot reach the extension. Every call fails with Cannot reach the SourceCapsule native host (ENOENT), and -Restart -Verify times out after 90s even though -Status reports the browser has the flag.

Evidence (2026-09-27, owner workstation):

  • Microsoft-Windows-CodeIntegrity/Operational logs events 3033/3077 every 30s: cmd.exe (Chromium's native-host launcher) attempted to load sourcecapsule-host.exe that "did not meet the Enterprise signing level". The 30s cadence matches the extension's sourcecapsule:native-reconnect alarm.
  • Smart App Control state: On. The first block was logged 2026-09-27 05:16; the log reaches back to 2026-09-16 with no earlier entries.
  • Launching the exe by hand gives An Application Control policy has blocked this file.
  • Registration and host manifest are correct; the extension is enabled (location: 8, no disable reasons).

Cause: scripts/install-native-host.ps1 compiles native-host/launcher.cs into an unsigned exe. Smart App Control rejects unsigned, non-reputable binaries, and it has no per-file allowlist.

Next action (owner decision): either sign the launcher, or register a host that is already trusted (e.g. find a way to launch the signed node.exe directly). Turning Smart App Control off is possible but irreversible without a Windows reset. Do not do that silently.

Activity

  1. wolfgang-aura commented on Sep 27, 2026

    @wolfgang-aura
    OwnerAuthor

    Parked by owner decision (2026-09-27). The owner does not currently use unattended CLI capture. Buttons on X, the extension popup, and browser-based testing are unaffected.

    If this is resumed, the proposed fix is to register a two-line .cmd host that runs the already-signed node.exe (OpenJS Foundation, signature valid) and to drop the unsigned launcher.cs exe. That still needs a live test, because AGENTS.md claims Chromium is unreliable with .cmd hosts and that claim was never verified.

  2. wolfgang-aura commented on Oct 5, 2026

    @wolfgang-aura
    OwnerAuthor

    Fixed in be46044 (PR #43, merged as e5fdac5). The installer now registers a .cmd that runs the signed node.exe.

    Live-verified 2026-10-05, Smart App Control on: node scripts/sourcecapsule-capture.mjs --ping answered by extension v1.6.5, and Code Integrity logged no 3033/3077 blocks after the switch. Before it, there was a block every 30 s.

    Reopened because one path is not verified. Every block in the log was for %LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Local\SourceCapsule\.... Agent shells run inside the Claude desktop app's MSIX container, so every agent-run install landed in that app's private copy. The real disk has no SourceCapsule\native-host folder and no HKCU registration, so a Brave started from the desktop shortcut has no host at all. The installer now detects this and exits nonzero.

    Next action (owner): in a PowerShell window opened from the Start menu, run npm.cmd run install:native-host in the repo. Then start Brave from the Brave with SourceCapsule shortcut and run node scripts\sourcecapsule-capture.mjs --ping. Pass condition: "ok": true. Close this issue once that passes.

  3. wolfgang-aura commented on Oct 5, 2026

    @wolfgang-aura
    OwnerAuthor

    Live-verified from an owner-started browser on 2026-10-05:

    • The owner ran npm.cmd run install:native-host from a Start-menu PowerShell. The container check did not fire.
    • Brave started from the "Brave with SourceCapsule" shortcut at 17:58:24 (parent explorer.exe). At 17:58:25 it launched cmd.exe /c "...\SourceCapsule\native-host\sourcecapsule-host.cmd", which ran the signed node.exe.
    • node scripts\sourcecapsule-capture.mjs --ping returned "ok": true, extensionVersion 1.6.5.
    • No Code Integrity events since 17:46:35, which was before the switch to the .cmd host.

    Fixed in be46044 (PR #43).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions