1 Release Notes - Heimdal - Version Heimdal 1.2
5 [HEIMDAL-10] - Follow-up on bug report for SEGFAULT in
6 gss_display_name/gss_export_name when using SPNEGO
7 [HEIMDAL-15] - Re: [Heimdal-bugs] potential bug in Heimdal 1.1
8 [HEIMDAL-17] - Remove support for depricated [libdefaults]capath
9 [HEIMDAL-52] - hdb overwrite aliases for db databases
10 [HEIMDAL-54] - Two issues which affect credentials delegation
11 [HEIMDAL-58] - sockbuf.c calls setsockopt with bad args
12 [HEIMDAL-62] - Fix printing of sig_atomic_t
13 [HEIMDAL-87] - heimdal 1.1 not building under cygwin in hcrypto
14 [HEIMDAL-105] - rcp: sync rcp with upstream bsd rcp codebase
17 [HEIMDAL-67] - Fix locking and store credential in atomic writes
18 in the FILE credential cache
19 [HEIMDAL-106] - make compile on cygwin again
20 [HEIMDAL-107] - Replace old random key generation in des module
21 and use it with RAND_ function instead
24 [HEIMDAL-3] - pkinit alg agility PRF test vectors
25 [HEIMDAL-14] - Add libwind to Heimdal
26 [HEIMDAL-16] - Use libwind in hx509
27 [HEIMDAL-55] - Add flag to krb5 to not add GSS-API INT|CONF to
29 [HEIMDAL-74] - Add support to report extended error message back
30 in AS-REQ to support windows clients
33 [HEIMDAL-63] - Dont try key usage KRB5_KU_AP_REQ_AUTH for TGS-REQ.
34 This drop compatibility with pre 0.3d KDCs.
35 [HEIMDAL-64] - kcm: first implementation of kcm-move-cache
36 [HEIMDAL-65] - Failed to compile with --disable-pk-init
37 [HEIMDAL-80] - verify that [VU#162289]: gcc silently discards some
38 wraparound checks doesn't apply to Heimdal
40 Changes in release 1.1
42 * Read-only PKCS11 provider built-in to hx509.
44 * Documentation for hx509, hcrypto and ntlm libraries improved.
46 * Better compatibilty with Windows 2008 Server pre-releases and Vista.
48 * Mac OS X 10.5 support for native credential cache.
50 * Provide pkg-config file for Heimdal (heimdal-gssapi.pc).
54 Changes in release 1.0.2
60 Changes in release 1.0.1
62 * Serveral bug fixes to iprop.
64 * Make work on platforms without dlopen.
66 * Add RFC3526 modp group14 as default.
68 * Handle [kdc] database = { } entries without realm = stanzas.
70 * Make krb5_get_renewed_creds work.
72 * Make kaserver preauth work again.
76 Changes in release 1.0
78 * Add gss_pseudo_random() for mechglue and krb5.
80 * Make session key for the krbtgt be selected by the best encryption
83 * Better interoperability with other PK-INIT implementations.
85 * Inital support for Mac OS X Keychain for hx509.
87 * Alias support for inital ticket requests.
89 * Add symbol versioning to selected libraries on platforms that uses
90 GNU link editor: gssapi, hcrypto, heimntlm, hx509, krb5, and libkdc.
92 * New version of imath included in hcrypto.
98 Changes in release 0.8.1
100 * Make ASN.1 library less paranoid to with regard to NUL in string to
101 make it inter-operate with MIT Kerberos again.
103 * Make GSS-API library work again when using gss_acquire_cred
105 * Add symbol versioning to libgssapi when using GNU ld.
111 Changes in release 0.8
115 * HDB extensions support, used by PK-INIT.
117 * New ASN.1 compiler.
119 * GSS-API mechglue from FreeBSD.
121 * Updated SPNEGO to support RFC4178.
123 * Support for Cryptosystem Negotiation Extension (RFC 4537).
125 * A new X.509 library (hx509) and related crypto functions.
127 * A new ntlm library (heimntlm) and related crypto functions.
129 * Updated the built-in crypto library with bignum support using
130 imath, support for RSA and DH and renamed it to libhcrypto.
132 * Subsystem in the KDC, digest, that will perform the digest
133 operation in the KDC, currently supports: CHAP, MS-CHAP-V2, SASL
134 DIGEST-MD5 NTLMv1 and NTLMv2.
136 * KDC will return the "response too big" error to force TCP retries
137 for large (default 1400 bytes) UDP replies. This is common for
140 * Libkafs defaults to use 2b tokens.
142 * Default to use the API cache on Mac OS X.
144 * krb5_kuserok() also checks ~/.k5login.d directory for acl files,
145 see manpage for krb5_kuserok for description.
147 * Many, many, other updates to code and info manual and manual pages.
151 Changes in release 0.7.2
153 * Fix security problem in rshd that enable an attacker to overwrite
154 and change ownership of any file that root could write.
156 * Fix a DOS in telnetd. The attacker could force the server to crash
157 in a NULL de-reference before the user logged in, resulting in inetd
158 turning telnetd off because it forked too fast.
160 * Make gss_acquire_cred(GSS_C_ACCEPT) check that the requested name
161 exists in the keytab before returning success. This allows servers
162 to check if its even possible to use GSSAPI.
164 * Fix receiving end of token delegation for GSS-API. It still wrongly
165 uses subkey for sending for compatibility reasons, this will change
168 * telnetd, login and rshd are now more verbose in logging failed and
173 Changes in release 0.7.1
177 Changes in release 0.7
179 * Support for KCM, a process based credential cache
181 * Support CCAPI credential cache
185 * AES (and the gssapi conterpart, CFX) support
187 * Adding new and improve old documentation
191 Changes in release 0.6.6
193 * Fix security problem in rshd that enable an attacker to overwrite
194 and change ownership of any file that root could write.
196 * Fix a DOS in telnetd. The attacker could force the server to crash
197 in a NULL de-reference before the user logged in, resulting in inetd
198 turning telnetd off because it forked too fast.
200 Changes in release 0.6.5
202 * fix vulnerabilities in telnetd
204 * unbreak Kerberos 4 and kaserver
206 Changes in release 0.6.4
208 * fix vulnerabilities in telnet
210 * rshd: encryption without a separate error socket should now work
212 * telnet now uses appdefaults for the encrypt and forward/forwardable
217 Changes in release 0.6.3
219 * fix vulnerabilities in ftpd
221 * support for linux AFS /proc "syscalls"
223 * support for RFC3244 (Windows 2000 Kerberos Change/Set Password) in
226 * fix possible KDC denial of service
230 Changes in release 0.6.2
232 * Fix possible buffer overrun in v4 kadmin (which now defaults to off)
234 Changes in release 0.6.1
236 * Fixed ARCFOUR suppport
238 * Cross realm vulnerability
240 * kdc: fix denial of service attack
242 * kdc: stop clients from renewing tickets into the future
246 Changes in release 0.6
248 * The DES3 GSS-API mechanism has been changed to inter-operate with
249 other GSSAPI implementations. See man page for gssapi(3) how to turn
250 on generation of correct MIC messages. Next major release of heimdal
251 will generate correct MIC by default.
253 * More complete GSS-API support
255 * Better AFS support: kdc (524) supports 2b; 524 in kdc and AFS
256 support in applications no longer requires Kerberos 4 libs
258 * Kerberos 4 support in kdc defaults to turned off (includes ka and 524)
262 Changes in release 0.5.2
264 * kdc: add option for disabling v4 cross-realm (defaults to off)
268 Changes in release 0.5.1
270 * kadmind: fix remote exploit
272 * kadmind: add option to disable kerberos 4
274 * kdc: make sure kaserver token life is positive
276 * telnet: use the session key if there is no subkey
278 * fix EPSV parsing in ftp
282 Changes in release 0.5
284 * add --detach option to kdc
286 * allow setting forward and forwardable option in telnet from
287 .telnetrc, with override from command line
289 * accept addresses with or without ports in krb5_rd_cred
291 * make it work with modern openssl
293 * use our own string2key function even with openssl (that handles weak
296 * more system-specific requirements in login
298 * do not use getlogin() to determine root in su
300 * telnet: abort if telnetd does not support encryption
302 * update autoconf to 2.53
304 * update config.guess, config.sub
308 Changes in release 0.4e
310 * improve libcrypto and database autoconf tests
312 * do not care about salting of server principals when serving v4 requests
314 * some improvements to gssapi library
316 * test for existing compile_et/libcom_err
322 Changes in release 0.4d
324 * fix some problems when using libcrypto from openssl
326 * handle /dev/ptmx `unix98' ptys on Linux
328 * add some forgotten man pages
330 * rsh: clean-up and add man page
332 * fix -A and -a in builtin-ls in tpd
334 * fix building problem on Irix
336 * make `ktutil get' more efficient
340 Changes in release 0.4c
342 * fix buffer overrun in telnetd
344 * repair some of the v4 fallback code in kinit
346 * add more shared library dependencies
348 * simplify and fix hprop handling of v4 databases
350 * fix some building problems (osf's sia and osfc2 login)
354 Changes in release 0.4b
356 * update the shared library version numbers correctly
358 Changes in release 0.4a
360 * corrected key used for checksum in mk_safe, unfortunately this
361 makes it backwards incompatible
363 * update to autoconf 2.50, libtool 1.4
365 * re-write dns/config lookups (krb5_krbhst API)
367 * make order of using subkeys consistent
373 * remove rfc2052 support, now only rfc2782 is supported
375 * always build with kaserver protocol support in the KDC (assuming
376 KRB4 is enabled) and support for reading kaserver databases in
379 Changes in release 0.3f
381 * change default keytab to ANY:FILE:/etc/krb5.keytab,krb4:/etc/srvtab,
382 the new keytab type that tries both of these in order (SRVTAB is
383 also an alias for krb4:)
385 * improve error reporting and error handling (error messages should
386 be more detailed and more useful)
388 * improve building with openssl
390 * add kadmin -K, rcp -F
392 * fix two incorrect weak DES keys
394 * fix building of kaserver compat in KDC
396 * the API is closer to what MIT krb5 is using
398 * more compatible with windows 2000
400 * removed some memory leaks
404 Changes in release 0.3e
406 * rcp program included
408 * fix buffer overrun in ftpd
410 * handle omitted sequence numbers as zeroes to handle MIT krb5 that
411 cannot generate zero sequence numbers
413 * handle v4 /.k files better
415 * configure/portability fixes
417 * fixes in parsing of options to kadmin (sub-)commands
419 * handle errors in kadmin load better
423 Changes in release 0.3d
427 * fix a bug in 3des gss-api mechanism, making it compatible with the
428 specification and the MIT implementation
430 * make telnetd only allow a specific list of environment variables to
431 stop it from setting `sensitive' variables
433 * try to use an existing libdes
435 * lib/krb5, kdc: use correct usage type for ap-req messages. This
436 should improve compatability with MIT krb5 when using 3DES
439 * kdc: fix memory allocation problem
441 * update config.guess and config.sub
443 * lib/roken: more stuff implemented
445 * bug fixes and portability enhancements
447 Changes in release 0.3c
449 * lib/krb5: memory caches now support the resolve operation
451 * appl/login: set PATH to some sane default
453 * kadmind: handle several realms
455 * bug fixes (including memory leaks)
457 Changes in release 0.3b
459 * kdc: prefer default-salted keys on v5 requests
461 * kdc: lowercase hostnames in v4 mode
463 * hprop: handle more types of MIT salts
465 * lib/krb5: fix memory leak
469 Changes in release 0.3a:
471 * implement arcfour-hmac-md5 to interoperate with W2K
473 * modularise the handling of the master key, and allow for other
474 encryption types. This makes it easier to import a database from
475 some other source without having to re-encrypt all keys.
477 * allow for better control over which encryption types are created
479 * make kinit fallback to v4 if given a v4 KDC
481 * make klist work better with v4 and v5, and add some more MIT
482 compatibility options
484 * make the kdc listen on the krb524 (4444) port for compatibility
485 with MIT krb5 clients
487 * implement more DCE/DFS support, enabled with --enable-dce, see
488 lib/kdfs and appl/dceutils
490 * make the sequence numbers work correctly
494 Changes in release 0.2t:
498 Changes in release 0.2s:
500 * add OpenLDAP support in hdb
502 * login will get v4 tickets when it receives forwarded tickets
504 * xnlock supports both v5 and v4
506 * repair source routing for telnet
508 * fix building problems with krb4 (krb_mk_req)
512 Changes in release 0.2r:
514 * fix realloc memory corruption bug in kdc
516 * `add --key' and `cpw --key' in kadmin
518 * klist supports listing v4 tickets
520 * update config.guess and config.sub
522 * make v4 -> v5 principal name conversion more robust
524 * support for anonymous tickets
528 * telnetd: do not negotiate KERBEROS5 authentication if there's no keytab.
530 * use and set expiration and not password expiration when dumping
531 to/from ka server databases / krb4 databases
533 * make the code happier with 64-bit time_t
535 * follow RFC2782 and by default do not look for non-underscore SRV names
537 Changes in release 0.2q:
539 * bug fix in tcp-handling in kdc
541 * bug fix in expand_hostname
543 Changes in release 0.2p:
545 * bug fix in `kadmin load/merge'
547 * bug fix in krb5_parse_address
549 Changes in release 0.2o:
551 * gss_{import,export}_sec_context added to libgssapi
553 * new option --addresses to kdc (for listening on an explicit set of
556 * bug fixes in the krb4 and kaserver emulation part of the kdc
560 Changes in release 0.2n:
562 * more robust parsing of dump files in kadmin
563 * changed default timestamp format for log messages to extended ISO
564 8601 format (Y-M-DTH:M:S)
565 * changed md4/md5/sha1 APIes to be de-facto `standard'
566 * always make hostname into lower-case before creating principal
567 * small bits of more MIT-compatability
570 Changes in release 0.2m:
572 * handle glibc's getaddrinfo() that returns several ai_canonname
578 Changes in release 0.2l:
582 Changes in release 0.2k:
586 * make struct sockaddr_storage in roken work better on alphas
588 * some missing [hn]to[hn]s fixed.
590 * allow users to change their own passwords with kadmin (with initial
593 * fix stupid bug in parsing KDC specification
595 * add `ktutil change' and `ktutil purge'
597 Changes in release 0.2j:
601 * ftpd works in passive mode
603 * should build on cygwin
605 * work around broken IPv6-code on OpenBSD 2.6, also add configure
606 option --disable-ipv6
608 Changes in release 0.2i:
610 * use getaddrinfo in the missing places.
612 * fix SRV lookup for admin server
614 * use get{addr,name}info everywhere. and implement it in terms of
615 getipnodeby{name,addr} (which uses gethostbyname{,2} and
618 Changes in release 0.2h:
620 * fix typo in kx (now compiles)
622 Changes in release 0.2g:
626 * repair appl/test programs
627 * sockaddr_storage works on solaris (alignment issues)
628 * works better with non-roken getaddrinfo
630 * some non standard C constructs removed
632 Changes in release 0.2f:
634 * support SRV records for kpasswd
635 * look for both _kerberos and krb5-realm when doing host -> realm mapping
637 Changes in release 0.2e:
639 * changed copyright notices to remove `advertising'-clause.
640 * get{addr,name}info added to roken and used in the other code
641 (this makes things work much better with hosts with both v4 and v6
642 addresses, among other things)
643 * do pre-auth for both password and key-based get_in_tkt
644 * support for having several databases
645 * new command `del_enctype' in kadmin
646 * strptime (and new strftime) add to roken
647 * more paranoia about finding libdb
650 Changes in release 0.2d:
652 * new configuration option [libdefaults]default_etypes_des
653 * internal ls in ftpd builds without KRB4
654 * kx/rsh/push/pop_debug tries v5 and v4 consistenly
658 Changes in release 0.2c:
660 * bug fixes (see ChangeLog's for details)
662 Changes in release 0.2b:
665 * actually bump shared library versions
667 Changes in release 0.2a:
669 * a new program verify_krb5_conf for checking your /etc/krb5.conf
670 * add 3DES keys when changing password
671 * support null keys in database
672 * support multiple local realms
673 * implement a keytab backend for AFS KeyFile's
674 * implement a keytab backend for v4 srvtabs
675 * implement `ktutil copy'
676 * support password quality control in v4 kadmind
677 * improvements in v4 compat kadmind
678 * handle the case of having the correct cred in the ccache but with
679 the wrong encryption type better
680 * v6-ify the remaining programs.
681 * internal ls in ftpd
682 * rename strcpy_truncate/strcat_truncate to strlcpy/strlcat
683 * add `ank --random-password' and `cpw --random-password' in kadmin
684 * some programs and documentation for trying to talk to a W2K KDC
687 Changes in release 0.1m:
689 * support for getting default from krb5.conf for kinit/kf/rsh/telnet.
690 From Miroslav Ruda <ruda@ics.muni.cz>
691 * v6-ify hprop and hpropd
692 * support numeric addresses in krb5_mk_req
693 * shadow support in login and su. From Miroslav Ruda <ruda@ics.muni.cz>
694 * make rsh/rshd IPv6-aware
695 * make the gssapi sample applications better at reporting errors
697 * handle systems with v6-aware libc and non-v6 kernels (like Linux
698 with glibc 2.1) better
699 * hide failure of ERPT in ftp
702 Changes in release 0.1l:
704 * make ftp and ftpd IPv6-aware
705 * add inet_pton to roken
706 * more IPv6-awareness
707 * make mini_inetd v6 aware
709 Changes in release 0.1k:
711 * bump shared libraries versions
712 * add roken version of inet_ntop
713 * merge more changes to rshd
715 Changes in release 0.1j:
717 * restore back to the `old' 3DES code. This was supposed to be done
718 in 0.1h and 0.1i but I did a CVS screw-up.
719 * make telnetd handle v6 connections
721 Changes in release 0.1i:
723 * start using `struct sockaddr_storage' which simplifies the code
724 (with a fallback definition if it's not defined)
725 * bug fixes (including in hprop and kf)
726 * don't use mawk which seems to mishandle roken.awk
727 * get_addrs should be able to handle v6 addresses on Linux (with the
728 required patch to the Linux kernel -- ask within)
729 * rshd builds with shadow passwords
731 Changes in release 0.1h:
733 * kf: new program for forwarding credentials
735 * make forwarding credentials work with MIT code
736 * better conversion of ka database
737 * add etc/services.append
738 * correct `modified by' from kpasswdd
741 Changes in release 0.1g:
743 * kgetcred: new program for explicitly obtaining tickets
748 Changes in release 0.1f;
750 * experimental support for v4 kadmin protokoll in kadmind
753 Changes in release 0.1e:
755 * try to handle old DCE and MIT kdcs
756 * support for older versions of credential cache files and keytabs
757 * postdated tickets work
758 * support for password quality checks in kpasswdd
759 * new flag --enable-kaserver for kdc
761 * prototype su program
762 * updated (some) manpages
763 * support for KDC resource records
764 * should build with --without-krb4
767 Changes in release 0.1d:
769 * Support building with DB2 (uses 1.85-compat API)
770 * Support krb5-realm.DOMAIN in DNS
771 * new `ktutil srvcreate'
772 * v4/kafs support in klist/kdestroy
775 Changes in release 0.1c:
777 * fix ASN.1 encoding of signed integers
778 * somewhat working `ktutil get'
779 * some documentation updates
780 * update to Autoconf 2.13 and Automake 1.4
781 * the usual bug fixes
783 Changes in release 0.1b:
785 * some old -> new crypto conversion utils
788 Changes in release 0.1a:
792 * make sure we ask for DES keys in gssapi
793 * support signed ints in ASN1
796 Changes in release 0.0u:
800 Changes in release 0.0t:
802 * more robust parsing of krb5.conf
803 * include net{read,write} in lib/roken
806 Changes in release 0.0s:
808 * kludges for parsing options to rsh
809 * more robust parsing of krb5.conf
810 * removed some arbitrary limits
813 Changes in release 0.0r:
815 * default options for some programs
818 Changes in release 0.0q:
820 * support for building shared libraries with libtool
823 Changes in release 0.0p:
825 * keytab moved to /etc/krb5.keytab
826 * avoid false detection of IPv6 on Linux
827 * Lots of more functionality in the gssapi-library
828 * hprop can now read ka-server databases
831 Changes in release 0.0o:
833 * FTP with GSSAPI support.
836 Changes in release 0.0n:
838 * Incremental database propagation.
839 * Somewhat improved kadmin ui; the stuff in admin is now removed.
840 * Some support for using enctypes instead of keytypes.
841 * Lots of other improvement and bug fixes, see ChangeLog for details.