wpa_supplicant plus we cover security updates in Prometheus
Alertmanager, OpenSSL, Exim, snapd, Gross, curl and more.
This week we take a deep dive behind-the-scenes look into how the team handled a
recent report from Snyk’s Security Lab of a local privilege escalation
vulnerability in wpa_supplicant plus we cover security updates in Prometheus
Alertmanager, OpenSSL, Exim, snapd, Gross, curl and more.
185 unique CVEs addressed
SSL_free_buffers API - requires an application to directly
call this function - across the entire Ubuntu package ecosystem there
doesn’t appear to be any packages that do this so highly unlikely to be an
issue in practiceSSL_select_next_proto - if called
with an empty buffer list would read other private memory - ie OOB read -
and potentially then either crash or return private data
SSL_OP_NO_TICKET option would possibly get into a state where
the session cache would not be flushed and so would grow unbounded - memory
based DoS/usr/share/applications which is
world-readable - so if the symlink pointed to /etc/shadow then you would get
a copy of this written out as world-readable - so an unprivileged user on
the system could then possibly escalate their privilegesstrncat() during logging
wpa_supplicant to load an attacker controlled shared object into memorywpa_supplicant (16:10)wpa_supplicant to allow various methods to be called by users in the netdev
group
wpa_supplicant via its dbus interfaceCreateInterface
ConfigFile which specifies the path to a configuration file using the format of wpa_supplicant.confopensc_engine_path or similarly PKCS11 engine and module pathswpa_supplicantwpa_supplicant runs as rootwpa_supplicant DBus interface - none appear to make use of the netdev
groupwpa_supplicant to check that the specified module was
owned by root - this should then stop an unprivileged user from creating
their own module and specifying it as it wouldn’t be owned by root
root link inside the
proc filesystem - which points to the actual root directory of that
process - and since the FUSE fs lies about the UID it looks like root
ownedrealpath works
(which should block the ability to read it via the proc symlink)
/usr/lib - since
anything installed from the archive would live here - in this case we simply
call realpath() directly on the provided path name and if it doesn’t start
with /usr/lib then deny loading of the module/opt would now fail BUT if you
can write to /opt then you can write to somewhere in /usr/lib - so is easy
to fix as well