ANN: SELinux userspace 3.4 release

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello!

The 3.3 release for the SELinux userspace is now available at:

https://github.com/SELinuxProject/selinux/wiki/Releases

I signed all tarballs using my gpg key, see .asc files.
You can download the public key from
https://people.redhat.com/plautrba/plautrba@xxxxxxxxxxxxxx

Thanks to all the contributors, reviewers, testers and reporters!

User-visible changes
--------------------

* A new selinux_restorecon_parallel(3) function that allows to run relabeling over multiple threads

* setfiles/restorecon/fixfiles support parallel relabeling via [ -T <N> ] threads option

* A new semodule options [ -m | --checksum ] to get SHA256 hashes of modules

* mcstrans ported to PCRE2

* libsepol/cil supports IPv4/IPv6 address embedding

* Add a new semodule option [ --rebuild-if-modules-changed ] to optionally rebuild policy when modules
  are changed externally

* A lot of static code analyse issues, fuzzer issues and compiler warnings fixed

* Translations split into sub-packages and updated from
  https://translate.fedoraproject.org/projects/selinux/

* New policy utilities in libsepol - sepol_check_access,
  sepol_compute_av, sepol_compute_member, sepol_compute_relabel,
  sepol_validate_transition

* A new setfiles option [-C] for distinguishing file tree walk errors

* Improved code quality and bug fixes


Development-relevant changes
----------------------------

* ci: run the tests under ASan/UBsan on GHActions

(Long) shortlog of changes since the 3.3 release
------------------------------------------------
Christian Göttsche (115):
      libsepol: do not pass NULL to memcpy
      libsemanage: do not sort empty records
      libsemanage/tests: free memory
      libselinux: use valid address to silence glibc 2.34 warnings
      libsepol: avoid passing NULL pointer to memcpy
      checkpolicy: use correct unsigned format specifiers
      libsepol: use string literals as format strings
      policycoreutils: use string literal as format strings
      Enable extra global compiler warnings
      checkpolicy: ignore possible string truncation
      policycoreutils: mark local functions static
      sandbox: mark local functions static
      python: mark local functions static
      mcstrans: avoid missing prototypes
      libsemanage: mark local functions static
      libsemanage: include paired header for prototypes
      libsemanage: add extern prototype for legacy function
      mcstrans: port to new PCRE2 from end-of-life PCRE
      libselinux: use PCRE2 by default
      Replace PCRE with PCRE2 build dependencies
      libsepol/cil: support IPv4/IPv6 address embedding
      checkpolicy: warn on bogus IP address or netmask in nodecon statement
      cifuzz: enable report-unreproducible-crashes
      cifuzz: use the default runtime of 600 seconds
      libsepol/fuzz: silence secilc-fuzzer
      libsepol: add libfuzz based fuzzer for reading binary policies
      libsepol/fuzz: limit element sizes for fuzzing
      libsepol: use logging framework in conditional.c
      libsepol: use logging framework in ebitmap.c
      libsepol: use mallocarray wrapper to avoid overflows
      libsepol: use reallocarray wrapper to avoid overflows
      libsepol: add checks for read sizes
      libsepol: enforce avtab item limit
      libsepol: clean memory on conditional insertion failure
      libsepol: reject abnormal huge sid ids
      libsepol: reject invalid filetrans source type
      libsepol: zero member before potential dereference
      libsepol: use size_t for indexes in strs helpers
      libsepol: do not underflow on short format arguments
      libsepol: do not crash on class gaps
      libsepol: do not crash on user gaps
      libsepol: use correct size for initial string list
      libsepol: do not create a string list with initial size zero
      libsepol: split validation of datum array gaps and entries
      libsepol: validate MLS levels
      libsepol: validate expanded user range and level
      libsepol: validate permission count of classes
      libsepol: resolve log message mismatch
      libsepol: validate avtab and avrule types
      libsepol: validate constraint expression operators and attributes
      libsepol: validate type of avtab type rules
      libsepol: validate ocontexts
      libsepol: validate genfs contexts
      libsepol: validate permissive types
      libsepol: validate policy properties
      libsepol: validate categories
      libsepol: validate fsuse types
      libsepol: validate class default targets
      libsepol/cil: bail out on snprintf failure
      libsepol: check for valid sensitivity before lookup
      libsepol: check for saturated class name length
      libsepol: return failure on saturated class name length
      libsepol: drop trailing newlines in log messages
      libsepol: handle type gaps
      libsepol: invert only valid range of role bitmap
      policycoreutils: handle argument counter of zero
      libsepol: do not add gaps to string list
      libsepol: use correct error type to please UBSAN
      libsepol: more strict constraint validation
      libsepol: validate several flags
      checkpolicy: allow wildcard permissions in constraints
      python/sepolgen: accept square brackets in FILENAME token
      libsepol: NULL pointer offset fix
      newrole: add Makefile target to test build options
      newrole: silence compiler warnings
      newrole: check for crypt(3) failure
      newrole: ensure password memory erasure
      libsepol: reject xperm av rules in conditional statements
      libsepol: validate boolean datum arrays
      libsepol/cil: silence GCC 12 array-bounds false positive
      libsepol: add missing oom checks
      libsepol: mark immutable mls and context parameter const
      libsepol: mark immutable common helper parameter const
      libsepol/cil: declare file local functions static
      libsepol/cil: drop unused function cil_tree_error
      libsepol/cil: post process pirqcon rules
      libsepol: add sepol_av_perm_to_string
      libsepol: introduce sepol_const_security_context_t typedef
      libsepol: export functions for policy analysis
      libsepol: add policy utilities
      libselinux/utils: check for valid contexts to improve error causes
      policycoreutils: drop usage of egrep in fixfiles
      libsepol/cil: declare file local function pointer static
      libsepol: check correct pointer for oom
      libsepol: drop unnecessary const discarding casts
      libselinux: limit has buffer size
      libsemanage: avoid double fclose
      Correct misc typos
      libsepol/tests: adjust IPv6 netmasks
      libsepol/cil: comment out unused function __cil_verify_rule
      libsemanage: ignore missing prototypes in swig generated code
      Enable missing prototypes
      libselinux: correct parameter type in selabel_open(3)
      libselinux: free memory on selabel_open(3) failure
      libselinux: correctly hash specfiles larger than 4G
      checkpolicy: mention class name on invalid permission
      libselinux: emulate O_PATH support in fgetfilecon/fsetfilecon
      libselinux: restorecon: misc tweaks
      libselinux: restorecon: forward error if not ENOENT
      libselinux: restorecon: pin file to avoid TOCTOU issues
      libselinux: free memory in error branch
      libselinux: preserve errno in selinux_log()
      libselinux/utils: print errno on failure
      libselinux: update man page of setfilecon(3) family about context parameter
      ci: declare git repository a safe directory

Cutright Jacob (1):
      Modified Russian and English man pages to fix typo; REQUIREUSERS -> REQUIRESEUSERS

Evgeny Vereshchagin (1):
      ci: run the tests under ASan/UBsan on GHActions

James Carter (43):
      libsepol: Add support for file types in writing out policy.conf
      libsepol/cil: Refactor filecon file type handling
      libsepol/cil: Allow optional file type in genfscon rules
      secilc/docs: Document the optional file type for genfscon rules
      libsepol: Write out genfscon file type when writing out CIL policy
      libsepol/cil: Do not copy blockabstracts when inheriting a block
      libsepol/cil: Mark as abstract all sub-blocks of an abstract block
      libsepol/cil: Do not resolve names to declarations in abstract blocks
      libsepol/cil: Ensure that the class in a classcommon is a kernel class
      libsepol: Return an error if check_assertion() returns an error.
      libsepol: Change label in check_assertion_avtab_match()
      libsepol: Remove uneeded error messages in assertion checking
      libsepol: Check for error from check_assertion_extended_permissions()
      libsepol: Use consistent return checking style
      libsepol: Move check of target types to before check for self
      libsepol: Create function check_assertion_self_match() and use it
      libsepol: Use (rc < 0) instead of (rc) when calling ebitmap functions
      libsepol: Remove unnessesary check for matching class
      libsepol: Move assigning outer loop index out of inner loop
      libsepol: Make use of previously created ebitmap when checking self
      libsepol: Refactor match_any_class_permissions() to be clearer
      libsepol: Make return value clearer when reporting neverallowx errors
      libsepol: The src and tgt must be the same if neverallow uses self
      libsepol: Set args avtab pointer when reporting assertion violations
      libsepol: Fix two problems with neverallowxperm reporting
      libsepol/cil: Add cil_get_log_level() function
      libsepol/cil: Provide more control over reporting bounds failures
      libsepol/cil: Limit the neverallow violations reported
      libsepol/cil: Limit the amount of reporting for context rule conflicts
      libsepol: Do a more thorough validation of constraints
      libsepol/cil: Don't add constraint if there are no permissions
      libsepol: Don't write out constraint if it has no permissions
      libsepol/cil: Write a message when a log message is truncated
      libsepol: Use calloc when initializing bool_val_to_struct array
      libsepol: Validate conditional expressions
      Add a file describing the security vulnerability handling process
      libsepol: Replace calls to mallocarray() with calls to calloc()
      setfiles.8: -q is deprecated and has no effect
      libsepol/tests Include policydb.h header for policydb_t declaration
      libsepol/tests: Include paired headers for prototypes
      libsepol/tests: Declare file local functions as static
      libsemanage/tests: Declare file local functions as static
      libsemanage/tests: Remove unused functions

Laszlo Ersek (5):
      setfiles: fix up inconsistent indentation
      setfiles: remove useless assignment and comment (after RHBZ#1926386)
      setfiles: remove useless "iamrestorecon" checks in option parsing
      selinux_restorecon: introduce SELINUX_RESTORECON_COUNT_ERRORS
      setfiles: introduce the -C option for distinguishing file tree walk errors

Markus Linnala (1):
      Use IANA-managed domain example.com in examples

Ondrej Mosnacek (16):
      label_file: fix a data race
      selinux_restorecon: simplify fl_head allocation by using calloc()
      selinux_restorecon: protect file_spec list with a mutex
      libselinux: make selinux_log() thread-safe
      libselinux: make is_context_customizable() thread-safe
      selinux_restorecon: add a global mutex to synchronize progress output
      selinux_restorecon: introduce selinux_restorecon_parallel(3)
      setfiles/restorecon: support parallel relabeling
      libsemanage: add missing include to boolean_record.c
      semodule,libsemanage: move module hashing into libsemanage
      libsemanage: move compressed file handling into a separate object
      libsemanage: clean up semanage_direct_commit() a bit
      libsemanage: optionally rebuild policy when modules are changed externally
      semodule: add command-line option to detect module changes
      libsepol/cil: add support for self keyword in type transitions
      libsepol,checkpolicy: add support for self keyword in type transitions

Petr Lautrbach (18):
      semodule: add -m | --checksum option
      semodule: Fix lang_ext column index
      semodule: Don't forget to munmap() data
      libselinux: Fix selinux_restorecon_parallel symbol version
      semanage-fcontext.8: Drop extra )s after FILE_SPEC
      policycoreutils/fixfiles: Use parallel relabeling
      libselinux: Close leaked FILEs
      libsemanage: Fall back to semanage_copy_dir when rename() fails
      Split po/ translation files into the relevant sub-directories
      Update translations from translate.fedoraproject.org
      libsemanage: Fix USE_AFTER_FREE (CWE-672) in semanage_direct_get_module_info()
      semodule_package: Close leaking fd
      mcstrans: Fir RESOURCE_LEAK and USE_AFTER_FREE coverity scan defects
      Update VERSIONs to 3.4-rc1 for release.
      Update VERSIONs to 3.4-rc2 for release.
      Update missing sandbox translations
      Update VERSIONs to 3.4-rc3 for release.
      Update VERSIONs to 3.4 for release.

Richard Haines (2):
      libsepol: Add 'ioctl_skip_cloexec' policy capability
      libsepol: Shorten the policy capability enum names

Thiébaud Weksteen (2):
      libsepol: Populate and use policy name
      libsepol: fix reallocarray imports

Topi Miettinen (1):
      secilc: kernel policy language is infix

Vit Mojzis (4):
      policycoreutils: Improve error message when selabel_open fails
      libselinux: Strip spaces before values in config
      libsemanage: allow spaces in user/group names
      gettext: set _ on module level instead of builtins namespace





[Index of Archives]     [Selinux Refpolicy]     [Linux SGX]     [Fedora Users]     [Fedora Desktop]     [Yosemite Photos]     [Yosemite Camping]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux