garak v0.17.0 — adds EU AI Act risk-category mapping
garak is NVIDIA's open-source LLM vulnerability scanner that runs probes/detectors for jailbreaks, prompt injection, PII leakage, package hallucination, markdown exfiltration and more against LLM targets. This v0.17.0 release adds a new EU AI Act risk-category mapping to tag and group probe results by the Act's risk categories, alongside fixes to the agent_breaker judge, markdown-exfiltration detectors, Ollama auth/generation support, and dropped Python 3.10 in favor of 3.13 support.
What it is
garak v0.17.0 (NVIDIA's LLM vulnerability scanner). The catalog summary covers the headline EU AI Act mapping (#2094), the agent_breaker judge work, Ollama auth/generation, and the Python 3.10→3.13 move. What it does not surface are two correctness fixes in this release that change whether prior scan results can be trusted.
Detection-correctness fixes worth acting on
- packagehallucination missed real hallucinated packages. Two separate bugs: the detector missed every package after the first in a combined
import a, bstatement (#1991), and it missed dotted and indented imports entirely (#2108). If you relied onpackagehallucinationin an earlier version, those were false negatives — flagged-clean results that were not actually clean. Re-run against 0.17.0 before trusting an earlier package-hallucination pass. - Markdown exfiltration link templates were incorrect (#2142), in addition to the detector guards the summary mentions (#1935, #2055). This affects the probe side, not just detection, so exfil-probe results from earlier versions may also be stale.
Reliability / operational fixes
- Indefinite hang against unreachable
OpenAICompatibletargets is fixed (#2153) — previously a run could stall forever if the endpoint was down. Relevant if you script garak in CI or against flaky/self-hosted endpoints. - Ollama empty-response retry now actually retries (#2122); NIM transient HTTP errors are retried and report the real status code (#2019).
- agent_breaker hardening beyond the summary's note:
_extract_jsonalways returns a dict (#2044), graceful degradation on malformed analysis shapes (#2069), and verdict type-validation (#2121) — i.e. the judge no longer crashes the run on unexpected output.
Preconditions
- Python 3.10 is dropped; 3.13 is added (#2084). Upgrading from 3.10 requires an interpreter bump, not just
pip install -U. - If you are still on ≤0.15.x, note that v0.16.0 introduced breaking changes the summary does not cover: a unified probe/buff/intent spec syntax (old
probe_spec/buff_specdeprecated), config files moveprobe_spec/buff_specinto the run definition, andreport.jsonlgains aprobe_summaryentry type with an expandeddigestformat. Report-parsing tooling built against older output will need updating.
Caveats
This is a release-notes page, not an advisory — there are no CVE ids, severities, or exploit details. The "false negative" framing above follows directly from the fix descriptions (packages that were previously missed); the page does not quantify how many detections were affected.
Technologies named here
- garak
- Python
- Ollama
- Anthropic API client
- OpenAI-compatible endpoints
- NVIDIA NIM
- AWS Bedrock
- NeMoGuardrails server
- Mistral API
- LangServe / LangChain
- Hugging Face Hub
- Anthropic
- EU AI Act
Techniques named here
- EU AI Act risk-category mapping
- IntentProbe / technique and intent annotation
- Markdown exfiltration
- AgentBreaker
- Package hallucination
- Ascii smuggling / badchars
- Homoglyph obfuscation / prompt smuggling
- Zero width bad char injection
- Atbash encoding
- ANSI escape codes in tokenizer
- Token smuggling
- DRA
- Dropbox repeated token attack
- GOAT probe
- System prompt extraction
- Web injection
- GCGCached / GCG probe
- TAP/PAIR probes
- DAN probes
- ProPILE probes
- Simple adaptive attacks probe
- API key probe
Related in AI Security
