From the Kernel 2.2.11
release notes:
Platforms:Alpha, Sparc, X86
Introduction
Linux 2.2.11 is the latest major update to the Linux kernel tree.
It fixes security holes in the kernel so should seriously be
considered as an important update for all Linux 2.2 systems. The
out of the box tree supports the Alpha the Sparc and X86 platforms.
PowerPC and MIPS are mostly merged but you should obtain the
platform specific tree. It is hoped MIPS and PowerPC will soon be
fully merged. ARM and M680x0 users should get their platform
specific tree.
Binary Compatibility
Linux 2.2.11 changes internal system structures. You should
therefore rebuild third party kernel modules such as pcmcia-cs when
upgrading from older kernels to this one.
Security Notes
If you have local users on the machine there are no workarounds for
some of the fixed bugs. If you are concerned only with remotely
exploitable bugs then the only concern is the firewall bug. This
can be worked around by
- Applying just the patch to net/ipv4/ip_fw.c or
- Building a kernel with CONFIG_ALWAYS_DEFRAGMENT. This is the
recommended configuration for a firewall except where there are
multiple ingres paths. Using this option also screens clients
behind the firewall from fragment attacks.
It is possible the socket binding bug can be exploited remotely
by requesting the right things from a server. We are not aware of
any ways to do this.
Architecture Updates
- Alpha
- Extensive updates to the Alpha platform support have been
merged from the Alpha maintainers. Significant changes have been
made to the maths emulation support. - i386
- Support is now available for machines with 2Gig of RAM.
The interrupt handling has been modified for better SMP
performance. An SMP race when freeing an interrupt has been
cured.
The interrupt return path has been optimised for modern CPU’s with
a hardware call stack.
ioremap now allows mapping to the top of memory. - Mips
- Most of the mips port has been merged with the main tree. The
work is not totally complete. - PowerPC
- Some changes have been merged.
- Sparc
- The master kernel should now be up to date with the Sparc
tree.
A problem with the Sun4m SMP has been fixed.
Sparc64 support for TV capture cards has been added.
A race condition on core dumping has been fixed.
Core Updates
- Coloured Zero Page
- The kernel core supports a colouring of zero pages. Currently
only the MIPS port uses this facility. - Fork
- Fork set the processor id to NO_PROC_ID. This could cause
crashes. - Kupdated
- The update task now runs in kernel space instead of user
space. - Memory allocation
- The memory allocator has been updated so that it tries a lot
harder to keep ISA DMA memory pools available. - PCI bus
- If the machine ran out of memory during boot up scanning of the
PCI bus it would crash. - Request Length Limit
- The block device layer can now do merging of non
memory-contiguous requests for some drivers and can also limit the
number of segments per merge. - Signal Handling
- Queued RT signals had atomicity problems that could eventually
cause them to stop working. - Swapping
- An off by one error that could cause system deadlocks when you
ran out of memory has been fixed.
Driver Updates
- BTTV TV capture
- The capture driver now supports the ultrasparc platform. The
LifeView FlyKit card is now supported. - Cadet Radio Driver
- A bug has been fixed which could cause RDS data
corruption. - CDROM driver
- A procfs handling bug where the cdrom layer could hand back
more data than was requested has been fixed. - Compaq SMART2
- The Compaq SMART2 now has a Linux driver.
- Cyclades multiport serial
- Interrupt mode is supported on the Cyclom-Z>br>Several
minor bugs were fixed. - Gemtek Radio
- The I/O address for the onboard GemTek card is now
recognized. - IDE CDROM
- Several small bugs have been fixed.
- IDE Floppy
- The ZIP disk corruption problem should be dead.
- IDE Tape
- An SMP race condition has been fixed. A case where it used
memory after freeing it has been fixed. - ISDN4Linux
- Significant updates have been made to the ISDN layer in the
kernel. Several more cards are now supported. - Multitech ISI series multiport adapters
- Support has been added for the PCI bus ISI cards.
- Mylex DAC-960
- The DAC-960 raid controller card is now supported by
Linux. - Network Block Device
- The network block device mis-set the size of larger network
block devices (those over about 2Gig). - Parallel Port
- ECP Parallel ports are now dropped into a PS/2 like mode.
- Radiotrack 2
- This driver previously only worked as a module. It now works
compiled into the kernel. - Sound Layer
- The DMAsound driver has several small bug fixes.
Allocation bugs were fixed on the ES1370/ES1371 and SonicVibes
drivers.
The S/PDIF output is now supported on newer ES1371 chips.
A configuration bug on the Opti C924 has been fixed.
The OPL3/SA2 driver has been improved.
ES1869+ ESS chips should now play at the right speed.
3DSE enable/disable is supported by OSS.
The joystick on the trix card is now runtime configurable. - Specialix SX/SI multiport
- These cards are now supported by a new specialix serial
driver. - Quick Cam
- A memory allocation bug that could cause crashes in both the
quickcam drivers has been fixed. - Serial
- A bug that prevent shared interrupt mode working on the PC
serial driver has been fixed. - TGAfb
- A frame buffer for the DECChip 21030 frame buffers. These are
found in many of the Alpha based machines. - VGA Frame Buffer Console
- Linux 2.2.11 adds a native EGA/VGA 16 colour console to the
frame buffer console support. This is primarily aimed at GUI
installers but can be used for other things too.
File System Updates
- CODA
- Coda now supports pipe devices. Several other
cleanups/changes. - EFS
- SGI EFS is now supported read only.
- Ext2fs
- “Too large” error andling errors on very large files have been
fixed.
The immutability rules have been updated. - FAT
- FAT now caches by starting cluster.
FAT knows FAT32 is really only 28bit.
Now generates inode numbers differently. - FIBMAP
- The FIBMAP ioctl now requires RAWIO capability.
- ISOfs
- A case where the ISO fs could crash the machine when it ran out
of memory has been resolved. - Lockd
- A list mishandling bug in the lock daemon has been fixed.
2.0.x compatible ‘local only’ locking is supported. - Loop Device
- The loopback driver for mounting file systems onto files now
checks the underlying layer supportd bmap(). - Nextstep CD-ROM supported
- The UFS file system can now handle NextStep CD-ROM format.
- NCP fs
- A null pointer crash case has been fixed.
- NFS client
- A stale handle case has been fixed.
- Pipes
- A technical violation of the SuSv2 specification when preading
0 bytes from a pipe has been fixed. - Procfs
- The kernel memory image now reports the correct offset for its
base.
A memory handling bug has been fixed. - QNX fs
- A crash when bad blocks are read has been fixed.
- Quota
- A whole pile of races, especially SMP races, in the Quota
subsystem have been fixed. - UFS
- Crashes when a block cannot be read have been cured.
- Ultrix Partition Tables
- Ultrix partition tables are now supported. This is needed for
the MIPS port in particular.
Miscellaneous Updates
- ChangeLog
- The Changelog has been updated to reflect newer tools.
Network Updates
- Alteon AceNIC
- The driver now recognizes the Farallon PN9000SX and the SGI
variants of the board. - Appletalk
- Now allows larger net ranges as 2.0 did. Fixed a crash on route
changes. - ARCnet
- Several cases where an out of memory could crash the machine
have been fixed. The irq probe delay has been increased to resolve
a problem on some SMP boxes using ARCnet cards. - Arlan
- The ISA bus Arlan radio interfaces are now supported.
- Bridge
- The bridge layer handled BPDU time values wrongly.
- Comtrol Hostess SV-11
- A case where a DMA channel could be freed twice has been
cured. - COSA
- The COSA driver has several bugs fixed including a firmware bug
workaround and a deadlock bugfix. - CS89x0
- Underrun handling on the DMA was faulty. This update should fix
it. - DEPCA
- Bridging did not work with the DEPCA driver due to an error in
the packet length computation. - General Instruments Surfboard 1000
- A driver supporting the internal SB1000 ISA card has been added
to the kernel. For more information see http://home.adelphia.net/~siglercm/sb1000.html. - IBM ‘Olympic’ PCI token ring adapters
- Support has been added for most of the IBM PCI token ring
adapters. The Lanstreamer is not yet supported however. - IP layer
- Fixed routing bug, socket hashing bug, crash with MTU below 68
bytes.
An IGMP protocol handling error has been fixed. - IP version 6
- The firewall code could oops if it ran out of memory.
- IPX
- IPX packet routing could oops if the machine ran out of
memory. - Lance
- The Lance driver could oops if there was no memory free.
- Masquerade
- Masquerading made a poor choice of hashes for some
operations.
The IRC masquerade did not understand the extended DCC
commands. - Multicast Routing
- PIM2 checksumming was incorrect and broke with old peers.
- NE2000/PCI Driver
- This now supports the PowerPC and also the differently broken
Holtek chips. - NetROM
- The NetROM layer could oops during loading if it ran out of
memory. - Packet Schedulers
- Several bugs were fixed in the packet scheduling.
- PCNet 32
- Now supports the 79cc973/5 chips.
Some PCI scanning changes have been made.
A bug with manual MII selection has been fixed. - Realtek 8129/8139
- This driver has been updated.
- ROSE
- The ROSE layer could oops during loading if it ran out of
memory. - Sealevel Systems 4021
- A driver for this Z85230 based card has been added.
- Seeq 8005
- This driver may now be built as a module.
- SiS900
- An experimental driver for this new chipset is now
included. - sk_mca
- Minor MCA bus fixes
- Synchronous PPP
- A bug where the synchronous PPP driver would drop connections
under high load due to keepalive lossage has been fixed. - TCP Protocol
- Fixed a race condition with two writers and partial writes.
Update workarounds for bugs in the PAWS protocol (RFC1323)
Fix crash in socket binding. - Tulip Driver
- A fix for a race where the Tulip driver would hang has been
added. - VIA Rhine
- This driver has been updated.
- Wavelan
- The frequency handling for the wavelan has been updated for the
newer modem revision. - YAM FPGA Radio Modem
- This is now supported under Linux in 1200 and 9600 baud
mode. - Yellowfin
- The yellowfin driver has been updated to correctly handle non
x86 platforms. - Z85230
- Several non fatal bugs in the Z85230 synchronous driver have
been fixed.
SCSI Updates
The general SCSI layer has been updated to fix a couple of read
only reuses of freed memory and to fix oopses when loading modules
and running out of memory. A problem where the scsi error thread
stopped initrd unloading has also been fixed.
- AHA152x
- Driver is now SMP safe. Abominable responsiveness under heavy
load should also be cured. - AHA154x
- Supports loadtime options as a module for configuration.
Supports AHA1542CFP geometry translation modes. - AIC7xxx
- Updated to fix various reported bugs.
- AMI Megaraid
- Fixed a bug with manager control commands causing false SCSI
layer errors.
Increased SCSI command timeouts. - ATP870U
- This driver is now SMP safe.
- Constants
- The SCSI layer will now name SCSI 2 commands in verbose error
reports. - EATA
- The driver will set a device to master mode if need be.
- EATA-DMA
- This driver is now SMP safe.
- IDE SCSI
- When scsi generic was used the IDE SCSI layer could get
confused.
IDE SCSI generic transform couldn’t be disabled once enabled. - IN2000
- The assembly part of this did not compile with the latest
compilers. - Initio SCSI
- On non X86 platforms some delays were incorrect by a factor of
ten. - NCR 53c8xx
- Fix misdetection of 53C875E and other minor fixes.
- NCR 53C9x
- Driver is now SMP safe.
- QlogicFC
- Now supports the isp2200 card.
- Qlogic ISP
- Geometry handling corrected for larger than 8Gig disks.
- Symbios 53c416
- This driver is now SMP safe.
- Symbios 53c8xx
- Fix misdetection of the 53C875E. Added support for the 53C895A.
Updated scripts.
Security Updates
- AX.25
- The AX.25 layer had a bug allowing arbitrary scribbling into
kernel space by an application. The area hit is hard to control so
the exploit is probably limited, but still dangerous. - Capabilities
- There is now a bounding capability set that can only be
increased by process 1. This provides securelevel equivalence. - Firewall
- A carefully constructed packet sequence could rewrite the port
numbers on a packet potentially allowing frames that should be
screened through the firewall. - Mremap
- Mremap called zap_page_range with incorrect arguments. A large
realloc() under glibc could do all sorts of nasty things. - Sysrq
- It is now possible to build a kernel with debugging sysrq
support and enable/disable the option at runtime. - TCP
- Some unusual patterns of socket binding could cause a crash. A
user could deliberately trigger this. Now fixed. - /dev/port
- The RawIO capability is now required to open /dev/port,
/dev/mem and /dev/kmem.