11 June 2008 An updated SELinux release is available from the NSA web site, see:
5 March 2008 An updated SELinux release is available from the NSA web site, see:
25 September 2007 An updated SELinux release is available from the NSA web site, see:
22 March 2007 An updated SELinux release is available from the NSA web site, see:
23 January 2007 An updated SELinux release is available from the NSA web site, see:
18 October 2006 The policy toolchain includes fixed support for optionals in the base module, extended range transition support (policy.21), and proper support for MLS constructs in modules. libselinux includes direct client-side support for context translation via an external translation daemon (vs. the older approach of dlopen'ing libsetrans if present) and new interfaces for accessing the keycreate and sockcreate attributes. libsemanage includes the file context sorting code based on the reference policy fc_sort helper, and now keeps file_contexts.local separate so that it is properly prioritized by libselinux. libsepol, libsemanage and policycoreutils also include preliminary netfilter_contexts support, although the details may still be subject to change. policycoreutils includes the secon utility for displaying contexts and their components, the restorecond daemon, and the semodule_deps utility for displaying module dependencies. Numerous bug fixes have been merged.
15 March 2006 This release is based on Linux 2.6.16-rc6, which already includes a number of changes to SELinux that have been upstreamed, such as the ptrace bug fix, an inode security structure memory leak, the IPSEC hooks for implicit packet labeling, an XFS workaround to restore support for labeling of new inodes, and several cleanups. The SELinux patch for 2.6.16-rc6 includes several minor fixes and cleanups that will likely go into 2.6.17; most of these changes are already in -mm. The patch does not include other enhancements such as the peersec work that is already queued in the netdev tree for 2.6.17.
In userspace, a number of enhancements and fixes to the libraries and utilities have been merged. The enhancements include audit functionality for newrole and semanage, support for manipulation of active booleans, ports, nodes, and file contexts via libsemanage, support for including seusers and users_extra information in policy packages, and support for optionals in the base policy module. Role dominance support has also been fixed in checkpolicy. A number of optimizations to the libraries and to the file labeling utilities (setfiles, restorecon) have been merged.
The example policy has been archived to the historical versions page and is no longer being maintained. It has been superseded by the reference policy project.
The Implementing SELinux as a Linux Security Module technical report has been updated a little to reflect some of the more recent changes to SELinux, but no major content has been added.
7 December 2005 This release is based on Linux 2.6.14. The SELinux kernel patch for 2.6.14 includes support for canonicalization of getxattr results by SELinux, support for userspace to obtain canonical contexts via selinuxfs, a compatibility fix for MLS file contexts on non-MLS systems, and a fix to prevent setting SELinux attributes on inodes created in mountpoint labeled filesystems. All of these changes have already been upstreamed into Linus' git tree for inclusion in 2.6.15.
In userspace, a number of enhancements to the libraries and utilities have been merged. These enhancements include support for mapping Linux users to SELinux users and ranges via seusers without requiring policy modifications, a major reworking of the policy management and policy module support including major updates to libsepol, checkpolicy, libsemanage and policycoreutils, and centralization of and improvements to the policy loading logic.
Note that pam_selinux and SELinux userland patches for programs such as gdm, sshd, and crond have been modified in order to take advantage of the seusers mechanism for mapping Linux users to SELinux users and ranges. Similarly, the SELinux patch for SysVinit has been modified in order to use the new policy loading logic provided by libselinux. Please refer to the Fedora Core public CVS tree for updated SELinux userland patches in order to port these updates to other distributions as appropriate.
With regard to the policy management and module support, this release introduces the first version of libsemanage to provide a shared library and that includes support for managing some (but not yet all) non-module policy components. Note that the policy module package format has changed incompatibly since the prior nsa.gov SELinux release, as discussed on the list, but any future changes will provide proper compatibility support. The module utilities have been significantly overhauled and manual pages have been created for them. setsebool has been reworked to include support for the policy management infrastructure. audit2allow has been rewritten in python and extended to support generation of policy modules. genhomedircon has been partly converted to support the policy management infrastructure; there is still a lingering issue with expanding the ROLE macro in homedir_template for users, so manual updating of file_contexts.homedirs is necessary for non-user_r users if using policy managed via libsemanage.
Although this release includes an updated copy of the example policy, this will likely be the last such release before a final snapshot of the example policy is archived to the historical versions page. Further work on this policy has been superseded by the SELinux reference policy project.
7 September 2005 This release is based on Linux 2.6.13. The SELinux kernel patch for 2.6.13 includes support for atomic security labeling of new inodes (for ext2, ext3, tmpfs only at present), a generic VFS fallback for getting and setting security attributes on filesystems that do not natively support EAs, and memory optimizations for the policy's avtab. Several of these changes have already been upstreamed into Linus' git tree while others remain pending in the -mm patchset.
In userspace, a number of enhancements to the libraries and utilities have been merged. These enhancements include the support for the new binary policy version with the optimized avtab, a number of improvements in abstraction and organization within libsepol by Ivan Gyurdiev, the loadable policy module support by Tresys Technology (affecting libsepol, checkpolicy, policycoreutils and adding libsemanage), and the context translation support in libselinux based on work by Trusted Computer Solutions and Red Hat. Numerous bug fixes have also been merged, many submitted by Serge Hallyn of IBM based on bugs discovered using the Coverity tool.
With regard to the new binary policy version, checkpolicy -c 19 can be used to generate the prior binary policy version for kernels that do not yet have the necessary support. As usual, both the SELinux module and checkpolicy/libsepol provide backward compatibility for older binary policy versions.
With regard to the policy module support, selinux-doc/README.MODULES has some basic documentation of the module support, but further documentation and man pages will be needed. Note that libsemanage is currently only available as a static library and limited to managing policy modules (due to its origins as libsemod); it will be expanded in the future to provide a more complete policy management API and to provide a shared library with a stable API/ABI.
In this release, we have also stopped carrying copies of setools, slat, and polgen on nsa.gov itself, but continue to provide links to the respective Tresys Technology and MITRE SELinux sites where the latest versions can always be obtained. This avoids having stale copies around on nsa.gov and ensures that people always acquire the latest version.
22 June 2005 This release is based on Linux 2.6.12. The 2.6.12 kernel includes the name_connect permission check for controlling outbound connections. The SELinux kernel patch for 2.6.12 includes the execstack and execheap permission checks contributed by Lorenzo. The hierarchical role and type support by Tresys Technology has been merged into libsepol and checkpolicy. A new audit2why utility has been added to policycoreutils to help identify the causes of avc denials. libsepol has been re-licensed under the LGPL. Updated versions of setools by Tresys and polgen by MITRE were added. A number of patches for the userspace libraries, tools, and policy were merged.
9 March 2005 This release is based on Linux 2.6.11. The SELinux kernel patch for 2.6.11 includes enhanced MLS support, changes to the execute-related permission checking for legacy binaries, and an extension to the /proc/pid/attr API to allow use by scripts. Enhanced MLS support has been merged into the userspace libraries and tools. The libraries and tools have been modified to allow local customization of file contexts and users without requiring policy sources, and to preserve certain types that are marked as being customizable upon relabels. A helper for running init scripts under a pty from run_init was merged. setfiles was rewritten to use the matchpathcon library function. The technical reports in the selinux-doc package were updated to reflect the current SELinux code. The contributors page was updated. Numerous patches for the userspace libraries, tools, and policy were merged. Updated versions of setools, slat, and polgen were added.
7 January 2005 This release is based on Linux 2.6.10, but the current SELinux patch for the kernel includes a number of changes merged after 2.6.10 was released, including the AVC scalability work, AVC API and statistics support, dynamic context transition support, and enhanced controls over executable mappings. The checkpolicy policy compiler has been updated to order node context entries and to support supplementary type attribute declarations. Several improvements to libselinux, policycoreutils, and policy have been merged. Updated versions of setools, slat, and polgen were added. The NSA release has been reduced to the core SELinux code.
2 November 2004 This release is based on Linux 2.6.9, but the current SELinux patch for the kernel includes a number of changes made after 2.6.9 was released, including the xattr code consolidation, the send_sigurg mediation, the setscheduler deadlock fix, the locking fixes for the sidtab and netif table, and the AVC scalability work. The checkpolicy policy compiler has been updated to preserve port context ordering in order to allow sensible use of port ranges, and this facility is now used by the example policy to map all otherwise unspecified reserved ports to a distinct type that can be tightly controlled. Numerous improvements to libselinux, policycoreutils, and policy have been merged. An updated version of setools from Tresys has been merged. Updated userland patches and SRPMS have been merged from the Fedora Core 3 development tree. A new policy tool by MITRE, polgen, has been added to the release.
19 August 2004 This release is based on Linux 2.6.8.1. The stable SELinux kernel now includes revalidation of the controlling tty upon domain transitions. The SELinux NFSv3 enhancements now include revalidation of the inode security attributes from the server. The core checkpolicy logic has been moved into libsepol, a library for binary policy manipulation. Improved support for using policy booleans has been integrated into load_policy and init, and many compile-time policy tunables have been converted to runtime policy booleans. Updated userland patches and SRPMS have been merged from the Fedora Core 3 development tree. A number of contributed patches have been merged for the example policy and the policy core utilities.
29 June 2004 The current prototype and the experimental NFS code are now based on Linux kernel 2.6.7. Fine-grained netlink classes and permissions have been added. Many enhancements and bugfixes for policy as well as userland tools including slat and setools have been incorporated.
13 May 2004 The current prototype and the experimental NFS code are now based on Linux kernel 2.6.6. Several races and kernel socket creation have been fixed and a runtime disable has been added. The old linux 2.4-based kernel patch has been ported to 2.4.26. The userland patches have been updated from Fedora Core 2 development. There are now man pages for libselinux. X server security classes and access vector definitions were added and many policy updates were made.
8 April 2004 The current prototype and the experimental NFS code are now based on Linux kernel 2.6.5. IPv6 support has been added. A new sestatus utility is available. A number of bugs have been fixed and many updates have been made to the example policy.
12 March 2004 Experimental SELinux NFS code has been made available. The base kernel version for 2.4 has been updated to 2.4.25. The base version for 2.6 remains 2.6.3, but the SELinux patch has been updated. Among the improvements in this release: Fine-grained boolean labeling support has been merged. The userspace AVC has been enhanced to handle netlink selinux notifications. MLS improvements have been merged as well as updates to slat and the example policy.
23 February 2004 The base kernel versions have been updated to 2.4.24 and 2.6.3. The 2.6.3 kernel patches include significant enhancements including port-based controls, mount context options, and conditional policy extensions. libselinux now includes code for a userspace AVC and discovers the selinuxfx mount point at runtime. Many other updates and bugfixes have been applied.
5 December 2003 The base kernel versions have been updated to 2.4.23 and 2.6.0-test11. In 2.6.0-test11 controls have been added for inheritance of signal-related state and resource limits and the network interface and node controls have been reimplemented. SysVinit has been patched to eliminate the need for a modified initrd. Login now uses a pam_selinux module. Many other updates have been made to the tools, utilities and userland patches.
3 October 2003 A much needed complete overhaul of the SELinux web site at SourceForge.
1 October 2003 SELinux kernel patches for 2.6.0-test6 and 2.4.21 are available. The updated kernel patches include support for an selinux boot parameter and improved auditing. A number of bugfixes and improvements have been integrated into the user space tools and utilities. SRPMs for newer Red Hat packages are available. The star package has been added. The example policy has been updated. Improvements have been made to existing policy tools, and a new policy analysis tool has been added.
13 August 2003 The SELinux module has been merged into the mainline kernel as of 2.6.0-test3. This release includes new kernel patches based on the 2.6.0-test3 kernel and a backport of the 2.6 SELinux module to the 2.4.21 kernel. The new API is consistent between 2.4 and 2.6. The old 2.4 API and user-space utilities are no longer actively maintained. There have been a number of bug fixes and cleanups to the library and utilities as well as new contributions to the example policy.
11 July 2003 The base kernel versions have been updated to 2.5.74 and 2.4.21. The SELinux API redesign with xattr support has been completed for the version 2.5 based kernel. The SELinux daemon and utility patches have been ported to the new API. Support for the AT_SECURE auxv entry was added. Changes were made to bprm hook permission checking and nosuid operation. A report, "Securing the X Window System with SELinux" was added to documentation discussing adding SELinux controls to the window system. Finally, many contributed patches to tools and policy have been merged and RPM spec files and SRPMs are now provided.
7 April 2003 A new release of the base distribution from NSA. The example policy was updated with enhancements and cleanups. A number of bugs have been fixed in the SELinux module. The updated module is available for the ia32 2.4.20 Linux kernel. The updated module is also available for both the mainline 2.5.66 Linux kernel and an LSM patched 2.5.66 Linux kernel. The new mainline module also includes work in preparation for a new SELinux API. Finally, a port of SELinux to the arm 2.4.19 kernel is also now available.
14 February 2003 The "Getting Started with SE Linux HOWTO" was added to the SourceForge documentation manager. More links were added to this site to the documentation manager.
15 January 2003 A new release of the base distribution from NSA. The base 2.5 kernel version has been updated to 2.5.58. The base 2.4 kernel version remains at 2.4.20, but the LSM patch and the SELinux module for 2.4 have changed since the last release. New contributed policy analysis and policy management tools have been added to the provided tools and utilities. Hooks for xattr operations were added to 2.4. Inode security initialization has been reworked using the d_instantiate hook. The nfsd private file bug in 2.4 has been fixed and the task_kill bug in 2.5 has been fixed.
12 December 2002 A new release of the base distribution from NSA. The base kernel versions have been updated to 2.4.20 and 2.5.51. Initial SID and context for SCMP packets has been added. Additional policy enhancement and patch contributions have been merged. The logrotate patch has been updated to 3.6.5-2. The private file oversight in LSM, inode_doinit bug in SELinux, and selopt compile problems have all been fixed.
22 October 2002 A new release of the base distribution from NSA. The base 2.5 kernel version has been updated to 2.5.44. The base 2.4 kernel version remains at 2.4.19, but many changes have been made to the 2.4 LSM patch and to the 2.4 SELinux module since the last release. The modified login, sshd and crond programs have been updated to use a new configuration scheme. Socket handling has been improved. Internally, precondition functions have been removed in favor of early initialization support. The modified tar has been updated to tar-1.13.25. A number of other improvements, bug fixes and policy enhancements have taken place.
23 August 2002 The sourceforge CVS site has been updated with the 02082308 release from NSA in the nsa subdirectory. The selinux directory which contained pre-lsm NSA code has been renamed selinux.old to remind everyone that the currently maintained NSA releases are in the nsa directory.
23 August 2002 A new release of the base distribution from NSA. The base kernel versions were updated to 2.4.19 and 2.5.31. The SELinux peer SID functionality was re-implemented with new sock hooks; the accept_secure call should now be reliable. The sysctl hook and /proc/sys labeling were made configurable. Other minor enhancements were made including checkpolicy and the example policy. Bugs were fixed in auditing logic, PSID mapping code, and ipc permission hook.
1 August 2002 More current information was made available regarding distributions based on SELinux in the Distributions section of the site.
9 July 2002 The policy work by Mitre on the Apache webserver was included via link in the Policy Development section of the site.
3 July 2002 A new release of the base distribution from NSA. The development (2.5) LSM-based SELinux prototype was updated to kernel 2.5.24. The OpenSSH patch has been updated to openssh-3.4p1. The file system labeling support has been generalized and labeling for kernel-generated IGMP and ICMP traffic has been added. Many improvements have been made in the policy including making many policy sections optional, changing the audit configuration syntax, adding explicit type attribute declarations, and merging many contributed domains and policy changes. The technical report describing configuration of the policy has also been updated.
2 May 2002 A new release of the base distribution from NSA.
2 April 2002 A large number of changes were made to most parts of the website.