Repository navigation
v0.187.0
·
52 commits
to main
since this release
- Haskell SAST and taint, generalised beyond the shapes they were written against. New sources and sinks (Scotty, Yesod, WAI, Servant, Req, conduit, http-client), guards recognised by what they do rather than by name (host allow-lists, hand-written HTML escapers,
sh -cscripts), SSRF reported at the send instead of the parse, and Haskell-scoped engine fixes for branches handed to combinators,words,>>=and common lowering forms. On unseen-v3, now a development set, SAST and taint reach 100%; that is a regression result, not a generalisation claim. - Honest unseen measurement. A new set, unseen-v4 (78 forms, 13 families, measured once before this release's engine work), gives SAST recall 45.8% to 54.2% and taint precision 73.3% to 84.6%; taint recall is unchanged at 73.3%. Several families remain at 0 to 33% recall.
- Real-code precision did not move. On four pinned real Haskell projects (
bench/dag/independent-haskell/, one LLM labeler, 60 of the flagged sites), default-scan precision is 2.3% (95% interval 0.4% to 12.1%), against 2.0% before. The new engine flags additional sites that are unlabeled and are not counted. - Alias fix. A point-free alias of a library function (
tidy = takeFileName,run = callCommand) was treated as an unresolved call, so a sanitizer alias left a flow unsanitized and a sink alias went undetected. Aliases of library functions are now expanded; a local binding with the same name disables the expansion. - Exploit proof. Widened Haskell reproducer coverage and oracles.
- Gates. 56 Haskell mutation cases and 8 synthetic corpus entries (verdict-flip 460 of 460, corpus 228 of 228); layer-recall maps
.hsand.lhs, taint attribution 126 to 134. - Parity outside the engine. Haskell on the MCP
query_taint, context, compliance mapping, capability decisions, attack taxonomy, entrypoint inventory and reports, withdocs/language-parity-haskell.mdlisting what remains open. - Not done. The container proof path is untested,
prove_findingandprove_fixhave no.hsharness builder, andhaskell-web-authroute fixtures need a host with scotty, wai, servant and yesod to compile.