github / github/codeql

py/HardcodedCredentials misses common credential patterns and flags usernames.

Ouverte
#21,620 4 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
acknowledged Python
Langage dominant
CodeQL
Étoiles
10.1k
Forks
2.1k
Merge moyen
2 j 15 h
PR mergées (30 j)
141

Description

Some patterns are missing, for example:
```python
api_key = "sk-1234567890" # Missed: API key
db_url = "postgres://user:pass@host/db" # Missed: URL credentials
```

Second, I am not sure if the username is seen as a credential in a usual project, but this rule will flag the username.
This is beyond the definition in CWE-798 (
The product contains hard-coded credentials, such as a password or cryptographic key.)

```python
USERNAME = "admin" # Flagged
```

I also found that the rule will lose the taint in the following case:
```python
USERNAME = "road_runner"
PASSWORD = "insecure_pwd"
options = {"password": PASSWORD}

conn = client.connect(username=USERNAME, password=PASSWORD) # Flagged
log.debug("Options: %s", options) # Missing
conn = client.connect(options=options) # Still Missing
```

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par la règle py/HardcodedCredentials et reproduisez les exemples d’API-key, de URL-credential, de username et d’options de l’issue. Examinez comment la règle modélise les motifs de credentials et propage le taint à travers le dictionnaire options. C’est terminé lorsque les cas de credentials manquants sont détectés sans traiter les usernames ordinaires comme des credentials, avec une couverture des exemples signalés.

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

Évaluation

Stack technique
python
Domaine
security
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
Calme
Clarté
Plutôt claire
Accessibilité débutants
48/100

Recevez les nouvelles issues par e-mail

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