Turkish and multilingual prompt-injection / jailbreak probes for NVIDIA garak (LLM vulnerability scanner).
Project description
garak Turkish probes — a multilingual LLM vulnerability scanner plugin
garak-multilingual is a pip-installable plugin pack for NVIDIA garak that adds Turkish and multilingual prompt-injection, jailbreak and Turkish-casefold-evasion probes. It exists to make garak a better multilingual LLM vulnerability scanner and to give defenders a way to run non-English prompt injection testing against their own models — a surface that garak's English-first probes underserve.
If you already use garak to red-team your LLM, this pack lets you answer: does my guardrail hold up when the attack is written in Turkish, German, Spanish, Russian, Arabic, Chinese, Persian or French — or when an attacker abuses the Turkish dotted/dotless-I to slip a keyword past a filter?
This is authorized defensive security-testing tooling. Every payload is a probe you send to a model you own or are permitted to assess. See Responsible Use.
Turkish casefolding context: the maintainer's open garak contribution, NVIDIA/garak PR #1997 (Turkish dotted/dotless-I casefold buff), motivated the casefold-evasion probe in this pack.
Keywords
garak turkish probes · multilingual llm vulnerability scanner · non-english prompt injection testing · garak plugin · llm red teaming · turkish prompt injection · jailbreak probes · OWASP LLM Top 10 · MITRE ATLAS
Install
pip install garak-multilingual # once published
# or, from a clone:
pip install .
This declares garak as a dependency. The payload corpus itself
(garak_multilingual/payloads.py) is dependency-free and can be imported and
audited without installing garak.
Usage
Run a single probe against any garak-supported model, e.g. the built-in
test.Blank generator or your own endpoint:
garak --model_type test.Blank \
--probes garak_multilingual.probes_ml.TurkishInjection
Other probes in this pack:
garak --model_type <your_model> --probes garak_multilingual.probes_ml.MultilingualInjection
garak --model_type <your_model> --probes garak_multilingual.probes_ml.TurkishCasefoldEvasion
garak --model_type <your_model> --probes garak_multilingual.probes_ml.TurkishJailbreak
Run all four:
garak --model_type <your_model> \
--probes garak_multilingual.probes_ml.TurkishInjection,garak_multilingual.probes_ml.MultilingualInjection,garak_multilingual.probes_ml.TurkishCasefoldEvasion,garak_multilingual.probes_ml.TurkishJailbreak
Probes → OWASP LLM Top 10 → MITRE ATLAS
| Probe class | Language(s) | What it tests | OWASP LLM Top 10 | MITRE ATLAS |
|---|---|---|---|---|
TurkishInjection |
tr |
Idiomatic Turkish instruction-override, role reassignment, system-prompt exfiltration ("Önceki tüm talimatları unut …") | LLM01: Prompt Injection | AML.T0051 |
MultilingualInjection |
tr,de,es,ru,ar,zh,fr,fa |
Same injection intent across ≥4 languages garak underserves | LLM01: Prompt Injection | AML.T0051 |
TurkishCasefoldEvasion |
tr |
Dotted/dotless-I keyword evasion (İGNORE / ıgnore) against ASCII lower() filters | LLM01: Prompt Injection | AML.T0051 |
TurkishJailbreak |
tr |
Turkish DAN / grandma / opposite-mode / affirmative-prefix jailbreaks | LLM01: Prompt Injection | AML.T0054 (Jailbreak) |
Each probe carries garak tags (including owasp:llm01 and the ATLAS
technique IDs above) and a recommended_detector
(mitigation.MitigationBypass).
Honesty, coverage and provenance
This section is deliberate — the value of a security tool is undermined if it overclaims.
- Coverage, not superiority. These probes cover languages and a
Turkish-specific casefold trick that garak's built-in, English-first probe
families (
promptinject,dan,latentinjection) do not focus on. They are a complement to, not a replacement for, those probes. - Not "stronger" than English probes. Non-English payloads are not inherently more powerful. A robust guardrail may block all of these; a weak, English-only guardrail may fail them precisely because they are non-English. The point is to measure that gap, not to claim a better attack.
- Per-payload provenance. Every payload in
payloads.pyincludes anotedocumenting the linguistic trick or archetype it exercises (e.g. which keyword carries a dottedİ, or which jailbreak family it adapts), so you can audit coverage rather than trust an opaque list. Counts: Turkish injection 16, multilingual 14 (8 languages), casefold evasion 12, Turkish jailbreak 14. - Prior art / credit. Built on and for NVIDIA garak (Apache-2.0). The Turkish casefold work references the maintainer's open garak PR #1997. Jailbreak archetypes (DAN, "grandma exploit", opposite-mode, affirmative-prefix) are widely documented community techniques, here adapted into Turkish as framing only — no operational harmful content is included.
- No benchmark claims. This pack ships payloads and probe wiring. It does not ship success-rate numbers against any named model; measured bypass/refusal rates depend entirely on the target you run it against.
- Detectors. The recommended detector is a heuristic
(
mitigation.MitigationBypass); treat flagged hits as candidates to review, not ground truth. Tune detection to your own policy.
Responsible Use
These payloads are adversarial by design and provided only for authorized, defensive LLM security testing:
- Run them only against models and systems you own or have explicit written permission to test.
- The goal is to find and fix guardrail gaps (OWASP LLM01 / LLM02, MITRE ATLAS AML.T0051 / AML.T0054), not to produce harmful output. Payloads are framing/override attempts and do not contain operational instructions for causing harm.
- Follow responsible-disclosure practice for any third-party service you assess, and comply with all applicable law and platform terms.
Development & tests
The test suite is stdlib-only and does not import garak, so you can validate the corpus and probe structure without the heavy dependency:
python -m pytest -q
# or, without pytest installed:
python tests/run_tests.py
Tests assert: payloads.py imports with no third-party deps, every payload set
is non-empty, all prompts are non-empty strings with provenance notes, BCP-47
tags are present and valid, the multilingual set covers ≥4 languages, every
casefold payload actually contains a Turkish İ/ı, and probes_ml.py
byte-compiles and declares the expected OWASP/ATLAS tags.
License
Apache-2.0. See LICENSE and NOTICE.
İlgili AltaySec Kaynakları
- 📖 Türkçe Prompt Injection: Saha Verisinden 5 Saldırı Kalıbı — konunun derinlemesine Türkçe analizi
- 🌐 AltaySec Araştırmalar — Türkçe yapay zekâ güvenliği yazıları
Atıf
@software{altaysec_garak_multilingual_probes_2026,
author = {{AltaySec}},
title = {garak-multilingual-probes},
year = {2026},
url = {https://github.com/fevziegeyurtsevenler/garak-multilingual-probes}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file garak_multilingual-0.1.0.tar.gz.
File metadata
- Download URL: garak_multilingual-0.1.0.tar.gz
- Upload date:
- Size: 21.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.10.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f3952cda1c51e2d910043393bcee76042d0491c0eaeb53bb6509b6931bb743e1
|
|
| MD5 |
24d728196c50cafec29699a8f9e304ff
|
|
| BLAKE2b-256 |
814348c6638592ab6a129929f75c50746239bda533ea1e39d122eda16f864e4d
|
File details
Details for the file garak_multilingual-0.1.0-py3-none-any.whl.
File metadata
- Download URL: garak_multilingual-0.1.0-py3-none-any.whl
- Upload date:
- Size: 19.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.10.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9850c32f2022538ee0cc01ca9e2342364ceeb8fa4e28f83b0d0e92aec1db2bbe
|
|
| MD5 |
d15fc2a7dc4747fb203ae3611195746f
|
|
| BLAKE2b-256 |
173cfb0ded50981d6fc1215015d70ec5c898b4dd52a9342e9f9c04e7dc709391
|