BUG: OpenAITTSTarget accepts any speed, so an out-of-range value is only sent to the API on every request
Les mainteneurs répondent en général sous 2 jours
@ShivamSharma43 y travaille déjà.
Depuis le 22/10/2026.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 25/100
Piste de recherche
The issue identifies OpenAITTSTarget.__init__ and _send_prompt_to_target_async; locate those entry points in the PyRIT source and check how OpenAIVideoTarget validates duration. Add coverage for the listed invalid speed values and for None and valid boundary values. Done when invalid speeds raise ValueError at construction while None remains accepted; linked pull request #3447 is already open.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Describe the bug
OpenAITTSTarget.__init__ documents speed as "Select a value from 0.25 to 4.0", which is the range of the OpenAI speech API's speed parameter, but stores whatever is passed. _send_prompt_to_target_async then puts it in every request body (if self._speed is not None: body_parameters["speed"] = self._speed).
So speed=10, speed=-1.0, speed=0, speed=float("nan") or speed=True all construct a target without error, and the mistake only surfaces when each request reaches the API. The value is also recorded in the target's identifier as if it were valid. OpenAIVideoTarget already rejects an unsupported duration at the target instead of leaving it to the API.
Steps/Code to Reproduce
import asyncio
from pyrit.setup import IN_MEMORY, initialize_pyrit_async
asyncio.run(initialize_pyrit_async(memory_db_type=IN_MEMORY))
from pyrit.prompt_target import OpenAITTSTarget
for speed in (10, -1.0, 0, float("nan"), True):
target = OpenAITTSTarget(model_name="tts-1", endpoint="https://api.openai.com/v1", api_key="sk-test", speed=speed)
print(repr(speed), "-> accepted, will send speed =", repr(target._speed))
Expected Results
A speed that is not a finite number from 0.25 to 4.0 raises a ValueError when the target is created. None keeps the API default.
Actual Results
10 -> accepted, will send speed = 10
-1.0 -> accepted, will send speed = -1.0
0 -> accepted, will send speed = 0
nan -> accepted, will send speed = nan
True -> accepted, will send speed = True
Screenshots
N/A
Versions
- OS: Windows 11
- Python version: 3.11.9
- PyRIT version: installed from main (898b3bdc) in editable mode
- Langage dominant
- Python
- Étoiles
- 4.6k
- Forks
- 962
- Merge moyen
- 2 j 13 h
- PR mergées (30 j)
- 423
Préparer son environnement
Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Aucun guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de microsoft/PyRIT
-
BUG: AzureBlobStorageTarget returns a URL with // when the container URL ends with a slashPeut-être pris @ShivamSharma43 l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
Les mainteneurs répondent en général sous 2 jours
-
BUG: OpenAIImageTarget uploads edited images under a generated local path instead of their file namePeut-être pris @ShivamSharma43 l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 79/100
Les mainteneurs répondent en général sous 2 jours
-
BUG: PathTraversalOutputScorer misses canonical Windows target windows/win.ini and IIS web.configPeut-être pris @Kaap10 l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
Les mainteneurs répondent en général sous 2 jours
-
BUG: XXEOutputScorer misses direct external DTD references and Java netdoc: / gopher: URI schemesPeut-être pris @Kaap10 l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 2 jours
-
BUG: StaticPromptInjectionScorer misses modern LLM chat template tokens (Meta Llama 3+, Google Gemma, Microsoft Phi-3/4)Peut-être pris @Kaap10 l’a pris aujourd’hui. Ouverte
Difficulté 1/5 1-3 heures Accessibilité débutants 84/100
Les mainteneurs répondent en général sous 2 jours
Toutes les issues de microsoft/PyRIT
Issues similaires
-
type-bug
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
push_gh-pages fails on master branch on forksPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouvertegood first issue infrastructure
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
kuznia-rdzeni/coreblocks#1135 ·
-
good first issue server
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
Les mainteneurs répondent en général sous 1 jour
-
documentation priority: high
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
a-lex-s/mealie-telegram-bot#54 ·
Les mainteneurs répondent en général sous 1 jour