Projet

Général

Profil

Development #45672

ValueError: A string literal cannot contain NUL (0x00) characters.

Ajouté par Sentry Io il y a plus de 3 ans. Mis à jour il y a plus de 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
02 août 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

https://sentry.entrouvert.org/entrouvert/publik/issues/3589/

File "/usr/lib/python3/dist-packages/authentic2/views.py" in login
  322.             if service and models.Service.objects.filter(slug=service).exists():

File "/usr/lib/python3/dist-packages/django/db/models/query.py" in exists
  673.             return self.query.has_results(using=self.db)

File "/usr/lib/python3/dist-packages/django/db/models/sql/query.py" in has_results
  517.         return compiler.has_results()

File "/usr/lib/python3/dist-packages/django/db/models/sql/compiler.py" in has_results
  858.         return bool(self.execute_sql(SINGLE))

File "/usr/lib/python3/dist-packages/django/db/models/sql/compiler.py" in execute_sql
  899.             raise original_exception

File "/usr/lib/python3/dist-packages/django/db/models/sql/compiler.py" in execute_sql
  889.             cursor.execute(sql, params)

File "/usr/lib/python3/dist-packages/django/db/backends/utils.py" in execute
  79.             return super(CursorDebugWrapper, self).execute(sql, params)

File "/usr/lib/python3/dist-packages/sentry_sdk/integrations/django/__init__.py" in execute
  434.             return real_execute(self, sql, params)

File "/usr/lib/python3/dist-packages/django/db/backends/utils.py" in execute
  64.                 return self.cursor.execute(sql, params)

Exception Type: ValueError at /login/
Exception Value: A string literal cannot contain NUL (0x00) characters.

Request URL:
https://.../login/?service=/etc/passwd%00&next=/idp/oidc/authorize/?client_id=25b398d3-7e70-4e0a-83ff-852e49298674&scope=openid+profile+email&response_type=code&redirect_uri=...

Fichiers

Révisions associées

Révision 41b97f0b (diff)
Ajouté par Benjamin Dauvergne il y a plus de 3 ans

misc: validate and use a real identifier for services (#45672)

Historique

#1

Mis à jour par Frédéric Péters il y a plus de 3 ans

  • Projet changé de Suivi des traces à Authentic 2
  • Description mis à jour (diff)

(trace plus complète + URL ajoutées à la description)

Côté django un problème similaire a été https://code.djangoproject.com/ticket/30064 (https://github.com/django/django/commit/5b4c6b58a097028de970875605680df941ab0a47), la solution adoptée y a été de passer par une classe de formulaire plutôt qu'exploiter directement le request.GET.

#2

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

Ça dépend du validateur ProhibitNullCharacterValidator qui n'est introduit qu'en Django > 2.

#3

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

  • Assigné à mis à Benjamin Dauvergne
#4

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

  • Fichier 0001-misc-unserialize-attribute-in-registration-view-4567.patch ajouté
  • Tracker changé de Bug à Development
  • Statut changé de Nouveau à Solution proposée
  • Patch proposed changé de Non à Oui

C'est vraiment pas le fix que je voudrai faire, parce que la gestion du jeton passé de vue en vue laisse à désirer (repasse le contenu tel quel au formulaire ne marche vraiment pas en fait), mais pour l'instant ça fera l'affaire.

#5

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

  • Statut changé de Solution proposée à Nouveau

Mauvais ticket.

#6

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

  • Fichier 0001-misc-unserialize-attribute-in-registration-view-4567.patch supprimé
#8

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

Bon j'en ai profité pour abstraire tous les passages d'identifiants de service.

#9

Mis à jour par Serghei Mihai il y a plus de 3 ans

Pourquoi avoir choisi l'espace comme séparateur entre le slug de l'OU et celui du service?

#10

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

Serghei Mihai a écrit :

Pourquoi avoir choisi l'espace comme séparateur entre le slug de l'OU et celui du service?

Parce qu'il n'y a pas d'espace dans les slugs ?

#11

Mis à jour par Serghei Mihai il y a plus de 3 ans

J'aurais vu plutôt un ":", mais ok.

#12

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

Code récent sur la branche.

#14

Mis à jour par Serghei Mihai il y a plus de 3 ans

  • Statut changé de Solution proposée à Solution validée
#15

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 26066ab51761073e1e9c5168d92893aa3d8045b2
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Thu Aug 13 16:48:24 2020 +0200

    misc: validate and use a real identifier for services (#45672)
#16

Mis à jour par Frédéric Péters il y a plus de 3 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF