Skip to content

Releases: heimdal/heimdal

Heimdal 7.8

15 Nov 20:43
Compare
Choose a tag to compare

This release includes both the Heimdal 7.7.1 Security Vulnerability fixes and non-Security bug fixes/improvements.

Security Vulnerabilities:

  • CVE-2022-42898 PAC parse integer overflows

  • CVE-2022-3437 Overflows and non-constant time leaks in DES{,3} and arcfour

  • CVE-2022-41916 Fix Unicode normalization read of 1 bytes past end of array

  • CVE-2021-44758 A null pointer de-reference DoS in SPNEGO acceptors

  • CVE-2021-3671 A null pointer de-reference when handling missing sname in TGS-REQ

  • CVE-2022-44640 Heimdal KDC: invalid free in ASN.1 codec

    Note that CVE-2022-44640 is a severe vulnerability, possibly a 10.0
    on the Common Vulnerability Scoring System (CVSS) v3, as we believe
    it should be possible to get an RCE on a KDC, which means that
    credentials can be compromised that can be used to impersonate
    anyone in a realm or forest of realms.

    Heimdal's ASN.1 compiler generates code that allows specially
    crafted DER encodings of CHOICEs to invoke the wrong free function
    on the decoded structure upon decode error. This is known to impact
    the Heimdal KDC, leading to an invalid free() of an address partly
    or wholly under the control of the attacker, in turn leading to a
    potential remote code execution (RCE) vulnerability.

    This error affects the DER codec for all extensible CHOICE types
    used in Heimdal, though not all cases will be exploitable. We have
    not completed a thorough analysis of all the Heimdal components
    affected, thus the Kerberos client, the X.509 library, and other
    parts, may be affected as well.

    This bug has been in Heimdal's ASN.1 compiler since 2005, but it may
    only affect Heimdal 1.6 and up. It was first reported by Douglas
    Bagnall, though it had been found independently by the Heimdal
    maintainers via fuzzing a few weeks earlier.

    While no zero-day exploit is known, such an exploit will likely be
    available soon after public disclosure.

  • CVE-2019-14870: Validate client attributes in protocol-transition

  • CVE-2019-14870: Apply forwardable policy in protocol-transition

  • CVE-2019-14870: Always lookup impersonate client in DB

Other changes:

  • Bugs found by UBSAN (including the incorrect encoding of unconstrained
    INTEGER value -1).

  • Errors found by the LLVM scan-build static analyzer.

  • Errors found by the valgrind memory debugger.

  • Work around GCC Bug 95189 (memcmp wrongly stripped like strcmp).

  • Correct ASN.1 OID typo for SHA-384

  • Fix a deadlock in in the MEMORY ccache type.

  • TGS: strip forwardable and proxiable flags if the server is
    disallowed.

  • CVE-2019-14870: Validate client attributes in protocol-transition

  • CVE-2019-14870: Apply forwardable policy in protocol-transition

  • CVE-2019-14870: Always lookup impersonate client in DB

  • Incremental HDB propagation improvements

    • Refactor send_diffs making it progressive
    • Handle partial writes on non-blocking sockets
    • Disable Nagle in iprop master and slave
    • Use async I/O
    • Don't send I_HAVE in response to AYT
    • Do not recover log in kadm5_get_principal()
    • Don't send diffs to slaves with not yet known version
    • Don't stutter in send_diffs
  • Optional backwards-compatible anon-pkinit behavior

Building from source

heimdal-7.8.0.tar.gz and its matching PGP signature file (heimdal-7.8.0.tar.gz.sig) should be downloaded in preference to the GitHub generated "source" archives. The heimdal-7.8.0.tar.gz archive contains the required build products necessary to "configure" and "make".

SHA1(heimdal-7.8.0.tar.gz)= 73d459b62a0a0b606b240ec4e541046e38a12d61
SHA256(heimdal-7.8.0.tar.gz)= fd87a207846fa650fd377219adc4b8a8193e55904d8a752c2c3715b4155d8d38

The GitHub generated "source" archives contain a raw copy of the repository contents for the "heimdal-7.8.0" tag.

Heimdal 7.7.1 - Security Fix Release

15 Nov 20:43
Compare
Choose a tag to compare

This release fixes the following Security Vulnerabilities:

  • CVE-2022-42898 PAC parse integer overflows

  • CVE-2022-3437 Overflows and non-constant time leaks in DES{,3} and arcfour

  • CVE-2022-41916 Fix Unicode normalization read of 1 bytes past end of array

  • CVE-2021-44758 NULL dereference DoS in SPNEGO acceptors

  • CVE-2021-3671 A null pointer de-reference when handling missing sname in TGS-REQ

  • CVE-2022-44640 Heimdal KDC: invalid free in ASN.1 codec

    Note that CVE-2022-44640 is a severe vulnerability, possibly a 10.0
    on the Common Vulnerability Scoring System (CVSS) v3, as we believe
    it should be possible to get an RCE on a KDC, which means that
    credentials can be compromised that can be used to impersonate
    anyone in a realm or forest of realms.

    Heimdal's ASN.1 compiler generates code that allows specially
    crafted DER encodings of CHOICEs to invoke the wrong free function
    on the decoded structure upon decode error. This is known to impact
    the Heimdal KDC, leading to an invalid free() of an address partly
    or wholly under the control of the attacker, in turn leading to a
    potential remote code execution (RCE) vulnerability.

    This error affects the DER codec for all extensible CHOICE types
    used in Heimdal, though not all cases will be exploitable. We have
    not completed a thorough analysis of all the Heimdal components
    affected, thus the Kerberos client, the X.509 library, and other
    parts, may be affected as well.

    This bug has been in Heimdal's ASN.1 compiler since 2005, but it may
    only affect Heimdal 1.6 and up. It was first reported by Douglas
    Bagnall, though it had been found independently by the Heimdal
    maintainers via fuzzing a few weeks earlier.

    While no zero-day exploit is known, such an exploit will likely be
    available soon after public disclosure.

  • CVE-2019-14870: Validate client attributes in protocol-transition

  • CVE-2019-14870: Apply forwardable policy in protocol-transition

  • CVE-2019-14870: Always lookup impersonate client in DB

All of these fixes are also included in the Heimdal 7.8 release.

Building from source

heimdal-7.7.1.tar.gz and its matching PGP signature file (heimdal-7.7.1.tar.gz.sig) should be downloaded in preference to the GitHub generated "source" archives. The heimdal-7.7.1.tar.gz archive contains the required build products necessary to "configure" and "make".

SHA1(heimdal-7.7.1.tar.gz)= a33fdc957f84ab13f39f164b04fe1deeaab3179e
SHA256(heimdal-7.7.1.tar.gz)= 117cb1ede7848db24cf27311c46f7f735a99f9c836c22e80aec92b91efe56644

The GitHub generated "source" archives contain a raw copy of the repository contents for the "heimdal-7.7.1" tag.

Heimdal 7.7.0 - Bug Fix Release

07 Jun 14:43
Compare
Choose a tag to compare

Release Notes - Heimdal - Version Heimdal 7.7

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.

  • Solaris:
    . Define _STDC_C11_BCI for memset_s prototype

  • build tooling:
    . Convert from python 2 to python 3

  • 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

Building from source:

heimdal-7.7.0.tar.gz and its matching PGP signature file (heimdal-7.7.0.tar.gz.asc) should be downloaded in preference to the GitHub generated "source" archives. The heimdal-7.7.0.tar.gz archive contains the required build products necessary to "configure" and "make".

SHA1(heimdal-7.7.0.tar.gz)= 5dd16703be7255f66a4d65440f0c622aeeca60d9
SHA256(heimdal-7.7.0.tar.gz)= f02d3314d634cc55eb9cf04a1eae0d96b293e45a1f837de9d894e800161b7d1b

The GitHub generated "source" archives contain a raw copy of the repository contents for the "heimdal-7.7.0" tag.

Heimdal 7.6.0 - Security Release

15 May 22:21
Compare
Choose a tag to compare

Release Notes - Heimdal - Version Heimdal 7.6

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 not confirm that the checksum
    algorithm that protects the user name (principal) in the request
    is keyed. This allows a man-in-the-middle attacker who can
    intercept the request to the KDC to modify the packet by replacing
    the user name (principal) in the request with any desired user
    name (principal) that exists in the KDC and replace the checksum
    protecting that name with a CRC32 checksum (which requires no
    prior knowledge to compute).

    This would allow a S4U2Self ticket requested on behalf of user
    name (principal) user@EXAMPLE.COM to any service to be changed
    to a S4U2Self ticket with a user name (principal) of
    Administrator@EXAMPLE.COM. This ticket would then contain the
    PAC of the modified user name (principal).

  • CVE-2019-12098, client-only:

    RFC8062 Section 7 requires verification of the PA-PKINIT-KX key exchange
    when anonymous PKINIT is used. Failure to do so can permit an active
    attacker to become a man-in-the-middle.

Bug fixes

  • Happy eyeballs: Don't wait for responses from known-unreachable KDCs.
  • kdc: check return copy_Realm, copy_PrincipalName, copy_EncryptionKey
  • kinit:
    . cleanup temporary ccaches
    . see man page for "kinit --anonymous" command line syntax change
  • kdc: Make anonymous AS-requests more RFC8062-compliant.
  • Updated expired test certificates
  • Solaris:
    . PKCS#11 hcrypto backend broken since 7.0.1
    . Building with Sun Pro C

Features

  • kuser: support authenticated anonymous AS-REQs in kinit
  • kdc: support for anonymous TGS-REQs
  • kgetcred support for anonymous service tickets
  • Support builds with OpenSSL 1.1.1

Building from source:

heimdal-7.6.0.tar.gz and its matching PGP signature file (heimdal-7.6.0.tar.gz) should be downloaded in preference to the GitHub generated "source" archives. The heimdal-7.6.0.tar.gz archive contains the required build products necessary to "configure" and "make".

SHA1(heimdal-7.6.0.tar.gz)= 41a036db3458f9f1957174f9860c0d7491dc173a
SHA256(heimdal-7.6.0.tar.gz)= afb996e27e722f51bf4d9e8d1d51e47cd10bfa1a41a84106af926e5639a52e4d

The GitHub generated "source" archives contain a raw copy of the repository contents for the "heimdal-7.6.0" tag.

Heimdal 7.5

08 Dec 10:26
Compare
Choose a tag to compare

This is a security release of Heimdal

This release patches a remote denial of service

CVE-2017-17439: In Heimdal 7.1 through 7.4, remote unauthenticated attackers are able to crash the KDC by sending a crafted UDP packet containing empty data fields for client name or realm.

Heimdal 7.4

11 Jul 17:06
Compare
Choose a tag to compare

This is a security release of Heimdal.

This release patches a critical vulnerability:

CVE-2017-11103: Orpheus' Lyre KDC-REP service name validation

In _krb5_extract_ticket() the KDC-REP service name must be obtained from
encrypted version stored in 'enc_part' instead of the unencrypted version
stored in 'ticket'.  Use of the unecrypted version provides an
opportunity for successful server impersonation and other attacks.

Identified by Jeffrey Altman, Viktor Duchovni and Nico Williams.

See https://www.orpheus-lyre.info/

Heimdal 7.3

13 Apr 20:27
Compare
Choose a tag to compare

This is the Heimdal 7.3 security release.

This release addresses CVE-2017-6594. See the NEWS file for details.

Heimdal 7.2

17 Mar 19:03
Compare
Choose a tag to compare

This is the Heimdal 7.2 release.

Heimdal 7.1

19 Dec 20:41
Compare
Choose a tag to compare

This is the Heimdal 7.1 release.

Heimdal 7.0.3 (rc3 for 7.1)

15 Dec 20:03
Compare
Choose a tag to compare
Pre-release

This is rc3 for 7.1. This fixes make dist issues in rc2:

  • Doxygen issues
  • missing files