Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

BUG: case insensitive keyword selection returns a shifted range when lowercasing expands a character

Ouverte Adaptée aux débutants
#3,563 0 commentaires 0 réactions 1 personne assignée Voir sur GitHub

Les mainteneurs répondent en général sous 2 jours

@ManoharPaturi y travaille déjà.

Depuis le 27/10/2026.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
72/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
python
Domaine
ai, security

Piste de recherche

Trouve KeywordSelectionStrategy.select_range, mentionné dans l’issue, et examine comment cette méthode fait correspondre une recherche insensible à la casse au texte d’origine. Reproduis le cas avec keyword="secret" et text="İsecret" ; le travail est terminé si la plage renvoyée découpe le mot-clé entier dans le texte d’origine malgré l’expansion lors de la conversion en minuscules. Le payload ne nomme aucun fichier de test ; trouve ou ajoute donc une couverture pour cette reproduction.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Description

KeywordSelectionStrategy.select_range locates the keyword with text.lower().find(keyword.lower()) in case insensitive mode and then applies that index to the original, unlowered text. str.lower() is not length preserving for every character: a dotted capital I (İ, U+0130) lowercases to two code points, so every such character before the match shifts the returned range.

With keyword="secret" and case_sensitive=False on the text İsecret, the strategy returns the range (2, 7), which slices to ecret: the leading s of the keyword is left out. A SelectiveTextConverter built on this strategy then converts the wrong characters and the actual secret stays in the clear.

Expected Behavior

The selected range must slice to the keyword (plus any requested context) on the original text, whatever lowercase expansion occurs earlier in the string.

Reproduction Steps

  1. Build KeywordSelectionStrategy(keyword="secret", case_sensitive=False).
  2. Call select_range(text="İsecret").
  3. The returned range slices to ecret on main.

Minimal Reproduction

strategy = KeywordSelectionStrategy(keyword="secret", case_sensitive=False)
start, end = strategy.select_range(text="İsecret")
"İsecret"[start:end]  # "ecret" on main

Environment

PyRIT main. Python 3.11.

Langage dominant
Python
Étoiles
4.7k
Forks
980
Merge moyen
2 j 7 h
PR mergées (30 j)
446

Préparer son environnement

Ouvrir dans Codespaces

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

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de microsoft/PyRIT

Toutes les issues de microsoft/PyRIT

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.