Every CVE Search/ Get API key

CVE-2019-12098

In the client side of Heimdal before 7.6.0, failure to verify anonymous PKINIT PA-PKINIT-KX key...

7.4 HighFix available

In the client side of Heimdal before 7.6.0, failure to verify anonymous PKINIT PA-PKINIT-KX key exchange permits a man-in-the-middle attack. This issue is in krb5_init_creds_step in lib/krb5/init_creds_pw.c.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
High
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
None

Exploit likelihood

1.97%Down 0.5 points since Apr 14, 2021
90%50%10%1%

What each source reports

NVD Score used 7.4

In the client side of Heimdal before 7.6.0, failure to verify anonymous PKINIT PA-PKINIT-KX key exchange permits a man-in-the-middle attack. This issue is in krb5_init_creds_step in lib/krb5/init_creds_pw.c.

Record
CVE-2019-12098
CVSS 3.1
7.4 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
CVSS 2.0
5.8 MediumAV:N/AC:M/Au:N/C:P/I:P/A:N
Weakness
CWE-295
Updated
2026-11-02
CVE List 7.4

In the client side of Heimdal before 7.6.0, failure to verify anonymous PKINIT PA-PKINIT-KX key exchange permits a man-in-the-middle attack. This issue is in krb5_init_creds_step in lib/krb5/init_creds_pw.c.

Record
CVE-2019-12098
CVSS 3.1
7.4 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
Weakness
CWE-295
Updated
2026-11-02
EUVDEUVD-2019-3750 7.4

In the client side of Heimdal before 7.6.0, failure to verify anonymous PKINIT PA-PKINIT-KX key exchange permits a man-in-the-middle attack. This issue is in krb5_init_creds_step in lib/krb5/init_creds_pw.c.

Record
EUVD-2019-3750
CVSS 3.1
7.4 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-pfc3-2w85-9453 7.4

In the client side of Heimdal before 7.6.0, failure to verify anonymous PKINIT PA-PKINIT-KX key...

In the client side of Heimdal before 7.6.0, failure to verify anonymous PKINIT PA-PKINIT-KX key exchange permits a man-in-the-middle attack. This issue is in krb5_init_creds_step in lib/krb5/init_creds_pw.c.

Record
GHSA-pfc3-2w85-9453
CVSS 3.1
7.4 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
Weakness
CWE-295
Updated
2026-11-02
OSVALPINE-CVE-2019-12098 7.4

In the client side of Heimdal before 7.6.0, failure to verify anonymous PKINIT PA-PKINIT-KX key exchange permits a man-in-the-middle attack. This issue is in krb5_init_creds_step in lib/krb5/init_creds_pw.c.

Record
ALPINE-CVE-2019-12098
CVSS 3.1
7.4 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
Updated
2026-11-02
OSVBELL-CVE-2019-12098 7.4

CVE-2019-12098 does not affect BellSoft software

Record
BELL-CVE-2019-12098
CVSS 3.1
7.4 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
Updated
2026-11-02
Show 8 moreShow less
OSV 7.4

In the client side of Heimdal before 7.6.0, failure to verify anonymous PKINIT PA-PKINIT-KX key exchange permits a man-in-the-middle attack. This issue is in krb5_init_creds_step in lib/krb5/init_creds_pw.c.

Record
CVE-2019-12098
CVSS 3.1
7.4 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
Updated
2026-11-02
OSVDEBIAN-CVE-2019-12098 7.4

In the client side of Heimdal before 7.6.0, failure to verify anonymous PKINIT PA-PKINIT-KX key exchange permits a man-in-the-middle attack. This issue is in krb5_init_creds_step in lib/krb5/init_creds_pw.c.

Record
DEBIAN-CVE-2019-12098
CVSS 3.1
7.4 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
Updated
2026-11-02
OSVUBUNTU-CVE-2019-12098 7.4

In the client side of Heimdal before 7.6.0, failure to verify anonymous PKINIT PA-PKINIT-KX key exchange permits a man-in-the-middle attack. This issue is in krb5_init_creds_step in lib/krb5/init_creds_pw.c.

Record
UBUNTU-CVE-2019-12098
CVSS 3.1
7.4 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
CVSS 3.0
7.4 HighCVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
Updated
2026-11-02
OSVopenSUSE-SU-2019:1682-1 No score

Security update for libheimdal

This update for libheimdal fixes the following issues:

libheimdal was updated to version 7.7.0:

  • Bug fixes:

    • PKCS#11 hcrypto back-end:

      • initialize the p11_module_load function list
      • verify that not only is a mechanism present but that its mechanism info states that it offers the required encryption, decryption or digest services
    • krb5:

      • Starting with 7.6, Heimdal permitted requesting authenticated anonymous tickets. However, it did not verify that a KDC in fact returned an anonymous ticket when one was requested.
      • Cease setting the KDCOption reaquest_anonymous flag when issuing S4UProxy (constrained delegation) TGS requests.
      • when the Win2K PKINIT compatibility option is set, do not require krbtgt otherName to match when validating KDC certificate.
      • set PKINIT_BTMM flag per Apple implementation
      • use memset_s() instead of memset()
    • kdc:

      • When generating KRB5SignedPath in the AS, use the reply client name rather than the one from the request, so validation will work correctly in the TGS.
      • allow checksum of PA-FOR-USER to be HMAC_MD5. Even if TGT used an enctype with a different checksum. Per [MS-SFU] 2.2.1 PA-FOR-USER the checksum is always HMAC_MD5, and that's what Windows and MIT clients send. In Heimdal both the client and kdc use instead the checksum of the TGT, and therefore work with each other but Windows and MIT clients fail against Heimdal KDC. Both Windows and MIT KDC would allow any keyed checksum to be used so Heimdal client work fine against it. Change Heimdal KDC to allow HMAC_MD5 even for non RC4 based TGT in order to support per-spec clients.
      • use memset_s() instead of memset()
      • Detect Heimdal 1.0 through 7.6 clients that issue S4UProxy (constrained delegation) TGS Requests with the request anonymous flag set. These requests will be treated as S4UProxy requests and not anonymous requests.
    • HDB:

      • Set SQLite3 backend default page size to 8KB.
      • Add hdb_set_sync() method
    • kadmind:

      • disable HDB sync during database load avoiding unnecessary disk i/o.
    • ipropd:

      • disable HDB sync during receive_everything. Doing an fsync per-record when receiving the complete HDB is a performance disaster. Among other things, if the HDB is very large, then one slave receving a full HDB can cause other slaves to timeout and, if HDB write activity is high enough to cause iprop log truncation, then also need full syncs, which leads to a cycle of full syncs for all slaves until HDB write activity drops. Allowing the iprop log to be larger helps, but improving receive_everything() performance helps even more.
    • kinit:

      • Anonymous PKINIT tickets discard the realm information used to locate the issuing AS. Store the issuing realm in the credentials cache in order to locate a KDC which can renew them.
      • Do not leak the result of krb5_cc_get_config() when determining anonymous PKINIT start realm.
    • klist:

      • Show transited-policy-checked, ok-as-delegate and anonymous flags when listing credentials.
    • tests:

      • Regenerate certs so that they expire before the 2038 armageddon so the test suite will pass on 32-bit operating systems until the underlying issues can be resolved.
    • documentation:

      • rename verify-password to verify-password-quality
      • hprop default mode is encrypt
      • kadmind 'all' permission does not include 'get-keys'
      • verify-password-quality might not be stateless

Version 7.6.0:

  • Security (#555):

    • CVE-2018-16860 Heimdal KDC: Reject PA-S4U2Self with unkeyed checksum

      When the Heimdal KDC checks the checksum that is placed on the S4U2Self packet by the server to protect the requested principal against modification, it does…

Record
openSUSE-SU-2019:1682-1
Updated
2026-11-02
OSVopenSUSE-SU-2019:1688-1 No score

Security update for libheimdal

This update for libheimdal fixes the following issues:

libheimdal was updated to version 7.7.0:

  • Bug fixes:

    • PKCS#11 hcrypto back-end:

      • initialize the p11_module_load function list
      • verify that not only is a mechanism present but that its mechanism info states that it offers the required encryption, decryption or digest services
    • krb5:

      • Starting with 7.6, Heimdal permitted requesting authenticated anonymous tickets. However, it did not verify that a KDC in fact returned an anonymous ticket when one was requested.
      • Cease setting the KDCOption reaquest_anonymous flag when issuing S4UProxy (constrained delegation) TGS requests.
      • when the Win2K PKINIT compatibility option is set, do not require krbtgt otherName to match when validating KDC certificate.
      • set PKINIT_BTMM flag per Apple implementation
      • use memset_s() instead of memset()
    • kdc:

      • When generating KRB5SignedPath in the AS, use the reply client name rather than the one from the request, so validation will work correctly in the TGS.
      • allow checksum of PA-FOR-USER to be HMAC_MD5. Even if TGT used an enctype with a different checksum. Per [MS-SFU] 2.2.1 PA-FOR-USER the checksum is always HMAC_MD5, and that's what Windows and MIT clients send. In Heimdal both the client and kdc use instead the checksum of the TGT, and therefore work with each other but Windows and MIT clients fail against Heimdal KDC. Both Windows and MIT KDC would allow any keyed checksum to be used so Heimdal client work fine against it. Change Heimdal KDC to allow HMAC_MD5 even for non RC4 based TGT in order to support per-spec clients.
      • use memset_s() instead of memset()
      • Detect Heimdal 1.0 through 7.6 clients that issue S4UProxy (constrained delegation) TGS Requests with the request anonymous flag set. These requests will be treated as S4UProxy requests and not anonymous requests.
    • HDB:

      • Set SQLite3 backend default page size to 8KB.
      • Add hdb_set_sync() method
    • kadmind:

      • disable HDB sync during database load avoiding unnecessary disk i/o.
    • ipropd:

      • disable HDB sync during receive_everything. Doing an fsync per-record when receiving the complete HDB is a performance disaster. Among other things, if the HDB is very large, then one slave receving a full HDB can cause other slaves to timeout and, if HDB write activity is high enough to cause iprop log truncation, then also need full syncs, which leads to a cycle of full syncs for all slaves until HDB write activity drops. Allowing the iprop log to be larger helps, but improving receive_everything() performance helps even more.
    • kinit:

      • Anonymous PKINIT tickets discard the realm information used to locate the issuing AS. Store the issuing realm in the credentials cache in order to locate a KDC which can renew them.
      • Do not leak the result of krb5_cc_get_config() when determining anonymous PKINIT start realm.
    • klist:

      • Show transited-policy-checked, ok-as-delegate and anonymous flags when listing credentials.
    • tests:

      • Regenerate certs so that they expire before the 2038 armageddon so the test suite will pass on 32-bit operating systems until the underlying issues can be resolved.
    • documentation:

      • rename verify-password to verify-password-quality
      • hprop default mode is encrypt
      • kadmind 'all' permission does not include 'get-keys'
      • verify-password-quality might not be stateless

Version 7.6.0:

  • Security (#555):

    • CVE-2018-16860 Heimdal KDC: Reject PA-S4U2Self with unkeyed checksum

      When the Heimdal KDC checks the checksum that is placed on the S4U2Self packet by the server to protect the requested principal against modification, it does…

Record
openSUSE-SU-2019:1688-1
Updated
2026-11-02
OSVopenSUSE-SU-2019:1888-1 No score

Security update for libheimdal

This update for libheimdal fixes the following issues:

libheimdal was updated to version 7.7.0:

  • Bug fixes:

    • PKCS#11 hcrypto back-end:

      • initialize the p11_module_load function list
      • verify that not only is a mechanism present but that its mechanism info states that it offers the required encryption, decryption or digest services
    • krb5:

      • Starting with 7.6, Heimdal permitted requesting authenticated anonymous tickets. However, it did not verify that a KDC in fact returned an anonymous ticket when one was requested.
      • Cease setting the KDCOption reaquest_anonymous flag when issuing S4UProxy (constrained delegation) TGS requests.
      • when the Win2K PKINIT compatibility option is set, do not require krbtgt otherName to match when validating KDC certificate.
      • set PKINIT_BTMM flag per Apple implementation
      • use memset_s() instead of memset()
    • kdc:

      • When generating KRB5SignedPath in the AS, use the reply client name rather than the one from the request, so validation will work correctly in the TGS.
      • allow checksum of PA-FOR-USER to be HMAC_MD5. Even if TGT used an enctype with a different checksum. Per [MS-SFU] 2.2.1 PA-FOR-USER the checksum is always HMAC_MD5, and that's what Windows and MIT clients send. In Heimdal both the client and kdc use instead the checksum of the TGT, and therefore work with each other but Windows and MIT clients fail against Heimdal KDC. Both Windows and MIT KDC would allow any keyed checksum to be used so Heimdal client work fine against it. Change Heimdal KDC to allow HMAC_MD5 even for non RC4 based TGT in order to support per-spec clients.
      • use memset_s() instead of memset()
      • Detect Heimdal 1.0 through 7.6 clients that issue S4UProxy (constrained delegation) TGS Requests with the request anonymous flag set. These requests will be treated as S4UProxy requests and not anonymous requests.
    • HDB:

      • Set SQLite3 backend default page size to 8KB.
      • Add hdb_set_sync() method
    • kadmind:

      • disable HDB sync during database load avoiding unnecessary disk i/o.
    • ipropd:

      • disable HDB sync during receive_everything. Doing an fsync per-record when receiving the complete HDB is a performance disaster. Among other things, if the HDB is very large, then one slave receving a full HDB can cause other slaves to timeout and, if HDB write activity is high enough to cause iprop log truncation, then also need full syncs, which leads to a cycle of full syncs for all slaves until HDB write activity drops. Allowing the iprop log to be larger helps, but improving receive_everything() performance helps even more.
    • kinit:

      • Anonymous PKINIT tickets discard the realm information used to locate the issuing AS. Store the issuing realm in the credentials cache in order to locate a KDC which can renew them.
      • Do not leak the result of krb5_cc_get_config() when determining anonymous PKINIT start realm.
    • klist:

      • Show transited-policy-checked, ok-as-delegate and anonymous flags when listing credentials.
    • tests:

      • Regenerate certs so that they expire before the 2038 armageddon so the test suite will pass on 32-bit operating systems until the underlying issues can be resolved.
    • documentation:

      • rename verify-password to verify-password-quality
      • hprop default mode is encrypt
      • kadmind 'all' permission does not include 'get-keys'
      • verify-password-quality might not be stateless

Version 7.6.0:

  • Security (#555):

    • CVE-2018-16860 Heimdal KDC: Reject PA-S4U2Self with unkeyed checksum

      When the Heimdal KDC checks the checksum that is placed on the S4U2Self packet by the server to protect the requested principal against modification, it does…

Record
openSUSE-SU-2019:1888-1
Updated
2026-11-02
OSVopenSUSE-SU-2024:10946-1 No score

libheimdal-7.7.0-1.11 on GA media

These are all security issues fixed in the libheimdal-7.7.0-1.11 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2024:10946-1
Updated
2026-11-02
OSVUSN-5675-1 No score

heimdal vulnerabilities

Isaac Boukris and Andrew Bartlett discovered that Heimdal's KDC was not properly performing checksum algorithm verifications in the S4U2Self extension module. An attacker could possibly use this issue to perform a machine-in-the-middle attack and request S4U2Self tickets for any user known by the application. This issue only affected Ubuntu 14.04 ESM, Ubuntu 16.04 ESM and Ubuntu 18.04 LTS. (CVE-2018-16860)

It was discovered that Heimdal was not properly handling the verification of key exchanges when an anonymous PKINIT was being used. An attacker could possibly use this issue to perform a machine-in-the-middle attack and expose sensitive information. This issue only affected Ubuntu 14.04 ESM, Ubuntu 16.04 ESM and Ubuntu 18.04 LTS. (CVE-2019-12098)

Joseph Sutton discovered that Heimdal was not properly handling memory management operations when dealing with TGS-REQ tickets that were missing information. An attacker could possibly use this issue to cause a denial of service. (CVE-2021-3671)

Michał Kępień discovered that Heimdal was not properly handling logical conditions that related to memory management operations. An attacker could possibly use this issue to cause a denial of service. (CVE-2022-3116)

Record
USN-5675-1
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
heimdal
Alpine:v3.10
before 7.5.0-r5
7.5.0-r5
heimdal
Alpine:v3.7
before 7.4.0-r4
7.4.0-r4
heimdal
Alpine:v3.8
before 7.5.0-r3
7.5.0-r3
heimdal
Alpine:v3.9
before 7.5.0-r4
7.5.0-r4
heimdal
Debian:12
before 7.5.0+dfsg-3
7.5.0+dfsg-3
heimdal
Debian:13
before 7.5.0+dfsg-3
7.5.0+dfsg-3
heimdal
Debian:14
before 7.5.0+dfsg-3
7.5.0+dfsg-3
heimdal
Debian:9
From an advisory covering 2 CVEs
before 7.1.0+dfsg-13+deb9u3, plus listed versions
7.1.0+dfsg-137.1.0+dfsg-13+deb9u17.1.0+dfsg-13+deb9u2
7.1.0+dfsg-13+deb9u3
heimdal
Ubuntu:Pro:14.04:LTS
before 1.6~git20131207+dfsg-1ubuntu1.2+esm1, plus listed versions
1.6~git20120403+dfsg1-3ubuntu0.11.6~git20120403+dfsg1-3ubuntu0.21.6~git20131207+dfsg-1ubuntu11.6~git20131207+dfsg-1ubuntu1.11.6~git20131207+dfsg-1ubuntu1.2
1.6~git20131207+dfsg-1ubuntu1.2+esm1
heimdal
Ubuntu:Pro:16.04:LTS
before 1.7~git20150920+dfsg-4ubuntu1.16.04.1+esm1, plus listed versions
1.6~rc2+dfsg-10ubuntu11.7~git20150920+dfsg-4ubuntu11.7~git20150920+dfsg-4ubuntu1.16.04.1
1.7~git20150920+dfsg-4ubuntu1.16.04.1+esm1
Show 9 moreShow less
Affected packages
PackageAffectedFixed
heimdal
Ubuntu:18.04:LTS
before 7.5.0+dfsg-1ubuntu0.1, plus listed versions
7.4.0.dfsg.1-27.5.0+dfsg-1
7.5.0+dfsg-1ubuntu0.1
heimdal
Ubuntu:Pro:14.04:LTS
From an advisory covering 4 CVEs
before 1.6~git20131207+dfsg-1ubuntu1.2+esm1, plus listed versions
1.6~git20120403+dfsg1-3ubuntu0.11.6~git20120403+dfsg1-3ubuntu0.21.6~git20131207+dfsg-1ubuntu11.6~git20131207+dfsg-1ubuntu1.11.6~git20131207+dfsg-1ubuntu1.2
1.6~git20131207+dfsg-1ubuntu1.2+esm1
heimdal
Ubuntu:Pro:16.04:LTS
From an advisory covering 4 CVEs
before 1.7~git20150920+dfsg-4ubuntu1.16.04.1+esm1, plus listed versions
1.6~rc2+dfsg-10ubuntu11.7~git20150920+dfsg-4ubuntu11.7~git20150920+dfsg-4ubuntu1.16.04.1
1.7~git20150920+dfsg-4ubuntu1.16.04.1+esm1
heimdal
Ubuntu:18.04:LTS
From an advisory covering 4 CVEs
before 7.5.0+dfsg-1ubuntu0.1, plus listed versions
7.4.0.dfsg.1-27.5.0+dfsg-1
7.5.0+dfsg-1ubuntu0.1
heimdal
Ubuntu:20.04:LTS
From an advisory covering 4 CVEs
before 7.7.0+dfsg-1ubuntu1.1, plus listed versions
7.5.0+dfsg-3build17.7.0+dfsg-17.7.0+dfsg-1ubuntu1
7.7.0+dfsg-1ubuntu1.1
libheimdal
openSUSE:Leap 15.0
From an advisory covering 2 CVEs
before 7.7.0-lp151.3.3.1
7.7.0-lp151.3.3.1
libheimdal
openSUSE:Leap 15.1
From an advisory covering 2 CVEs
before 7.7.0-lp151.3.3.1
7.7.0-lp151.3.3.1
libheimdal
SUSE:Package Hub 15
From an advisory covering 2 CVEs
before 7.7.0-bp150.2.3.1
7.7.0-bp150.2.3.1
libheimdal
SUSE:Package Hub 15 SP1
From an advisory covering 2 CVEs
before 7.7.0-bp151.4.3.1
7.7.0-bp151.4.3.1

History

History
RecordedChangedSources
affected, facts
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2019-12098 is a high vulnerability (CVSS 7.4) in Heimdal Project Heimdal, published May 15, 2019. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 1.97%, the 80th percentile. Fixed in heimdal 7.5.0-r5.

References

Show 28 moreShow less
This page doesn't list everything

Left out here: the rest of 3 source descriptions. The JSON record has them.

MoveEnter Open