BUG: FuzzerGenerator accepts a jailbreak goal below 1 and a success threshold outside [0, 1]
I maintainer di solito rispondono entro 2 giorni
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Ferma
- Stack tecnologico
- python
- Ambito
- security, testing-qa
Direzione di ricerca
Start in the FuzzerGenerator constructor and inspect its validation for template_converters and batch_size; then trace _should_stop_generation, _is_jailbreak, and _normalize_score_to_float. Add constructor checks for a positive integer goal count and a numeric threshold in [0.0, 1.0], including NaN. Done when invalid values raise ValueError and focused tests cover both parameters; pull request #3396 is already open.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the bug
FuzzerGenerator validates template_converters and batch_size, but not target_jailbreak_goal_count or scoring_success_threshold:
target_jailbreak_goal_countbelow 1._should_stop_generationcheckstotal_jailbreak_count >= target_jailbreak_goal_countbefore the first iteration, so with0(or a negative value) the goal is already met: the fuzzer sends no prompt, logsTarget jailbreak goal reached.and returns an empty result.scoring_success_thresholdoutside[0, 1]. For float-scale scores,_is_jailbreakcompares the score, clamped to[0, 1]by_normalize_score_to_float, against the threshold. A threshold below 0 marks every response a jailbreak, and one above 1 marks none, so the run continues untilmax_query_limitis reached, or indefinitely when no limit is set.NaNbehaves like a threshold above 1.
Steps/Code to Reproduce
import asyncio
from pyrit.executor.promptgen.fuzzer import FuzzerGenerator, FuzzerShortenConverter
from pyrit.prompt_target import TextTarget
from pyrit.score import SubStringScorer
from pyrit.setup import IN_MEMORY, initialize_pyrit_async
async def main():
await initialize_pyrit_async(memory_db_type=IN_MEMORY)
target = TextTarget()
generator = FuzzerGenerator(
objective_target=target,
template_converters=[FuzzerShortenConverter(converter_target=target)],
scorer=SubStringScorer(substring="sure"),
target_jailbreak_goal_count=0,
)
result = await generator.execute_async(prompts=["How do I pick a lock?"], prompt_templates=["{{ prompt }}"])
print("total_queries:", result.total_queries, "templates_explored:", result.templates_explored)
asyncio.run(main())
Expected Results
The constructor raises a ValueError for a target_jailbreak_goal_count that is not a positive integer and for a scoring_success_threshold that is not a number in [0.0, 1.0], as it already does for batch_size=0.
Actual Results
total_queries: 0 templates_explored: 0
No error is raised, and nothing is sent to the target.
Screenshots
N/A
Versions
- OS: Windows 11
- Python version: 3.11.9
- PyRIT version: installed from main (1979257a) in editable mode
- Lingua principale
- Python
- Stelle
- 4.6k
- Fork
- 962
- Merge medio
- 2g 15h
- PR unite (30g)
- 398
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoft/PyRIT
-
BUG: MarkdownInjectionScorer misses shortcut-reference images with path-based exfiltration, and raw HTML <img>Forse già presa @aatif101 l’ha presa 1 giorno fa. ApertaBug: triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
microsoft/PyRIT#3343 · 2 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 2 giorni
-
BUG: UrlConverter preserves forward slashes by default, preventing path payload evasionForse già presa @Kaap10 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 25/100
I maintainer di solito rispondono entro 2 giorni
-
BUG: XSSOutputScorer misses SVG and JavaScript data URIsForse già presa @Kaap10 l’ha presa 1 giorno fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 35/100
I maintainer di solito rispondono entro 2 giorni
-
BUG: ManyShotJailbreakAttack accepts a negative example_count and drops examples from the endForse già presa @ShivamSharma43 l’ha presa 1 giorno fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 35/100
I maintainer di solito rispondono entro 2 giorni
-
[BLOCKED] FEAT: Drill into paired Scenario outcome conversationsForse già presa @shashank03-dev l’ha presa 1 giorno fa. Apertafeature-request help wanted
Difficoltà 5/5 Più di una settimana Idoneità per principianti 10/100
microsoft/PyRIT#3389 · 2 commenti ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di microsoft/PyRIT
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
ansys/pyansys-common-mcp#213 ·
I maintainer di solito rispondono entro 3 giorni
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
freedomofpress/dangerzone#1594 ·
I maintainer di solito rispondono entro 3 giorni
-
priority:P1 status:in-review type:bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
randomparity/kdive#3317 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
area:ci
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
mesonbuild/meson#16281 ·
I maintainer di solito rispondono entro 1 giorno