VYPR
High severity8.1NVD Advisory· Published Aug 25, 2017· Updated May 13, 2026

CVE-2015-3206

CVE-2015-3206

Description

The checkPassword function in python-kerberos does not authenticate the KDC it attempts to communicate with, which allows remote attackers to cause a denial of service (bad response), or have other unspecified impact by performing a man-in-the-middle attack.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
kerberosPyPI
<= 1.2.5
pykerberosPyPI
< 1.1.61.1.6

Affected products

1

Patches

1
9cb61c93f9b2

Add warning about use of checkPassword.

https://github.com/apple/ccs-pykerberosCyrus DabooApr 13, 2014via ghsa
2 files changed · +14 2
  • pysrc/kerberos.py+6 2 modified
    @@ -38,12 +38,16 @@ def checkPassword(user, pswd, service, default_realm):
         That will likely mean ensuring that the edu.mit.Kerberos preference file has the correct
         realms and KDCs listed.
         
    +    IMPORTANT This method is vulnerable to KDC spoofing attacks and it should only used
    +    for testing. Do not use this in any production system - your security could be
    +    compromised if you do.
    +     
         @param user:          a string containing the Kerberos user name. A realm may be
             included by appending an '@' followed by the realm string to the actual user id.
             If no realm is supplied, then the realm set in the default_realm argument will
             be used.
         @param pswd:          a string containing the password for the user.
    -    @param service:       a string containging the Kerberos service to check access for.
    +    @param service:       a string containing the Kerberos service to check access for.
             This will be of the form 'sss/xx.yy.zz', where 'sss' is the service identifier
             (e.g., 'http', 'krbtgt'), and 'xx.yy.zz' is the hostname of the server.
         @param default_realm: a string containing the default realm to use if one is not
    @@ -61,7 +65,7 @@ def changePassword(user, oldpswd, newpswd):
             If no realm is supplied, then the realm set in the default_realm argument will
             be used.
         @param oldpswd:       a string containing the old (current) password for the user.
    -    @param newpswd:       a string containging the new password for the user.
    +    @param newpswd:       a string containing the new password for the user.
         @return:              True if password changing succeeds, False otherwise.
         """
     
    
  • README.txt+8 0 modified
    @@ -44,6 +44,14 @@ directory.  Then run test.py with suitable command line arguments:
         'http@host.example.com')
     
     
    +IMPORTANT
    +=========
    +
    +The checkPassword method provided by this library is meant only for testing purposes as it does
    +not offer any protection against possible KDC spoofing. That method should not be used in any
    +production code.
    +
    +
     Python APIs
     ===========
     
    

Vulnerability mechanics

Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

12

News mentions

0

No linked articles in our index yet.