URLDataTypeSerializer treats mixed-case HTTP(S) schemes as local paths

Abierto Apto para principiantes
#3,861 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 2 días

@akhil9tiet ya está trabajando en esto.

Desde el 3/11/2026.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
72/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
python, sqlite
Área
data

Línea de trabajo

Empieza en la clase URLDataTypeSerializer y en su comprobación de prefijo sensible a mayúsculas, que decide entre URL y ruta local. Reproduce con el valor sintético HTTPS://example.invalid/é?q=☃ a través del hashing y de add_seeds_to_memory_async sobre una memoria SQLite en memoria. Está terminado cuando http y https se reconocen sin distinguir mayúsculas y minúsculas, la forma original de la URL se conserva como entrada del hash y las rutas locales siguen comportándose igual que antes.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Bug: triage help wanted
Describe the bug

URLDataTypeSerializer uses a case-sensitive prefix check to decide whether a value is a URL or a local path. HTTPS://... and HtTp://... are valid HTTP(S) URLs, but are classified as files. Hashing and public seed ingestion then raise FileNotFoundError.

Steps/Code to Reproduce

Use a SQLiteMemory and URLDataTypeSerializer with the synthetic URL HTTPS://example.invalid/é?q=☃, then hash it or pass it to add_seeds_to_memory_async. No URL needs to be fetched.

Expected Results

Recognize http and https schemes case-insensitively while preserving the original URL spelling and hash input; continue handling local paths normally.

Actual Results

Lowercase https:// hashes and ingests successfully. Uppercase and mixed-case schemes set data_on_disk=true; both operations raise FileNotFoundError for the URL string treated as a path.

Screenshots

N/A. SDK and local SQLite reproduction; no external URL was fetched.

Versions

Linux; Python 3.12.3; PyRIT 1.2.0.dev0 at revision 01ce6ca66a315770b36c7dca1f320668c0d92d7c. Real SDK and in-memory SQLite; no network fetch or model call.

Lenguaje dominante
Python
Estrellas
4.7k
Forks
1k
Merge medio
2 d 3 h
PR fusionados (30 d)
450

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

  • Sin Dockerfile ni archivo de Docker Compose
  • Tiene una plantilla de pull request
  • Sin guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de microsoft/PyRIT

Todos los issues de microsoft/PyRIT

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.