FreeBSD The Power to Serve

FreeBSD/i386 4.6.2-RELEASE Release Notes

The FreeBSD Project

$FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 2002/08/13 21:38:44 bmah Exp $

The release notes for FreeBSD 4.6.2-RELEASE contain a summary of the changes made to the FreeBSD base system since 4.5-RELEASE. Both changes for kernel and userland are listed, as well as applicable security advisories for the base system that were issued since the last release. Some brief remarks on upgrading are also presented.

1 Introduction

This document contains the release notes for FreeBSD 4.6.2-RELEASE on the IA-32 hardware platform. It describes new features of FreeBSD that have been added (or changed) since 4.5-RELEASE. It also provides some notes on upgrading from previous versions of FreeBSD.

This distribution of FreeBSD 4.6.2-RELEASE is a ``point release'', intended to address some issues (primarily security-related) discovered in FreeBSD 4.6-RELEASE. Originally, it was to carry the version number 4.6.1. However, several additional issues arose during the release engineering process, causing added delays. To avoid confusion, the release engineering and security teams decided that it would be best to rename the release-in-progress to 4.6.2.

This distribution can be found at or any of its mirrors. More information on obtaining this (or other) release distributions of FreeBSD can be found in the ``Obtaining FreeBSD'' appendix in the FreeBSD Handbook.

2 What's New

This section describes the most user-visible new or changed features in FreeBSD since 4.5-RELEASE. Typical release note items document new drivers or hardware support, new commands or options, major bugfixes, or contributed software upgrades. Security advisories for the base system that were issued after 4.5-RELEASE are also listed.

Release note entries that describe changes specific to this point release are marked with [4.6.2].

2.1 Kernel Changes

The puc(4) (PCI ``Universal'' Communications) driver has been added, to help connect PCI-based serial ports to the sio(4) driver.

The kernel dump device can now be set via the dumpdev loader tunable. As a result, it is now possible to obtain crash dumps from panics during the late stages of kernel initialization (before the system enters into single-user mode).

The snp(4) device is no longer static and can now be compiled as a module.

The spic(4) driver, which provides access to the Jog Dial device on some Sony laptops, has been added. moused(8) support for this device has also been added.

The viapm(4) driver for VIA SMBus power management controllers has been added.

2.1.1 Processor/Motherboard Support

The CPU_ATHLON_SSE_HACK kernel option has been added, which attempts to enable the SSE feature bit on newer Athlon CPUs if the BIOS has forgotten to enable it.

On some systems, the BIOS does not activate the I/O ports and memory of PCI devices, thus making them unusable. The PCI_ENABLE_IO_MODES kernel option forces FreeBSD to enable these devices so that they can be used.

2.1.2 Boot Loaders

boot2 now supports a -n option to disallow boot interruption by keypresses.

2.1.3 Network Interface Support

The an(4) driver now supports Cisco LEAP, as well as the ``Home'' WEP key. The Linux Aironet utilities are now supported under emulation.

Generic support for ARCNET token-based networks has been added.

The cm driver has been added to support SMC COM90cx6 ARCNET network adapters.

The dc(4) driver now has support for VLANs.

Support for Intel Gigabit Ethernet cards in the GENERIC kernel is now provided by the em(4) driver, rather than the wx(4) driver. The latter driver has been deprecated since FreeBSD 4.5-RELEASE.

The my driver, which supports the Myson Fast Ethernet and Gigabit Ethernet adapters, has been added.

The wi(4) driver now has support for Prism II and Prism 2.5-based NICs. 104/128-bit WEP now works on Prism cards.

The wi(4) driver now supports using a FreeBSD host as a wireless access point. This functionality can be enabled using the mediaopt hostap option of ifconfig(8). This feature requires a wireless adapter based on the Prism II chipset.

The wi(4) driver now has support for bsd-airtools.

The xe driver can now be built as a module.

Selected network drivers now implement a semi-polling mode, which makes systems much more resilient to attacks and overloads. To enable polling, the following options are required in a kernel configuration file:

    options DEVICE_POLLING
    options HZ=1000 # not compulsory but strongly recommended
The kern.polling.enable sysctl variable will then activate polling mode; with the kern.polling.user_frac sysctl indicating the percentage of CPU time to be reserved for userland. The devices initially supporting polling are dc(4), fxp(4), rl(4), and sis(4). More details can be found in the polling(4) manual page.

2.1.4 Network Protocols

bridge(4) now has better support for multiple, fully-independent bridging clusters, and is much more stable in the presence of dynamic attachments and detatchments. Full support for VLANs is also supported.

A bug in the IPsec processing for IPv4, which caused the inbound SPD checks to be ignored, has been fixed.

A new ng_eiface netgraph module has been added, which appears as an Ethernet interface but delivers its Ethernet frames to a Netgraph hook.

A new ng_etf(4) netgraph node allows Ethernet type packets to be filtered to different hooks depending on ethertype.

The tcp(4) syncache implementation had a bug that could cause kernel panics; this has been fixed.

The TCP implementation now properly ignores packets addressed to IP-layer broadcast addresses.

2.1.5 Disks and Storage

The ahc(4) driver was synchronized with the version from FreeBSD -CURRENT as of 29 April 2002.

The ata(4) driver was synchronized with the driver from FreeBSD -CURRENT as of 18 March 2002.

[4.6.2] A bug which sometimes prevented ata(4) tagged queueing from working correctly has been corrected.

The ata(4) driver now has support for creating, deleting, querying, and rebuilding ATA RAIDs under control of atacontrol(8).

[4.6.2] The ata(4) driver now computes maximum transfer sizes correctly. This fixes numerous READ_BIG and other errors that occurred when accessing certain ATA devices.

2.1.6 Filesystems

A bug was been fixed in soft updates that could cause occasional filesystem corruption if the system is shut down immediately after performing heavy filesystem activities, such as installing a new kernel or other software.

2.1.7 PCCARD Support

[4.6.2] A bug has been fixed in the PCCARD power code. This fixes a problem (primarily seen with Sony VAIO and Toshiba laptops) where some machines would hang at boot-time or at their first PCCARD access. Some other problems related to this bug may be also be corrected; in particular, Toshiba laptops based on the ToPIC chip will now be able to use both slots at the same time, and some workarounds for PCI add-in cards are no longer necessary.

2.1.8 Multimedia Support

The ufm driver, supporting the D-Link DSB-R100 USB Radio, has been added.

The via82c686 sound driver now supports the VIA VT8233.

The ich sound driver now supports the SiS 7012 chipset.

The pcm(4) driver was synchronized with the version from FreeBSD -CURRENT as of 22 April 2002.

2.1.9 Contributed Software IPFilter

IPFilter has been updated to 3.4.27. isdn4bsd

The ifpi2(4) driver for supporting the AVM Fritz!Card PCI version 2 controller has been added.

2.2 Security Advisories

An ``off-by-one'' bug has been fixed in OpenSSH's multiplexing code. This bug could have allowed an authenticated remote user to cause sshd(8) to execute arbitrary code with superuser privileges, or allowed a malicious SSH server to execute arbitrary code on the client system with the privileges of the client user. (See security advisory FreeBSD-SA-02:13.)

A programming error in zlib could result in attempts to free memory multiple times. The malloc(3)/ free(3) routines used in FreeBSD are not vulnerable to this error, but applications receiving specially-crafted blocks of invalid compressed data could be made to function incorrectly or abort. This zlib bug has been fixed. For a workaround and solutions, see security advisory FreeBSD-SA-02:18.

Bugs in the TCP SYN cache (``syncache'') and SYN cookie (``syncookie'') implementations, which could cause legitimate TCP/IP traffic to crash a machine, have been fixed. For a workaround and patches, see security advisory FreeBSD-SA-02:20.

A routing table memory leak, which could allow a remote attacker to exhaust the memory of a target machine, has been fixed. A workaround and patches can be found in security advisory FreeBSD-SA-02:21.

A bug with memory-mapped I/O, which could cause a system crash, has been fixed. For more information about a solution, see security advisory FreeBSD-SA-02:22.

A security hole, in which SUID programs could be made to read from or write to inappropriate files through manipulation of their standard I/O file descriptors, has been fixed. Information regarding a solution can be found in security advisory FreeBSD-SA-02:23.

[4.6.2] The original fix for security advisory SA-02:23 (which addressed the use of file descriptors by set-user-id or set-group-id programs) contained an error. It was still possible for systems using procfs(5) or linprocfs(5) to be exploited. This error has now been corrected; a revised version of security advisory FreeBSD-SA-02:23 contains more details.

Some unexpected behavior could be allowed with k5su(8) because it does not require that an invoking user be a member of the wheel group when attempting to become the superuser (this is the case with su(1)). To avoid this situation, k5su(8) is now installed non-SUID by default (effectively disabling it). More information can be found in security advisory FreeBSD-SA-02:24.

Multiple vulnerabilities were found in the bzip2(1) utility, which could allow files to be overwritten without warning or allow local users unintended access to files. These problems have been corrected with a new import of bzip2. For more information, see security advisory FreeBSD-SA-02:25.

A bug has been fixed in the implementation of the TCP SYN cache (``syncache''), which could allow a remote attacker to deny access to a service when accept filters (see accept_filter(9)) were in use. This bug has been fixed; for more information, see security advisory FreeBSD-SA-02:26.

Due to a bug in rc(8)'s use of shell globbing, users may be able to remove the contents of arbitrary files if /tmp/.X11-unix does not exist and the system can be made to reboot. This bug has been corrected (see security advisory FreeBSD-SA-02:27).

[4.6.2] A buffer overflow in the resolver, which could be exploited by a malicious domain name server or an attacker forging DNS messages, has been fixed. See security advisory FreeBSD-SA-02:28 for more details.

[4.6.2] A buffer overflow in tcpdump(1), which could be triggered by badly-formed NFS packets, has been fixed. See security advisory FreeBSD-SA-02:29 for more details.

[4.6.2] ktrace(1) can no longer trace the operation of formerly privileged processes; this prevents the leakage of sensitive information that the process could have obtained before abandoning its privileges. For a discussion of this issue, see security advisory FreeBSD-SA-02:30 for more details.

[4.6.2] A race condition in pppd(8), which could be used to change the permissions of an arbitrary file, has been corrected. For more information, see security advisory FreeBSD-SA-02:32.

[4.6.2] Multiple buffer overflows in OpenSSL have been corrected, by way of an upgrade to the base system version of OpenSSL. More details can be found in security advisory FreeBSD-SA-02:33.

[4.6.2] A heap buffer overflow in the XDR decoder has been fixed. For more details, see security advisory FreeBSD-SA-02:34.

[4.6.2] A bug that could allow local users to read and write arbitrary blocks on an FFS filesystem has been corrected. More details can be found in security advisory FreeBSD-SA-02:35.

[4.6.2] A bug in the NFS server code, which could allow a remote denial of service attack, has been fixed. Security advisory FreeBSD-SA-02:36 has more details.

[4.6.2] A bug that could allow local users to panic a system using the kqueue(2) mechanism has been fixed. More information is contained in security advisory FreeBSD-SA-02:37.

2.3 Userland Changes

atacontrol(8) has been added to control various aspects of the ata(4) driver.

On ATAPI CDROM drives, cdcontrol(1) now supports a speed command to set the maximum speed to be used by the drive.

ctags(1) no longer creates a corrupt tags file if the source file used // (C++-style) comments.

dump(8) now supplies progress information in its process title, useful for monitoring automated backups.

/etc/rc.firewall and /etc/rc.firewall6 will no longer add their own hardcoded rules in the cases of a rules file in the firewall_type variable or a non-existent firewall type. (The motivation for this change is to avoid acting on assumptions about a site's firewall policies.) In addition, the closed firewall type now works as documented in the rc.firewall(8) manual page.

The functionality of /etc/security has been been moved into a set of scripts under the periodic(8) framework, to make local customization easier and more maintainable. These scripts now reside in /etc/periodic/security/.

The ether address family of ifconfig(8) has been changed to a more generic link family (ether is still accepted for backwards compatability).

fsdb(8) now supports a blocks command to list the blocks allocated by a particular inode.

ispppcontrol(8) has been deleted, and its functionality has been folded into spppcontrol(8).

k5su(8) is no longer installed SUID root by default. Users requiring this feature can either manually change the permissions on the k5su(8) executable or add ENABLE_SUID_K5SU=yes to /etc/make.conf before a source upgrade.

ldd(1) can now be used on shared libraries, in addition to executables.

last(1) now supports a -y flag, which causes the year to be included in the session start time.

libstand now has support for loading large kernels and modules split across several physical media.

libusb has been renamed as libusbhid, following NetBSD's naming conventions.

lpd(8) now recognizes the -s flag as the preferred synonym for -p (these flags cause lpd(8) not to open a socket for network print jobs).

lpd(8) now implements a new rc printcap option. When specified in a print queue for a remote host, boolean option causes lpd(8) to resend the data file for each copy the user requested via lpr -#n.

ls(1) now accepts a -h flag, which when combined with the -l flag, causes file sizes to be printed with unit suffixes, such that the number of digits printed is fewer than four.

m4(1) now accepts a -s flag to cause it to emit #line directives for use by cpp(1).

mergemaster(8) now supports two new flags. The -p flag enables a ``pre-buildworld'' mode to compare files known to be essential to the success of the buildworld and installworld system updating steps. The -C flag, used after a successful mergemaster(8) run, compares options in /etc/rc.conf to the default options in /etc/defaults/rc.conf.

ngctl(8) now supports a write command to send a data packet down a given hook.

patch(1) now accepts a -i command-line flag to read a patch from a file, rather than standard input.

[4.6.2] pam_opie(8) no longer emits fake challenges when the no_fake_prompts variable is specified.

[4.6.2] A pam_opieaccess(8) module has been added.

[4.6.2] pam_radius(8), pam_ssh(8), and pam_tacplus(8) have been synchronized with the versions in FreeBSD -CURRENT as of 3 July 2002.

A pam_ssh(8) module has been added to allow the use of SSH passphrases and keypairs for authentication. This module also handles session management by invoking ssh-agent(1).

[4.6.2] pam_unix(8) has been synchronized with the version in FreeBSD -CURRENT as of 9 March 2002 (pre-OpenPAM).

pr(1) now supports the -f and -p flags to pause output going to a terminal.

The -W option to ps(1) (to extract information from a specified swap device) has been useless for some time; it has been removed.

reboot(8) now takes a -k to specify the next kernel to boot.

sshd(8) no longer emits fake S/Key challenges for users who do not have S/Key enabled. The prior behavior created confusing, useless one-time-password prompts when using some newer SSH clients to connect to a FreeBSD system.

sysinstall(8) now has rudimentary support for retrieving packages from the correct volume of a multiple-volume installation (such as a multi-CD distribution).

tftp(1) and tftpd(8) now support IPv6.

The usbhidctl(1) utility has been added to manipulate USB Human Interface Devices.

uuencode(1) and uudecode(1) now accept a -o option to set their output files. uuencode(1) can now be made to do base64 encoding when given the -m flag, while uudecode(1) can now automatically decode base64 files.

watch(8) now takes a -f option to specify a snp(4) device to use.

Locales with names of the form *.EUC have been renamed to the form *.euc??. For example, ja_JP.EUC has become ja_JP.eucJP. This improves locale name compatability with FreeBSD CURRENT, X11R6, and a number of other UNIX versions.

The locale support was synchronized with the code from FreeBSD -CURRENT. This change brings support for the LC_NUMERIC, LC_MONETARY, and LC_MESSAGES categories, as well as improvements to strftime(3), revised locale definitions, and improvement of the localization of many base system programs.

2.3.1 Contributed Software

[4.6.2] BIND has been updated to 8.3.3.

bzip2 has been updated to 1.0.2.

Heimdal Kerberos has been updated to 0.4e.

The ISC DHCP client has been updated to 3.0.1RC8.

[4.6.2] OpenSSH has been updated to version 3.4p1. Among the changes:

  • The *2 files are obsolete (for example, ~/.ssh/known_hosts can hold the contents of ~/.ssh/known_hosts2).

  • ssh-keygen(1) can import and export keys using the SECSH Public Key File Format, for key exchange with several commercial SSH implementations.

  • ssh-add(1) now adds all three default keys.

  • ssh-keygen(1) no longer defaults to a specific key type; one must be specified with the -t option.

  • A ``privilege separation'' feature, which uses unprivileged processes to contain and restrict the effects of future compromises or programming errors.

  • Several bugfixes, including closure of a security hole that could lead to an integer overflow and undesired privilege escalation.

Note: As with FreeBSD 4.6-RELEASE, Protocol 1,2 remains the default protocol setting in /etc/ssh/ssh_config. In FreeBSD -CURRENT (and FreeBSD 4-STABLE as of this writing), the default is Protocol 2,1.

[4.6.2] OpenSSL has been updated to 0.9.6e.

texinfo has been updated to 4.1.

The timezone database has been updated to the tzdata2002c release. Sendmail

sendmail has been updated to 8.12.3. sendmail(8) is no longer installed as a set-user-ID root binary (now set-group-ID smmsp). See /usr/src/contrib/sendmail/RELEASE_NOTES and /etc/mail/README for more information.

With this sendmail upgrade, multiple sendmail daemons (some required to handle outgoing mail) are started by rc(8), even if the sendmail_enable variable is set to NO. To completely disable sendmail, sendmail_enable must be set to NONE. Alternatively, for systems using a different MTA, the mta_start_script variable can be used to point to a different startup script (more details can be found in rc.sendmail(8)).

The permissions for sendmail alias and map databases built via /etc/mail/Makefile now default to mode 0640 to protect against a file locking local denial of service. It can be changed by setting the new SENDMAIL_MAP_PERMS make.conf option.

The permissions for the sendmail statistics file, /var/log/, have been changed from mode 0644 to mode 0640 to protect against a file locking local denial of service.

[4.6.2] A potential DNS map buffer overflow bug (in code that is not used in configurations by default) has been fixed.

Note: This bug has been addressed in FreeBSD 4.6-STABLE by the import of a newer version of sendmail.

2.3.2 Ports/Packages Collection

The Ports Collection infrastructure now uses XFree86 4.2.0 as the default version of the X Window System for the purposes of satisfying dependencies. To return to using XFree86 3.3.6, add the following line to /etc/make.conf:


2.4 Release Engineering and Integration

XFree86 4.2.0 is now the default version of the X Window System supported by sysinstall(8). It installs XFree86 as a set of standard binary packages, so the usual package utilities such as pkg_info(1) can be used to examine/manipulate its components.

[4.6.2] A bug that caused /usr/share/examples to be incompletely populated on fresh installs has been fixed.

3 Upgrading from previous releases of FreeBSD

If you're upgrading from a previous release of FreeBSD, you generally will have three options:

  • Using the binary upgrade option of sysinstall(8). This option is perhaps the quickest, although it presumes that your installation of FreeBSD uses no special compilation options.

  • Performing a complete reinstall of FreeBSD. Technically, this is not an upgrading method, and in any case is usually less convenient than a binary upgrade, in that it requires you to manually backup and restore the contents of /etc. However, it may be useful in cases where you want (or need) to change the partitioning of your disks.

  • From source code in /usr/src. This route is more flexible, but requires more disk space, time, and technical expertise. More information can be found in the ``Using make world'' section of the FreeBSD Handbook. Upgrading from very old versions of FreeBSD may be problematic; in cases like this, it is usually more effective to perform a binary upgrade or a complete reinstall.

Please read the INSTALL.TXT file for more information, preferably before beginning an upgrade. If you are upgrading from source, please be sure to read /usr/src/UPDATING as well.

Finally, if you want to use one of various means to track the -STABLE or -CURRENT branches of FreeBSD, please be sure to consult the ``-CURRENT vs. -STABLE'' section of the FreeBSD Handbook.

Important: Upgrading FreeBSD should, of course, only be attempted after backing up all data and configuration files.

This file, and other release-related documents, can be downloaded from

For questions about FreeBSD, read the documentation before contacting <>.

For questions about this documentation, e-mail <>.