Using AutoAddPolicy or WarningPolicy High

We detected a Paramiko host key policy that implicitly trusts server's host key. Do not use AutoAddPolicy or WarningPolicy as a missing host key policy when creating SSHClient. Unverified host keys can allow a malicious server to take control of a trusted server by using the sensitive data (such as authentication information). Instead, use RejectPolicy or a custom subclass.

Detector ID
python/do-not-auto-add-or-warning-missing-hostkey-policy@v1.0
Category
Common Weakness Enumeration (CWE) external icon

Noncompliant example

1def do_not_auto_add_or_warning_missing_hostkey_policy_noncompliant():
2    from paramiko import AutoAddPolicy
3    from paramiko.client import SSHClient
4    ssh_client = SSHClient()
5    # Noncompliant: Insecure `AutoAddPolicy` is used as missing hostkey policy.
6    ssh_client.set_missing_host_key_policy(policy=AutoAddPolicy)

Compliant example

1def do_not_auto_add_or_warning_missing_hostkey_policy_compliant():
2    from paramiko import RejectPolicy
3    from paramiko.client import SSHClient
4    ssh_client = SSHClient()
5    # Compliant: Secure `RejectPolicy` is used as missing hostkey policy.
6    ssh_client.set_missing_host_key_policy(RejectPolicy)