Kaoru0822 and Claude Opus 5.5
b08228d19f
fix(artifacts): project compiled AppKit actions from the control to its target
...
NSNibControlConnector archives the sending control as NSSource and the
action target as NSDestination; a nil target is the first responder. The
NIBArchive projection swapped them for control connectors, so every
compiled AppKit action ran from its target to the control. The action
trace, which follows control -> action, could not find them, and the
selector node was keyed by the control instead of the target class. When
the target was nil, the swapped source was null and the action was
dropped: Chess lost 29 menu actions, KeepingYouAwake 7.
Connectors now keep NSSource -> NSDestination. The NIBArchive test
encoder moves to a fixture module so a bundle test can build compiled
NIBs.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-07 08:39:27 +00:00
Iwakurakaoru0822 and Claude Opus 5.5
a08be51e9f
fix(plist): read XML plists containing a __proto__ key
...
The `plist` XML decoder throws on the legal dictionary key `__proto__`
(its CVE-2022-22912 guard). An app whose XML Info.plist held such an
entry could not be opened at all ("app has no readable
CFBundleExecutable"), and entitlements, XML keyed archives, and
Interface Builder plists failed the same way. On the plutil JSON route,
validation silently dropped the key from `inspect_plist` results.
Decode XML plists through a shared reader that substitutes such keys
before the decoder runs, then omits and counts those entries.
`inspect_plist` and `inspect_keyed_archive` report the omission as a
limitation instead of failing or dropping it silently.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-06 23:58:59 -07:00
3af3811ab0
fix: integrate 24 reviewed browser/native/semantics corrections ( #815 )
...
* fix(reference): resolve emitted extensions to TypeScript source
Signed-off-by: Rudy Celekli <rudy@gradiahq.com >
* test(reference): retain legitimate declaration import counterparts
Signed-off-by: Rudy Celekli <rudy@gradiahq.com >
* fix(mcp): recognize implicit form elicitation capability
Signed-off-by: RudyCelekli <47457359+rudycelekli@users.noreply.github.com >
* fix(ghidra): reject contradictory NativeAOT reports
* fix(native): preserve thin architectures across echoed filename lines
Signed-off-by: Rudy Celekli <47457359+rudycelekli@users.noreply.github.com >
* fix(native): preserve app bundle executable filename whitespace
Signed-off-by: Rudy Celekli <47457359+rudycelekli@users.noreply.github.com >
* fix(doctor): validate Node-wrapped client policy
Signed-off-by: RudyCelekli <47457359+rudycelekli@users.noreply.github.com >
* fix(reference): preserve observed entry failure reasons
Signed-off-by: Rudy Celekli <rudy@gradiahq.com >
* fix(artifacts): verify opaque bytes before reusing inventory identities
Signed-off-by: Rudy Celekli <rudy@gradiahq.com >
* fix(browser): resolve DOM destinations against document base URL
Signed-off-by: Rudy Celekli <rudy@gradiahq.com >
* fix: recover serialized native NIB view hierarchy
Signed-off-by: RudyCelekli <47457359+rudycelekli@users.noreply.github.com >
* ci: exercise native compiled NIB hierarchy regressions
Signed-off-by: RudyCelekli <47457359+rudycelekli@users.noreply.github.com >
* fix(deps): remediate reachable archive-parsing advisories
Two high-severity advisories are reachable from untrusted target content:
- @xmldom/xmldom 0.9.10 (via plist) parses XML plist bytes from analyzed
app bundles in the keyed-archive reader. Refreshed to 0.9.12.
- brace-expansion 5.0.7 (via @electron/asar -> minimatch) is reached while
analyzing untrusted ASAR archives. Refreshed to 5.0.12.
Both are in-range patch updates (plist declares ^0.9.10, minimatch declares
^5.0.5), so no source or API change is required and no direct dependency
declaration moves. Lockfile-only change.
The remaining smol-toml advisory is not included: it parses operator-owned
client configuration rather than untrusted target content, and its fix moves
outside the declared range and changes leading-BOM handling.
* fix(semantics): link wrapped arrow Promise returns
* fix(reconstruction): preserve unknown graph limitations
* fix(native): preserve exact code signing identifiers
Signed-off-by: Rudy Celekli <47457359+rudycelekli@users.noreply.github.com >
* fix(native): recognize only whole otool command headers
Signed-off-by: Rudy Celekli <47457359+rudycelekli@users.noreply.github.com >
* fix(native): retain nm-proven literal export names
Signed-off-by: Rudy Celekli <47457359+rudycelekli@users.noreply.github.com >
* fix(javascript): project decoded file URL paths
Signed-off-by: Rudy Celekli <47457359+rudycelekli@users.noreply.github.com >
* fix: preserve explicit source-relative URL observation spelling
Signed-off-by: Rudy Celekli <47457359+rudycelekli@users.noreply.github.com >
* fix(native): project Mach-O evidence into container file offsets
Signed-off-by: Rudy Celekli <47457359+rudycelekli@users.noreply.github.com >
* fix(browser): normalize referrer policy fallback lists
Signed-off-by: Rudy Celekli <47457359+rudycelekli@users.noreply.github.com >
---------
Signed-off-by: Rudy Celekli <rudy@gradiahq.com >
Signed-off-by: RudyCelekli <47457359+rudycelekli@users.noreply.github.com >
Signed-off-by: Rudy Celekli <47457359+rudycelekli@users.noreply.github.com >
Co-authored-by: Rudy Celekli <rudy@gradiahq.com >
Co-authored-by: RudyCelekli <47457359+rudycelekli@users.noreply.github.com >
Co-authored-by: Kaoru0822 <aisakamimaki@gmail.com >
Co-authored-by: DeryFerd <deryferdikao125@gmail.com >
2026-10-07 10:33:10 +08:00
morluto and GitHub
ed933d1893
feat(native): add investigation features ( #486 )
...
* feat(native): add UI and dispatch investigation workflows
* feat(ghidra): support macOS host validation
* docs: update native investigation capabilities
* feat(artifacts): decode compiled Interface Builder archives
* feat(ghidra): expose bounded p-code value flow
* test(ghidra): split host and cross-format verification
* fix(verify): follow complete result contracts
* refactor: remove unused authorization and schema helpers
* refactor: remove unused evidence result alias
* fix(ghidra): report jump-table evidence precisely
* fix(verify): align browser scenario fixture schema
* fix(setup): compare parsed client config structurally
* test(ghidra): verify AArch64 jump-table mappings
* fix(ghidra): recover AArch64 byte jump tables
* test(artifacts): verify compiled interface builder archives
* feat(native): trace UI actions through handlers
* fix(tests): update native trace and shutdown fixtures
* fix(verification): diagnose browser scenario failures
* fix(browser): wrap scenario snapshots in capture state
* fix(native): bind and bound investigation workflows
* fix(artifacts): preserve bounded interface builder evidence
* fix(ghidra): enforce admitted hosts and preflight tools
* fix(native): preserve trace cancellation and bounds
* test(application): expect bound analysis target evidence
* fix(native): preserve investigation bounds and cancellation
* fix(application): preserve bundle and unresolved trace evidence
* style(test): format artifact subject fixture
2026-09-30 00:41:05 +08:00