Skip to content

Releases: datascry/kitsune

v1.18.0

Choose a tag to compare

@github-actions github-actions released this 08 Jul 21:05

1.18.0 (2026-07-08)

Features

  • arena: 3d spatial gate core — isometric cube grid, mint + set-verify (e19adda)
  • arena: analog-clock captcha gate — render + read-the-clock verify, grounded (95c1082)
  • arena: audio gate core — embedded fsdd corpus + pure-go wav codec + mint/verify (841d8e0)
  • arena: wire the audio gate — /arena/audio mint+verify, catalog, speed floor (664c049)
  • arena: wire the spatial gate — /arena/spatial mint+verify, catalog, speed floor (0339cc9)
  • detector: audio gate coherence join — relay + arena_audio_superhuman rule, grounded (a65e753)
  • detector: audio gate page widget — the audio gate is fully landed (a90171f)
  • detector: spatial gate landed — relay + page widget + solver + coherence join (8fdc720)
  • evaders: arena-defeat generalize — whole arena defeated in one coherent session (ad87ea0)
  • evaders: arena-defeat r2 — a real browser clears no_js_execution + passes the gate paced (07ab7fb)
  • evaders: arena-defeat r3 — coherent camoufox + paced solve defeats the clock gate (c2d085b)
  • evaders: arena-defeat r3 — coherent camoufox defeats the audio gate; all three defeated (a1dd4ac)
  • evaders: arena-defeat r3 — coherent camoufox defeats the spatial gate too (d809d4a)
  • evaders: arena-defeat r4 — ncc audio solve (13->100% easy) + reusable defeat profile (a3791e1)
  • evaders: audio gate reference solver — matched-filter, grounds the positive path (b0096c0)

Bug Fixes

  • arena: add the missing FSDD CC-BY-SA attribution for the audio corpus (238b7ed)
  • detector: allow clock through the arena captcha relay whitelist (12bb98c)
  • evaders: bump os-spoof x/crypto to v0.53.0 (ghsa ssh panic + unbounded) (037e8da)

v1.17.0

Choose a tag to compare

@github-actions github-actions released this 08 Jul 01:19

1.17.0 (2026-07-08)

Features

  • detector: add the webgl perf-vs-renderer gpu-substance tell (experimental) (e19bc02)

Bug Fixes

  • edge: block detector admin endpoints from the public edge (data-disclosure) (e7e0c5f)
  • edge: cap the /ingest body size to prevent memory-exhaustion dos (f146fcc)
  • edge: enforce the network-signal source-trust boundary at the proxy (0e84b76)
  • edge: generalize the trust boundary — keep only browser+behavioral client signals (63a3d15)

v1.16.0

Choose a tag to compare

@github-actions github-actions released this 06 Jul 21:44

1.16.0 (2026-07-06)

Features

  • evaders: park gvisor netstack for os-spoof — blocked on an upstream go-build bug (c7ec0f8)
  • evaders: patched mesa llvmpipe flips chromium's webgl renderer to hardware (grounded) (fa449ae)
  • fleet: morph-diffuse strategy — distinct coherent builds shed the ja4_prefix binding (beb2bea)

Bug Fixes

  • evaders: land a full browser session through os-spoof (deep inbox + reassembly) (7f77975)

v1.15.0

Choose a tag to compare

@github-actions github-actions released this 06 Jul 00:39

1.15.0 (2026-07-06)

Features

  • arena: difficulty levels for the moving-target widget (easy/medium/hard) (07bc53f)
  • arena: live claude agent caught on the rendered moving-target widget (edf86ae)
  • arena: rendered moving-target widget — the stale-snapshot captcha, fp-safe grounded (406ae40)
  • arena: stale-snapshot tell — catch an llm agent acting on a seconds-old view (f20c94b)
  • arena: tune moving-target widget for human-solvability (9/10, fp-safe, agent-caught) (9fb8616)
  • detector: session_flow_robotic — the machine-regularity flow tell (0cf7ada)
  • detector: session_flow_superhuman — the multi-step flow-cadence tell (3f35b16)
  • evaders: add macos-firefox morph profile — camoufox mac caps bug fixed, coherent (1c18441)
  • evaders: arena-solver KS_HUMANIZE — paced flow evades the cadence floor tell (e10ad84)
  • evaders: coherently morph the device model via cdp metadata (clean win) (3b2ce6e)
  • evaders: curate a coherent device corpus + document the morphing stack (a5b42d0)
  • evaders: fall the gpu-caps wall in software (llvmpipe + coherent renderer, no gpu) (76c8ce6)
  • evaders: ground the gpu-caps wall to a camoufox data bug (llvmpipe gives 16384 in software) (d054eb4)
  • evaders: ground the gpu/webgl wall — real-hardware-bound; revert corpus-string auto-apply (28e53f2)
  • evaders: wire the device corpus load; ground cores coherence as environment-bound (4baa36f)
  • harness: cross-os morph profile (os-spoof + camoufox) — coherent; robustness is the residual (fa1ba0e)
  • harness: full-stack morph-profile validator — per-layer coherence table, grounded (440fc58)
  • harness: unified morphing-profile registry + composer — linux-desktop coherent live (a32f472)

Bug Fixes

  • arena: apply go 1.26 gofmt import ordering (blank _ embed import) (ca080c6)

v1.14.0

Choose a tag to compare

@github-actions github-actions released this 04 Jul 01:13

1.14.0 (2026-07-04)

Features

  • arena: ?charset= selector — the second text ocr bench axis (5da81f0)
  • arena: ?font= selector + captcha reports its typeface (the ocr bench) (018f2af)
  • arena: add dancing-script (cursive OFL) — drops TrOCR to 5/8, the hardest face (3369c34)
  • arena: add liberation-serif (OFL) — a distinct design that drops TrOCR to 7/8 (65b4d38)
  • arena: convict a queue client that acts before admission (queue-bypass) (13fc818)
  • arena: convict a session that fills a hidden honeypot field (3339fec)
  • arena: double the emoji taxonomy — add plant/weather/sport categories (8dcf831)
  • arena: flag a captcha solved faster than a human can read+type (ocr/ml tell) (6a47130)
  • arena: flag a forged rotate trajectory + make the trajectory rule gate-agnostic (9018e1b)
  • arena: flag a slider trajectory that claims more drag-time than the whole solve (9ae691a)
  • arena: GET /arena/catalog manifest — enumerate the captcha bench space (b1b14cf)
  • arena: image-shapes — a 3rd owned image source (procedural geometry) (7af79e7)
  • arena: image-shapes 4->7 categories — add pentagon/hexagon/cross (53e8a5f)
  • arena: per-glyph rotation — real-world fidelity for the text gate (e9528e0)
  • arena: server-observed solve-timing (issue->verify age) + pow solve-rate telemetry (674c6fb)
  • arena: text captcha font pool — 5 go-family typefaces for the ocr bench (bad9336)
  • arena: waiting-room queue gate + superhuman admission-action tell (e61b1b3)
  • detector: convict a session that solves an arena captcha faster than a human (cd10de9)
  • detector: flag a session hoarding many concurrent queue positions (experimental) (68562ae)
  • detector: join the queue superhuman admission-action anomaly to the session (fb7f9e5)
  • detector: join the slider trajectory-forgery anomaly to the session verdict (3661af1)
  • detector: worker_removed — catch a client that strips window.Worker to hide the realm (2dca627)
  • evaders: arena-solver queue-abuse mode + full red-verify of the wait tells (4481fd4)
  • evaders: OCR_FONT selector — benchmark arena-solver-ocr per typeface (a25b3b9)
  • fleet: diffuse strategy — the maximal in-sandbox evader, grounded live to evade both axes (01e4f13)
  • fleet: diffuse-automated strategy — red-verify axis-a corroboration end-to-end live (7578de7)
  • fleet: diffuse-scheduled strategy — red-verify the scheduled-stagger timing dim (9517765)
  • fleet: residential-proxy strategy — red-verify proxy_egress end-to-end live (ba180fa)
  • fleet: socks-proxy strategy — red-verify the stack-divergence path end-to-end live (73aa17b)
  • harness: broaden proxy_egress to catch socks re-origination via stack-vs-ua divergence (f6ebc81)
  • harness: corroborate a 2-dim axis-a candidate to campaign on a per-session bot tell (678bfcf)
  • harness: proxy_egress dim — convict a residential-proxy fleet on a shared tunnel MSS (507c7bb)
  • harness: scheduled-stagger regularity — a baseline-free axis-a coordination timing dim (8a14fa2)

Bug Fixes

  • arena: make the difficulty ladder monotonic — image-select hard grows to 12 tiles (017693e)

v1.13.0

Choose a tag to compare

@github-actions github-actions released this 03 Jul 02:49

1.13.0 (2026-07-03)

Features

  • detector: br.android_mobile_dpr1 — Android backing-scale realism (mobile B-androiddpr) (5f783f5)
  • detector: br.android_model_dpr_incoherent (6833c6b)
  • detector: br.android_model_gpu_incoherent (48ae6fa)
  • detector: br.android_model_os_exceeds (c3a0dd0)
  • detector: br.android_model_os_predates (7ae7f8e)
  • detector: br.android_model_screen_incoherent (7d51032)
  • detector: br.android_no_contacts_api (122a446)
  • detector: br.android_phone_screen_oversized — first Android device-coherence check (loop B5) (f761e49)
  • detector: br.devicememory_vs_engine — Blink-only deviceMemory under a non-Blink UA (loop B2) (ee014fe)
  • detector: br.devicememory_worker_divergence — realm coherence for deviceMemory (loop B2b) (a4972fd)
  • detector: br.gpu_uniform_underreport (6d86154)
  • detector: br.ios_dpr_incoherent — device<->DPR joint coherence (loop B1) (6f42122)
  • detector: br.ios_no_standalone — iOS-Safari surface that beats the WebKit iOS node (loop B-ns) (fc146d9)
  • detector: br.ios_screen_desktop_res — sub-1400 desktop-res under iOS UA (loop B4-slice) (5008664)
  • detector: br.ios_screen_offmanifold — full iOS device-screen set (loop B4-full) (f158f40)
  • detector: br.ios_screen_oversized — device<->screen joint coherence (X5 iOS slice) (276f40b)
  • detector: br.mobile_cores_high (84f5da9)
  • detector: br.mobile_gpu_caps_mismatch (e47ae9a)
  • detector: br.mobile_gpu_not_mobile (51787ee)
  • detector: br.mobile_gpu_uniforms_software — close the low-end-GPU evasion (mobile B-uniforms) (efa0091)
  • detector: br.mobile_no_js_model (201749e)
  • detector: br.mobile_pointer_hover_desktop (f4e8749)
  • detector: br.uadata_model_worker_divergence (4f5bbea)
  • detector: br.uadata_worker_divergence (0f81ae4)
  • detector: br.webgl_maxtexture_unallocatable (192f6a5)
  • detector: generalise ch_ua_on_non_chromium_ua — close the Firefox Sec-CH-UA gap (loop B-nc) (bcb2057)
  • detector: harden mobile_gpu_caps_mismatch to the full WebGL cap triad; webgpu tested-dead (705a4c2)
  • detector: net.ch_ua_mobile_no_model (1cf80ec)
  • detector: net.ch_ua_on_safari_ua — Blink-faking-Safari at the header layer (loop B-chua) (6a789b1)
  • detector: net.tcp_static_window — flow-level TCP behavior, the first tell below the SYN (5d0d1b5)
  • detector: net.tcp_syn_anomaly — p0f-grounded SYN value-vs-order coherence (acf88ef)
  • edge: wire slow-HTTP (slowloris) detection end to end + driver (G16) (158d50b)
  • evaders: add chain-mitm harness — chained tool stacks are counterproductive (d200a09)
  • evaders: add KS_ANDROID_FONTS — Android-coherent font set for a Chromium mobile device (07e1c85)
  • evaders: add KS_DEVICE — a coherent per-OS device randomizer (the vision's red half) (372a086)
  • evaders: add KS_ENGINE=webkit — the coherent iOS device runtime (loop R3) (b0e176f)
  • evaders: add KS_FORGE_JS_MODEL (9d00dc5)
  • evaders: add KS_FORGE_MODEL (a13bbbf)
  • evaders: add KS_MOBILE_FONTS (7482710)
  • evaders: add KS_RENDERER_WORKER (7d55628)
  • evaders: add KS_STRIP_CHUA evades ch_ua_on_safari_ua — TLS/h2 substrate holds (loop R-chua) (148e826)
  • evaders: camoufox KS_PROVISION (44f0423)
  • evaders: camoufox KS_REAL_INPUT — the fused maximal coherent single-session stack (69686ed)
  • evaders: camoufox macOS Retina DPR — engine-level spoof beats macos_dpr1 (loop R-mac) (21bab3a)
  • evaders: compose KS_DEVICE + KS_PROVISION in the stealth image (loop R1) (6e0f464)
  • evaders: os-spoof — userspace TCP + uTLS forges the kernel, beats net.tcp_os_vs_ua (6bf190a)
  • evaders: os-spoof coherent OS profiles — a fleet morphs into any mix (b742546)
  • evaders: os-spoof proxy mode (f265eed)
  • evaders: strip camoufox macOS internal dot-fonts — evades font_mac_internal (loop R-font) (50e6250)
  • evaders: synthesize navigator.standalone on the WebKit iOS node (loop R3++) (dd4348e)
  • harness: wire the coordination scorer as an L7-flood attributor (G17) (ab0712b)

Bug Fixes

  • detector: mobile_cores_high threshold 8->9 (a6065ae)
  • detector: narrow mobile_gpu_caps_mismatch to confidently-16384 GPUs (d225e9b)

v1.12.0

Choose a tag to compare

@github-actions github-actions released this 29 Jun 19:56

1.12.0 (2026-06-29)

Features

  • detector: conviction/corroboration scoring — no more misleading % (371af2b)
  • detector: no-capture privacy posture for the public site (005b664)
  • harness: adversary-showcase — the coordination red⇄blue escalation ladder (56f4207)
  • harness: fleet Objectives — shard a goal's work across coordinated workers (e642053)
  • harness: stagger lever (reduce coordination) + robust diversification showcase (35903e9)

Bug Fixes

  • detector: guard arena gate slug to close the reflected-XSS path (d6753be)
  • detector: remove dead share button; corroboration on its own line (5077f79)
  • detector: stop convicting genuine privacy browsers + VPN users (ee50cfd)
  • evaders: bump golang.org/x/net to v0.56.0 in azuretls (GO-2026-5026) (8993f55)

Performance Improvements

  • harness: productionize axis A — blocking candidate-gen + windowed streaming (4f3d889)

v1.11.0

Choose a tag to compare

@github-actions github-actions released this 28 Jun 17:52

1.11.0 (2026-06-28)

Features

  • arena: RPS-gated arena (token-bucket rate gate) + RPS recon as a campaign wave (42d2a5a)
  • coordination: fold source IPs to /64 origins for ipv6 (8c511fd)
  • detector: bh.action_cadence_deliberative — llm think-time tell (0897572)
  • detector: bh.input_via_paste — programmatic form-input AI-agent tell (dd97933)
  • detector: bh.scroll_teleport — programmatic scroll AI-agent tell (031963c)
  • detector: convict no-js scrapers via ja4 tool-vs-ua coherence (eca5b9d)
  • detector: is_abuse_listed IP reputation from Spamhaus DROP + IPsum (9ccb130)
  • edge: DNS-free declared-crawler verification via deploy-refreshed CIDR feeds (3661696)
  • edge: expand ja4 hint table from ja4db (public BSD-3 JA4→client data) (81f613d)
  • evaders: camoufox executes the behavioral task DSL (a second, Playwright backend) (e7821d6)
  • evaders: KS_REAL_INPUT — real OS-level (XTEST) pointer input beats the behavioral layer (0645d15)
  • harness: add a managed real-evader fleet orchestrator (mixed images, retry, capture+grade) (a3a8799)
  • harness: adversary archetype catalog — named personas the fleet emulates (209242e)
  • harness: archetype validation harness — run each persona live, check it matches the catalog (dacf42b)
  • harness: axis A — population/aggregate coordination (campaign detector) (150b6ea)
  • harness: bake the red-team evasion ladder into the fleet manager (named evasions) (b8a6a11)
  • harness: behavioral task scripts for fleet workers (DSL + CDP executor) (3670bef)
  • harness: declarative engagement plans for the fleet manager (YAML/JSON + examples) (84fb79e)
  • harness: distinct-builds lever + multi-cluster fragmentation reporting (730ad43)
  • harness: multi-wave campaigns — an engagement as a sequence of fleet waves (302f984)
  • harness: review-farmer archetype — the behavioral (trace_collision) binding (b770ec3)
  • harness: RPS scoping — the recon RATE dimension (ramp + throttle-knee budget) (4c1176d)
  • harness: structured engagement report — the red⇄blue finding a fleet run produces (1f0ff2a)
  • harness: tool-ja4 corroborates a no-js coordination fleet (63d6583)
  • harness: wire KS_REAL_INPUT into the fleet as the real-input evasion (efb55a8)

v1.10.0

Choose a tag to compare

@github-actions github-actions released this 27 Jun 05:16

1.10.0 (2026-06-27)

Features

  • detector: add br.webgl_caps_worker_vs_main — the hardened cross-realm GPU tell (b56fd93)
  • fleet: add the staggered-timing Skulk strategy — lockstep is corroborating-only (3db9e3a)

v1.9.0

Choose a tag to compare

@github-actions github-actions released this 27 Jun 03:56

1.9.0 (2026-06-27)

Features

  • arena: add Quick, Draw! doodle image-select (CC BY 4.0) — the second image source (204135e)
  • arena: emoji image-select gate (Noto Emoji, OFL) — real CV, not shapes (ca17fa4)
  • arena: harden text-captcha noise + add the verify-you-are-human checkbox (823f658)
  • arena: image-select + rotate captcha gates (the interactive visual families) (eec1ba8)
  • arena: pact / private-access-token gate — skip the challenge on a personhood token (2f9f1c9)
  • arena: per-gate difficulty levels (easy/medium/hard) as a cost dial (1bbd748)
  • arena: public challenge-gate service + detector relay (arena MVP backend) (0b28193)
  • arena: self-hosted CAPTCHA gates (text image · math · honeypot) (2c28549)
  • arena: slider captcha — drag-to-fit + behavioural trajectory check (GeeTest-style) (dbe4579)
  • contracts: arena scope-as-code — challenge + finding contracts, owned-only allow-list (2cefd46)
  • detector: arena gates auto-serve on load as bypass-testing pages (5b517a7)
  • detector: managed-challenge ladder gate (Turnstile-style) on the arena (2821040)
  • detector: pull geo data keylessly at deploy so the wire panel resolves it (db178ad)
  • detector: rebuild the arena as per-challenge pages on the shared site shell (8dbe333)
  • detector: the public /arena page — in-browser solver + dual verdict (3cebc5a)
  • edge: capture reused TLS-resumption ticket; add the ticket-reuse coordination binding (c286721)
  • edge: detect HTTP/2 MadeYouReset stream-reset coercion (CVE-2025-8671) (748bca6)
  • edge: detect Web Bot Auth in-window nonce replay (RFC 9421 / G32) (dbcce67)
  • evaders: browserless arena-solver that beats every arena gate (owned gates only) (d5710af)
  • evaders: computer-vision classifier beats the hardened image-select gate (7eeeeae)
  • evaders: solve the arena distorted-text gate with a HuggingFace OCR model (77a1045)
  • fleet: add fuzzy-rotate fleet + measure the cross-JA4 similarity FP boundary (83402e5)
  • fleet: add Skulk, a fleet adversary-emulation kit for coordination-defense testing (22b4621)
  • harness: add template-similarity coordination rung (closes the fuzzy-trace gap) (506a837)
  • harness: live-ground the fleet-coordination axis end-to-end (1210d7b)

Bug Fixes

  • arena: make rotate behavioural — score the drag trajectory, not a submitted angle (20fd62e)
  • arena: rasterize the text + image-select gates so they need OCR/CV, not markup (6713eac)
  • detector: open the network/wire panel by default too (b6db2ab)
  • detector: stack the detections table into cards on mobile (3b509c6)
  • repo: run the arena in the pull-based production deploy (454367a)