| Index | index by Group | index by Distribution | index by Vendor | index by creation date | index by Name | Mirrors | Help | Search |
| Name: acl | Distribution: openSUSE Tumbleweed |
| Version: 2.4.0 | Vendor: openSUSE |
| Release: 1.2 | Build date: Mon Jun 29 23:40:55 2026 |
| Group: System/Filesystems | Build host: reproducible |
| Size: 232511 | Source RPM: acl-2.4.0-1.2.src.rpm |
| Packager: https://bugs.opensuse.org | |
| Url: https://savannah.nongnu.org/projects/acl | |
| Summary: Commands for Manipulating POSIX Access Control Lists | |
getfacl and setfacl commands for retrieving and setting POSIX access control lists.
GPL-2.0-or-later AND LGPL-2.1-or-later
* Mon Jun 29 2026 Goldwyn Rodrigues <rgoldwyn@suse.com>
- Update to version 2.4.0:
Major Issues Fixed:
- The libacl library functions acl_get_file(), acl_set_file(),
acl_extended_file(), and acl_delete_def_file() take a pathname argument
and follow symbolic links. When a privileged user calls one of those
functions, an attacker that controls a pathname component can replace a
file or directory with a symbolic link and redirect the operation to a
different file. This can lead to local privilege escalation.
(CVE-2026-54369, bsc#1268867)
The library functions cannot be fixed without breaking compatibility; the
described behaviour is by design.
Instead, version 2.4.0 of the acl package introduces the additional
functions acl_get_file_at(), acl_set_file_at(), acl_extended_file_at(), and
acl_delete_def_file_at(). These functions each take a dirfd file
descriptor argument and an at_flags argument and accept the
AT_SYMLINK_NOFOLLOW and AT_EMPTY_PATH flags. Use these functions to
control when to follow symbolic links. (CVE-2026-54370, bsc#1268867)
In addition, the libacl functions acl_get_fd(), acl_set_fd(), and
acl_extended_fd() functions always operate on the access ACL; the library
previously did not offer a way to operate on the default ACL of a directory
file descriptor. The new functions remove that restriction.
It will be up to each individual program to start using these new library
functions where appropriate.
- When walking directory trees, the getfacl, setfacl, chacl, and getfattr
utilities constructed the full pathname of each file in the tree and use that
pathname to access the file. When a privileged user used those utilities,
an attacker that controlled a pathname component could replace a directory with
a symbolic link and redirect the operation to a different file, leading to
a local privilege escalation. (CVE-2026-54371, bsc#1268867)
This is fixed by using directory file descriptors and operating relative to
those directory file descriptors.
- When resolving the final pathname component, the getfacl, setfacl, chacl,
getfattr, and setfattr utilities in some cases used functions that resolve
symbolic links. This includes the above mentioned libacl functions, but
also stat(), chmod(), and chown().
This is fixed by using symlink-safe functions throughout the code.
- When restoring a backup, the setfacl and setfattr utilities read the full
pathnames of files from the backup. When those pathnames were resolved,
pathname components that are symbolic links were traversed. An attacker
that controlled a pathname component could replace it with a symbolic link,
causing a privileged user to operate on a file other than the one intended.
This could lead to the same kind of local privilege escalation as discussed
before.
This is fixed by using openat2(RESOLVE_NO_SYMLINKS) to resolve the
directory components of a pathname, but see Compatibility Notes below for
the details.
Minor Issues Fixed:
- When a symbolic link was specified on the command line but symbolic link
traversal was disabled using option -P (--physical), the getfacl and
setfacl utilities previously silently ignored the symlink. Now, an ELOOP
("Too many levels of symbolic links") error will result instead.
- acl_delete_entry() now verifies that the specified entry belongs to the
specified acl.
- Numeric uids and gids that cannot be represented in types uid_t and gid_t
are checked more carefully and invalid numbers are rejected.
- Functions acl_get_file(), acl_get_file_at(), and acl_get_fd() will retry
several times when the size of an ACL grows unexpectedly; previously, they
only grew the allocated buffer once before giving up.
- When passed a directory file descriptor, function perm_copy_fd() didn't
copy the default ACL from one directory to the other. It now does.
- setfacl --restore accidentally ignored leading whitespace in filenames. It
no longer does.
- setfacl --restore accidentally called chmod() when in --test mode. It no
longer does.
- When the setfattr --restore option was used multiple times, a buffer was
accessed after being freed. This no longer happens.
- When the setfattr -h (--no-dereference) option was given after --restore,
it was ignored. Now, the options can be passed in any order.
- The -h (--no-dereference) option of getfattr prevented getfattr from
recursing into "symbolic link directories". This is wrong. When dirlink
is a symbolic link that refers to a directory, "getfattr -Rh dirlink" will now
visit that directory. The -P (--physical) option can be used to prevent
that.
- Similarly, when a symbolic link referring to a directory was specified on
the getfacl or setfacl command line, the -R option did not cause that
directory to be visited. This has been fixed so that those directories
will now be visited. The -P (--physical) option can be used to prevent
that.
* Mon Apr 15 2024 Dominique Leuenberger <dimstar@opensuse.org>
- BuildRequire gettext-devel instead of gettext-tools-mini: let
OBS sort out if the -mini package is the right one to be used or
not.
* Thu Feb 15 2024 Dominique Leuenberger <dimstar@opensuse.org>
- Update to version 2.3.2:
+ libobj: declare s_str directly in string_obj_tag.
+ Use thread-safe getpwnam_r and getgrnam_r.
+ setfacl: preserve the failed status when processing multiple
files.
+ man: Document pitfall with negative permissions and user
namespaces.
+ tools: mark long_options static & const.
* Fri Apr 08 2022 Martin Liška <mliska@suse.cz>
- Disable -D_FORTIFY_SOURCE=3 for now
as explained here: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104964
* Sun May 16 2021 Dirk Müller <dmueller@suse.com>
- modernize spec-file (move license to licensedir)
* Wed May 12 2021 Ferdinand Thiessen <rpm@fthiessen.de>
- Update to version 2.3.1
* Update German translation
* getfacl: fix indent in --help output
* getfacl: Add --one-file-system option, with this option getfacl
will not cross mount points
* Fix segfault on allocation failure
* Avoid SIGSEGV with link-time optimisation enabled
- Use SourceUrls
* Tue Jan 26 2021 Dominique Leuenberger <dimstar@opensuse.org>
- Replace system-user-{bin,daemon} with user({bin,daemon}): be
resilient to package name changes.
* Tue Sep 01 2020 Dirk Mueller <dmueller@suse.com>
- update url
* Sun Mar 17 2019 Jan Engelhardt <jengelh@inai.de>
- Update boilerplate descriptions for libacl-devel.
- Remove out-of-date comments for libattr.
- Remove old BuildRoot and %defattr tags.
- Move library into the standard library directory.
* Thu Nov 08 2018 Cristian Rodríguez <crrodriguez@opensuse.org>
- libacl-devel used to require libattr-devel, but that is no longer
the case, packages that relied on this indirect dependency to
be present were fixed years ago.
/usr/bin/chacl /usr/bin/getfacl /usr/bin/setfacl /usr/share/doc/packages/acl /usr/share/doc/packages/acl/CHANGES /usr/share/doc/packages/acl/extensions.txt /usr/share/doc/packages/acl/libacl.txt /usr/share/licenses/acl /usr/share/licenses/acl/COPYING /usr/share/locale/de/LC_MESSAGES/acl.mo /usr/share/locale/en@boldquot/LC_MESSAGES/acl.mo /usr/share/locale/en@quot/LC_MESSAGES/acl.mo /usr/share/locale/es/LC_MESSAGES/acl.mo /usr/share/locale/fr/LC_MESSAGES/acl.mo /usr/share/locale/gl/LC_MESSAGES/acl.mo /usr/share/locale/ka/LC_MESSAGES/acl.mo /usr/share/locale/pl/LC_MESSAGES/acl.mo /usr/share/locale/sv/LC_MESSAGES/acl.mo /usr/share/man/man1/chacl.1.gz /usr/share/man/man1/getfacl.1.gz /usr/share/man/man1/setfacl.1.gz /usr/share/man/man5/acl.5.gz
Generated by rpm2html 1.8.1
Fabrice Bellet, Mon Aug 3 00:14:01 2026