Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[sumo] Upgrade ca-certificates to 20211016 #42

Merged
merged 4 commits into from
Jan 31, 2022

Conversation

amstewart
Copy link

The mozilla DST ca certificate has been revoked since September of 2021. If it is still installed in the system ca-certs, a cross-sign codepath will be executed to verify a fallback certificate, and that codepath breaks in openssl<1.1. NILRT sumo uses openssl_1.0.2.

We must drop this DST certificate to resolve this issue. Since the certificate is dropped in OE upstream, the best thing to do is just to backport recipe upgrades to bring ca-certificates to the latest OE master version.

This PR avoids cherrypicking a couple of ca-certificates upstream patches which convert to new bitbake syntax that sumo does not support, and some fixups for use with openssl_1.1 - which sumo does not support.

Testing

Rebuilt the ca-certificates package on my dev machine and upgraded a sumo safemode to use the new package. Confirmed that the verification error no longer occurs and that the DST certificate is not in the system store.

@ni/rtos

armcc and others added 4 commits January 28, 2022 12:38
Using += with an over-ride can be a source of confusion so try to
avoid the construct in core recipes.

In this case, the commit which added the over-ride seems to have been
buggy - the commit message mentions "add to SYSROOT_DIRS" rather than
a correct description of what the change actually did, ie "over-ride
SYSROOT_DIRS":

  http://git.openembedded.org/openembedded-core/commit/?id=355e49e19abb3e729c82a6de46ada8da8a257f58

The commit also appears to have been unnecessary as ${sysconfdir} is
appended to SYSROOT_DIRS for -native recipes by default from within
staging.bbclass.

To workaround the bug introduced by the first commit, a subsequent
commit later added ${datadir}/ca-certificates to the over-ride value
(which would not normally be necessary as ${datadir} is included in
the default value of SYSROOT_DIRS - ie the value which was lost due
to being over-ridden):

  http://git.openembedded.org/openembedded-core/commit/?id=09bb7718d74573be9a5db4d0737fb14126f6489c

Therefore the fix seem to be to remove the SYSROOT_DIRS over-ride
entirely - the default value of SYSROOT_DIRS set by staging.bbclass
includes both ${datadir} and ${sysconfdir} when building for -native.

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c1f18ef)
Signed-off-by: Alex Stewart <alex.stewart@ni.com>
This command was dependent on the order of files on the disk and for multilib builds
could result in:

Error: Transaction check error:
  file /etc/ca-certificates.conf conflicts between attempted installs of ca-certificates-20190110-r0.core2_32 and lib64-ca-certificates-20190110-r0.x86_64

Sorting the file makes things deterministic.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c8f329f)
Signed-off-by: Alex Stewart <alex.stewart@ni.com>
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 9bc2943)
Signed-off-by: Alex Stewart <alex.stewart@ni.com>
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c479b8a)
Signed-off-by: Alex Stewart <alex.stewart@ni.com>
@amstewart amstewart merged commit ee99fe6 into ni:nilrt/master/sumo Jan 31, 2022
@amstewart amstewart deleted the dev/sumo/ca-certificates branch January 31, 2022 20:58
xhuff pushed a commit to xhuff/openembedded-core that referenced this pull request Nov 28, 2023
License-update: file removed upstream

Drop patch as issue fixed upstream.

Changelog:
===========
1.9.15p2
 * Fixed a bug on BSD systems where sudo would not restore the
   terminal settings on exit if the terminal had parity enabled.
   GitHub issue #326.

1.9.15p1
 * Fixed a bug introduced in sudo 1.9.15 that prevented LDAP-based
   sudoers from being able to read the ldap.conf file.
   GitHub issue #325.

1.9.15
 * Fixed an undefined symbol problem on older versions of macOS
   when "intercept" or "log_subcmds" are enabled in sudoers.
   GitHub issue #276.
 * Fixed "make check" failure related to getpwent(3) wrapping
   on NetBSD.
 * Fixed the warning message for "sudo -l command" when the command
   is not permitted.  There was a missing space between "list" and
   the actual command due to changes in sudo 1.9.14.
 * Fixed a bug where output could go to the wrong terminal if
   "use_pty" is enabled (the default) and the standard input, output
   or error is redirected to a different terminal.  Bug #1056.
 * The visudo utility will no longer create an empty file when the
   specified sudoers file does not exist and the user exits the
   editor without making any changes.  GitHub issue #294.
 * The AIX and Solaris sudo packages on www.sudo.ws now support
   "log_subcmds" and "intercept" with both 32-bit and 64-bit
   binaries.  Previously, they only worked when running binaries
   with the same word size as the sudo binary.  GitHub issue #289.
 * The sudoers source is now logged in the JSON event log.  This
   makes it possible to tell which rule resulted in a match.
 * Running "sudo -ll command" now produces verbose output that
   includes matching rule as well as the path to the sudoers file
   the matching rule came from.  For LDAP sudoers, the name of the
   matching sudoRole is printed instead.
 * The embedded copy of zlib has been updated to version 1.3.
 * The sudoers plugin has been modified to make it more resilient
   to ROWHAMMER attacks on authentication and policy matching.
   This addresses CVE-2023-42465.
 * The sudoers plugin now constructs the user time stamp file path
   name using the user-ID instead of the user name.  This avoids a
   potential problem with user names that contain a path separator
   ('/') being interpreted as part of the path name.  A similar
   issue in sudo-rs has been assigned CVE-2023-42456.
 * A path separator ('/') in a user, group or host name is now
   replaced with an underbar character ('_') when expanding escapes
   in @include and @includedir directives as well as the "iolog_file"
   and "iolog_dir" sudoers Default settings.
 * The "intercept_verify" sudoers option is now only applied when
   the "intercept" option is set in sudoers.  Previously, it was
   also applied when "log_subcmds" was enabled.  Sudo 1.9.14
   contained an incorrect fix for this.  Bug #1058.
 * Changes to terminal settings are now performed atomically, where
   possible.  If the command is being run in a pseudo-terminal and
   the user's terminal is already in raw mode, sudo will not change
   the user's terminal settings.  This prevents concurrent sudo
   processes from restoring the terminal settings to the wrong values.
   GitHub issue #312.
 * Reverted a change from sudo 1.9.4 that resulted in PAM session
   modules being called with the environment of the command to be
   run instead of the environment of the invoking user.
   GitHub issue #318.
 * New Indonesian translation from translationproject.org.
 * The sudo_logsrvd server will now raise its open file descriptor
   limit to the maximum allowed value when it starts up.  Each
   connection can require up to nine open file descriptors so the
   default soft limit may be too low.
 * Better log message when rejecting a command if the "intercept"
   option is enabled and the "intercept_allow_setid" option is
   disabled.  Previously, "command not allowed" would be logged and
   the user had no way of knowing what the actual problem was.
 * Sudo will now log the invoking user's environment as "submitenv"
   in the JSON logs.  The command's environment ("runenv") is no
   longer logged for commands rejected by the sudoers file or an
   approval plugin.

1.9.14p3
 * Fixed a crash with Python 3.12 when the sudo Python plugin is
   unloaded.  This only affects "make check" for the Python plugin.
 * Adapted the sudo Python plugin test output to match Python 3.12.

1.9.14p2
 * Fixed a crash on Linux systems introduced in version 1.9.14 when
   running a command with a NULL argv[0] if "log_subcmds" or
   "intercept" is enabled in sudoers.
 * Fixed a problem with "stair-stepped" output when piping or
   redirecting the output of a sudo command that takes user input.
 * Fixed a bug introduced in sudo 1.9.14 that affects matching
   sudoers rules containing a Runas_Spec with an empty Runas user.
   These rules should only match when sudo's -g option is used but
   were matching even without the -g option.  GitHub issue #290.

1.9.14p1
 * Fixed an invalid free bug in sudo_logsrvd that was introduced
   in version 1.9.14 which could cause sudo_logsrvd to crash.
 * The sudoers plugin no longer tries to send the terminal name
   to the log server when no terminal is present.  This bug was
   introduced in version 1.9.14.

1.9.14
 * Fixed a bug where if the "intercept" or "log_subcmds" sudoers
   option was enabled and a sub-command was run where the first
   entry of the argument vector didn't match the command being run.
   This resulted in commands like "sudo su -" being killed due to
   the mismatch.  Bug #1050.
 * The sudoers plugin now canonicalizes command path names before
   matching (where possible).  This fixes a bug where sudo could
   execute the wrong path if there are multiple symbolic links with
   the same target and the same base name in sudoers that a user is
   allowed to run.  GitHub issue #228.
 * Improved command matching when a chroot is specified in sudoers.
   The sudoers plugin will now change the root directory id needed
   before performing command matching.  Previously, the root directory
   was simply prepended to the path that was being processed.
 * When NETGROUP_BASE is set in the ldap.conf file, sudo will now
   perform its own netgroup lookups of the host name instead of
   using the system innetgr(3) function.  This guarantees that user
   and host netgroup lookups are performed using  the same LDAP
   server (or servers).
 * Fixed a bug introduced in sudo 1.9.13 that resulted in a missing
   " ; " separator between environment variables and the command
   in log entries.
 * The visudo utility now displays a warning when it ignores a file
   in an include dir such as /etc/sudoers.d.
 * When running a command in a pseudo-terminal, sudo will initialize
   the terminal settings even if it is the background process.
   Previously, sudo only initialized the pseudo-terminal when running
   in the foreground.  This fixes an issue where a program that
   checks the window size would read the wrong value when sudo was
   running in the background.
 * Fixed a bug where only the first two digits of the TSID field
   being was logged.  Bug #1046.
 * The "use_pty" sudoers option is now enabled by default.  To
   restore the historic behavior where a command is run in the
   user's terminal, add "Defaults !use_pty" to the sudoers file.
   GitHub issue #258.
 * Sudo's "-b" option now works when the command is run in a
   pseudo-terminal.
 * When disabling core dumps, sudo now only modifies the soft limit
   and leaves the hard limit as-is.  This avoids problems on Linux
   when sudo does not have CAP_SYS_RESOURCE, which may be the case
   when run inside a container.  GitHub issue ni#42.
 * Sudo configuration file paths have been converted to colon-separated
   lists of paths.  This makes it possible to have configuration
   files on a read-only file system while still allowing for local
   modifications in a different (writable) directory.  The new
   --enable-adminconf configure option can be used to specify a
   directory that is searched for configuration files in preference
   to the sysconfdir (which is usually /etc).
 * The NETGROUP_QUERY ldap.conf parameter can now be disabled for
   LDAP servers that do not support querying the nisNetgroup object
   by its nisNetgroupTriple attribute, while still allowing sudo to
   query the LDAP server directly to determine netgroup membership.
 * Fixed a long-standing bug where a sudoers rule without an explicit
   runas list allowed the user to run a command as root and any
   group instead of just one of the groups that root is a member
   of.  For example, a rule such as "myuser ALL = ALL" would permit
   "sudo -u root -g othergroup" even if root did not belong to
   "othergroup".
 * Fixed a bug where a sudoers rule with an explicit runas list
   allowed a user to run sudo commands as themselves.  For example,
   a rule such as "myuser ALL = (root) ALL", "myuser" should only
   allow commands to be run as root (optionally using one of root's
   groups).  However, the rule also allowed the user to run
   "sudo -u myuser -g myuser command".
 * Fixed a bug that prevented the user from specifying a group on
   the command line via "sudo -g" if the rule's Runas_Spec contained
   a Runas_Alias.
 * Sudo now requires a C compiler that conforms to ISO C99 or higher
   to build.

Signed-off-by: Soumya Sambu <soumya.sambu@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants