130 Commits

Author SHA1 Message Date
blacktop c20f9af712 fix: multiple security vulnerabilities (SSRF, path traversal)
- Remove POST /diff/files endpoint that allowed arbitrary host file reads
  (CWE-22); clients must now read files locally and POST content to
  /diff/blobs instead
- Add validatePublicURL() to /info remote endpoints, rejecting URLs that
  resolve to loopback, private, link-local, or multicast addresses to
  prevent SSRF; also remove attacker-controlled proxy/insecure params
- Add SanitizeArchivePath() helper that verifies extracted archive entry
  paths stay within the destination directory (zip-slip / tar-slip,
  CWE-22); replace bare filepath.Join(dest, filepath.Clean(name)) calls
  in SearchZip, OTA parser, AA payload extractor, and ota_extract
- Fix server listen address to use net.JoinHostPort to respect Host config
2026-04-11 14:37:41 -06:00
ThePraeceps d3ca9d7519 feat(symbolicate): add syscall, mach trap, and MIG symbols to output (#1158) 2026-04-04 17:40:13 -06:00
blacktop 196d77de6f feat: add kernel C++ parsing to symbolicate cmds and APIs
Add API endpoints and CLI support for discovering C++ classes and symbolication of kernelcaches, refactor Mach-O handling, and improve symbol collection.

- API: add /kernel/cpp and /kernel/symbolicate routes, request param structs, response types, and openKernel helper. Use cpp scanner and signature parsing to return classes and symbol maps.
- CLI: wire scanner LogStats flag, refactor kernel symbolicate command (schema writer helper, improved signature parsing, and symbol matching logic). Add tests for symbolicator schema and kernel symbol matching.
- Signature pkg: add kernel C++ symbol extraction (pkg/signature/kernel_cpp.go) and SymbolicateMachO to symbolicate already-open Mach-Os; integrate C++ symbols into symbol map and update signature matching/logging behavior.
- Internal: refactor in-memory DB lookups (findMachOByUUID, findSymbolByAddr) to reduce duplication. Improve symbols collection for kernel Mach-Os (collectKernelMachoSymbols, extra kernel symbols from signature/C++), add helpers to append symbols.
- Kernelcache CPP: add LogStats option and conditional logging of scan stats.
- Crashlog/ips: update wording to reflect kernel symbols are from kernel analysis and store KernelSymbols earlier in processing; parse signatures only when configured.

Also add unit tests for new symbolication helpers and kernel C++ signature handling. Overall this consolidates kernel symbol discovery, improves reuse, and surfaces C++-derived symbols in symbol maps.
2026-03-10 12:20:12 -06:00
Sam Collinson d35f0ebdff fix: add proxy support for downloading FCS keys 🥝 (#914) 2025-11-09 11:38:09 -07:00
blacktop 0c052c6c19 fix(symbols): implement symbol demangling and formatting functions 2025-11-01 14:55:35 -06:00
blacktop 5de6fed777 chore: use go-macho's swift demangle + remove internal one 2025-10-30 09:16:39 -06:00
blacktop 6e31eb5d0b feat: add support for 'rdisk' to ipsw mount cmd 🇬🇧 2025-09-23 11:12:38 -06:00
blacktop e1ad160d0d feat: added --mount-point|-m flag to ipsw mount cmd to let you pick the mount location + docs update 2025-08-12 15:55:42 -06:00
blacktop 478a569c74 fix: add partial --insecure support to fcs key pem download in AEA commands 2025-07-29 15:11:53 -06:00
blacktop cb138b0bc4 docs: update CLI docs 2025-03-29 22:31:06 -06:00
blacktop 69f5d5c947 feat: add ability to ipsw mount encrypted DMGs with --key flag OR --lookup them from TheAppleWiki 🇦🇷 2025-02-26 21:44:54 -07:00
blacktop 8a32846453 fix: disable swagger docs until they update to support Go 1.24 2025-02-13 16:54:43 -07:00
blacktop 2aacaf66d2 feat: add NEW /macho/info/strings route to ipswd 2024-10-14 14:54:40 -06:00
blacktop bfb1587367 docs: fix API docs for /syms/rescan 2024-10-02 14:48:47 -06:00
blacktop 8ff0307cf5 chore: use appropriate HTTP response code for PUT in ipswd /syms/rescan 2024-10-02 12:09:05 -06:00
blacktop b236da9b7d chore: change /syms/rescan from POST to PUT 2024-09-26 12:56:54 -06:00
blacktop db74fb9cc4 docs: add API docs for /syms/rescan route 2024-09-25 16:06:29 -06:00
blacktop d221d585e0 feat: add /syms/rescan route to ipswd to allow and IPSW to be rescanned w/ say NEW symbolicator signatures etc 2024-09-25 16:05:01 -06:00
blacktop fda8c8e071 fix: postgres name/path table joins 2024-09-25 15:22:37 -06:00
blacktop 5947486258 chore: also add sig_dir as an optional POST query param in addition to config setting 2024-09-19 19:23:28 -06:00
blacktop 91ccb2b225 docs: update symbolicate guide to include symbol server daemon config example 2024-09-19 19:11:19 -06:00
blacktop 74a8933b9a chore: return 409 when scanning the same IPSW via ipswd /syms/scan route 2024-09-19 18:48:28 -06:00
blacktop a1e10bfaab chore: make --force the default when hdiutil detach-ing 🇬🇧 2024-09-03 15:03:10 -06:00
blacktop 6ef1a05c28 fix: use case-sentative slices.Contains where it makes sense 2024-08-08 15:38:42 -06:00
blacktop 455d715be5 docs: update CLI docs 2024-07-27 23:33:06 -06:00
blacktop ca20cb85fb chore: add support for aea.DecryptConfig and B64SymKey arg 2024-07-26 14:01:37 -06:00
blacktop 62f7e59296 fix: also thread pem-db config through ipswd /extract routes 2024-07-16 14:57:47 -06:00
blacktop 42ae87262d chore: adding initial kernel symbolication support to ipswd's /syms/scan API 2024-07-16 09:29:28 -06:00
blacktop 24a64fc36f fix: thread config.yml daemon pem-db config through ipsw API routes that can use it 2024-07-15 20:12:37 -06:00
blacktop 5283f11034 fix: better solution of the API /mount fix 2024-07-10 16:00:48 -06:00
blacktop 639ce7ea38 docs: fix API docs 2024-07-10 15:02:39 -06:00
blacktop 24ac286b16 docs: fix API return type for /aea/fcs-keys 2024-07-10 14:53:06 -06:00
blacktop 87edee4d16 docs: add API docs for /aea route 2024-07-10 14:40:51 -06:00
blacktop 3021f68832 feat: add 🆕 /aea/fcs-leys/:key route to ipswd 2024-07-10 14:34:59 -06:00
blacktop ea06906388 Update swagger.json 2024-07-08 22:19:22 -06:00
blacktop b71f77f7ae feat: add support for --pem-db everywhere it's needed to allow for external AEA pem key JSON databases to be used 2024-07-08 22:14:10 -06:00
blacktop 5cce056e0c chore: add ability for the ipsw symbolicate symbol server to tell you it doesn't have the required IPSW scanned yet 2024-07-05 17:37:15 -06:00
blacktop 29b8785af8 feat: add support for using **symbol server** with ipsw symbolicate command 2024-07-05 15:03:25 -06:00
blacktop d3e07d97be chore(deps): go back to previous way with dev-deps 2024-07-05 12:10:53 -06:00
blacktop 4e1d85458e docs: smol fix 2024-07-04 00:28:23 -06:00
blacktop e4633fb3a2 docs: minor API doc fix 2024-07-03 17:43:39 -06:00
blacktop 5a9da7d4b0 docs: fix API docs 2024-07-03 17:16:12 -06:00
blacktop 9f56962735 feat: add ability to query symbols via ipswd API routes /api/syms/:uuid and /api/syms/:uuid/:addr 2024-07-03 17:02:08 -06:00
blacktop aae88ad062 chore(deps): add dev-deps to go.mod 🥃 2024-07-02 22:33:14 -06:00
blacktop 1dda3daa4f docs: update docs 2024-07-02 20:50:45 -06:00
blacktop 69173b32f5 feat: add NEW /syms/scan route to ipswd API to gen symbol server from IPSW 2024-07-02 10:12:14 -06:00
blacktop 3c5e3b02a5 feat: add ability to partial-partialzip AEA1 private-key .pem files from remote/local IPSWs 2024-06-11 12:42:44 -06:00
blacktop b92ac6c82f feat: thread the 🆕 AEA1 decryption transparently through all relevant ipsw cmds 2024-06-11 02:25:18 -06:00
blacktop 7704d0e57c chore(deps): bump dep 2024-05-31 11:23:03 -06:00
blacktop 7b4d529ea0 feat: add new /amfi/dev route to ipswd 🥃 2024-04-26 18:39:16 -06:00