Compare commits
No commits in common. "c8" and "c9-beta" have entirely different histories.
@ -1,52 +0,0 @@
|
|||||||
From bf40cc27c4ce8451d4b062c9de0b67ec40894812 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Chris Dunlap <cdunlap@llnl.gov>
|
|
||||||
Date: Mon, 26 Jan 2026 20:42:40 -0800
|
|
||||||
Subject: [PATCH] Fix buffer overflow when unpacking message address length
|
|
||||||
|
|
||||||
Add validation that addr_len does not exceed the size of the addr
|
|
||||||
field before copying IP address data in _msg_unpack().
|
|
||||||
|
|
||||||
The m_msg structure contains a 4-byte struct in_addr for the IP
|
|
||||||
address. When unpacking a MUNGE_MSG_DEC_RSP message, the addr_len
|
|
||||||
field (uint8_t) was read from untrusted message data and used directly
|
|
||||||
in _copy() without validation. An attacker setting addr_len to 255
|
|
||||||
causes _copy() to write 251 bytes past the end of the addr field,
|
|
||||||
corrupting subsequent structure members.
|
|
||||||
|
|
||||||
This buffer overflow corrupts munged's internal state and can
|
|
||||||
be exploited by a local attacker to leak conf->mac_key and other
|
|
||||||
cryptographic secrets from process memory. With the leaked key,
|
|
||||||
an attacker can forge arbitrary MUNGE credentials to impersonate any
|
|
||||||
user to services that rely on MUNGE for authentication.
|
|
||||||
|
|
||||||
Any local user can trigger this by connecting to munged's Unix socket
|
|
||||||
and sending a crafted MUNGE_MSG_DEC_RSP message. While message type
|
|
||||||
validation in job_exec() will reject response-type messages, this
|
|
||||||
validation occurs after m_msg_recv() has already called _msg_unpack()
|
|
||||||
to process the message body. The buffer overflow occurs during the
|
|
||||||
unpacking phase, before the message type is validated and rejected.
|
|
||||||
|
|
||||||
A working proof-of-concept exploit exists that demonstrates key
|
|
||||||
leakage and credential forgery.
|
|
||||||
|
|
||||||
Reported-by: Titouan Lazard <t.lazard@lexfo.fr>
|
|
||||||
Security: CVE-2026-25506
|
|
||||||
---
|
|
||||||
src/libcommon/m_msg.c | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
|
|
||||||
diff --git a/src/libcommon/m_msg.c b/src/libcommon/m_msg.c
|
|
||||||
index 38e01ae3dd81..eaeaf0b8bc3e 100644
|
|
||||||
--- a/src/libcommon/m_msg.c
|
|
||||||
+++ b/src/libcommon/m_msg.c
|
|
||||||
@@ -686,6 +686,7 @@ _msg_unpack (m_msg_t m, m_msg_type_t type, const void *src, int srclen)
|
|
||||||
else if ( _copy (m->realm_str, p, m->realm_len, p, q, &p) < 0) ;
|
|
||||||
else if (!_unpack (&(m->ttl), &p, sizeof (m->ttl), q)) ;
|
|
||||||
else if (!_unpack (&(m->addr_len), &p, sizeof (m->addr_len), q)) ;
|
|
||||||
+ else if (m->addr_len > sizeof (m->addr)) goto err;
|
|
||||||
else if ( _copy (&(m->addr), p, m->addr_len, p, q, &p) < 0) ;
|
|
||||||
else if (!_unpack (&(m->time0), &p, sizeof (m->time0), q)) ;
|
|
||||||
else if (!_unpack (&(m->time1), &p, sizeof (m->time1), q)) ;
|
|
||||||
--
|
|
||||||
2.52.0
|
|
||||||
|
|
||||||
1
SOURCES/munge.sysusers
Normal file
1
SOURCES/munge.sysusers
Normal file
@ -0,0 +1 @@
|
|||||||
|
u munge - "Runs Uid 'N' Gid Emporium" /run/munge /sbin/nologin
|
||||||
107
SPECS/munge.spec
107
SPECS/munge.spec
@ -1,6 +1,6 @@
|
|||||||
Name: munge
|
Name: munge
|
||||||
Version: 0.5.13
|
Version: 0.5.13
|
||||||
Release: 3%{?dist}
|
Release: 13%{?dist}
|
||||||
Summary: Enables uid & gid authentication across a host cluster
|
Summary: Enables uid & gid authentication across a host cluster
|
||||||
|
|
||||||
# The libs and devel package is GPLv3+ and LGPLv3+ where as the main package is GPLv3 only.
|
# The libs and devel package is GPLv3+ and LGPLv3+ where as the main package is GPLv3 only.
|
||||||
@ -9,7 +9,7 @@ URL: https://dun.github.io/munge/
|
|||||||
Source0: https://github.com/dun/munge/releases/download/munge-%{version}/munge-%{version}.tar.xz
|
Source0: https://github.com/dun/munge/releases/download/munge-%{version}/munge-%{version}.tar.xz
|
||||||
Source1: create-munge-key
|
Source1: create-munge-key
|
||||||
Source2: munge.logrotate
|
Source2: munge.logrotate
|
||||||
Patch01: Fix-buffer-overflow-when-unpacking-message-address-l.patch
|
Source3: munge.sysusers
|
||||||
|
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
BuildRequires: systemd-rpm-macros
|
BuildRequires: systemd-rpm-macros
|
||||||
@ -19,19 +19,18 @@ Requires: logrotate
|
|||||||
|
|
||||||
Requires(pre): shadow-utils
|
Requires(pre): shadow-utils
|
||||||
|
|
||||||
Requires(post): systemd
|
%{?systemd_requires}
|
||||||
Requires(preun): systemd
|
%{?sysusers_requires_compat}
|
||||||
Requires(postun): systemd
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
MUNGE (MUNGE Uid 'N' Gid Emporium) is an authentication service for creating
|
MUNGE (MUNGE Uid 'N' Gid Emporium) is an authentication service for creating
|
||||||
and validating credentials. It is designed to be highly scalable for use
|
and validating credentials. It is designed to be highly scalable for use
|
||||||
in an HPC cluster environment.
|
in an HPC cluster environment.
|
||||||
It allows a process to authenticate the UID and GID of another local or
|
It allows a process to authenticate the UID and GID of another local or
|
||||||
remote process within a group of hosts having common users and groups.
|
remote process within a group of hosts having common users and groups.
|
||||||
These hosts form a security realm that is defined by a shared cryptographic
|
These hosts form a security realm that is defined by a shared cryptographic
|
||||||
key. Clients within this security realm can create and validate credentials
|
key. Clients within this security realm can create and validate credentials
|
||||||
without the use of root privileges, reserved ports, or platform-specific
|
without the use of root privileges, reserved ports, or platform-specific
|
||||||
methods.
|
methods.
|
||||||
|
|
||||||
%package devel
|
%package devel
|
||||||
@ -50,7 +49,6 @@ Runtime libraries for using MUNGE.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch -P 1 -p1
|
|
||||||
cp -p %{SOURCE1} create-munge-key
|
cp -p %{SOURCE1} create-munge-key
|
||||||
cp -p %{SOURCE2} munge.logrotate
|
cp -p %{SOURCE2} munge.logrotate
|
||||||
|
|
||||||
@ -60,7 +58,7 @@ echo "d /run/munge 0755 munge munge -" > src/etc/munge.tmpfiles.conf.in
|
|||||||
# Get rid of some rpaths for /usr/sbin
|
# Get rid of some rpaths for /usr/sbin
|
||||||
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
|
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
|
||||||
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
|
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
|
||||||
make %{?_smp_mflags}
|
%make_build
|
||||||
|
|
||||||
|
|
||||||
%install
|
%install
|
||||||
@ -70,12 +68,12 @@ make %{?_smp_mflags}
|
|||||||
install -p -m 755 create-munge-key %{buildroot}/%{_sbindir}/create-munge-key
|
install -p -m 755 create-munge-key %{buildroot}/%{_sbindir}/create-munge-key
|
||||||
install -p -D -m 644 munge.logrotate %{buildroot}/%{_sysconfdir}/logrotate.d/munge
|
install -p -D -m 644 munge.logrotate %{buildroot}/%{_sysconfdir}/logrotate.d/munge
|
||||||
|
|
||||||
|
install -p -D -m 0644 %{SOURCE3} %{buildroot}%{_sysusersdir}/munge.conf
|
||||||
|
|
||||||
# rm unneeded files.
|
# rm unneeded files.
|
||||||
rm %{buildroot}/%{_sysconfdir}/sysconfig/munge
|
rm %{buildroot}/%{_sysconfdir}/sysconfig/munge
|
||||||
#
|
rm %{buildroot}/%{_sysconfdir}/init.d/munge
|
||||||
rm %{buildroot}/%{_initddir}/munge
|
# Exclude .la files
|
||||||
|
|
||||||
# Exclude .la files
|
|
||||||
rm %{buildroot}/%{_libdir}/libmunge.la
|
rm %{buildroot}/%{_libdir}/libmunge.la
|
||||||
|
|
||||||
|
|
||||||
@ -84,22 +82,17 @@ chmod 700 %{buildroot}%{_var}/lib/munge %{buildroot}%{_var}/log/munge
|
|||||||
chmod 700 %{buildroot}%{_sysconfdir}/munge
|
chmod 700 %{buildroot}%{_sysconfdir}/munge
|
||||||
|
|
||||||
# Create and empty key file and pid file to be marked as a ghost file below.
|
# Create and empty key file and pid file to be marked as a ghost file below.
|
||||||
# i.e it is not actually included in the rpm, only the record
|
# i.e it is not actually included in the rpm, only the record
|
||||||
# of it is.
|
# of it is.
|
||||||
touch %{buildroot}%{_var}/run/munge/munged.pid
|
touch %{buildroot}%{_var}/run/munge/munged.pid
|
||||||
mv %{buildroot}%{_var}/run %{buildroot}
|
mv %{buildroot}%{_var}/run %{buildroot}
|
||||||
|
|
||||||
|
%pre
|
||||||
|
%sysusers_create_compat %{SOURCE3}
|
||||||
|
|
||||||
%preun
|
%preun
|
||||||
%systemd_preun munge.service
|
%systemd_preun munge.service
|
||||||
|
|
||||||
%pre
|
|
||||||
getent group munge >/dev/null || groupadd -r munge
|
|
||||||
getent passwd munge >/dev/null || \
|
|
||||||
useradd -r -g munge -d %{_var}/run/munge -s /sbin/nologin \
|
|
||||||
-c "Runs Uid 'N' Gid Emporium" munge
|
|
||||||
exit 0
|
|
||||||
|
|
||||||
|
|
||||||
%post
|
%post
|
||||||
%systemd_post munge.service
|
%systemd_post munge.service
|
||||||
|
|
||||||
@ -127,12 +120,13 @@ exit 0
|
|||||||
%attr(0755,munge,munge) %dir /run/munge/
|
%attr(0755,munge,munge) %dir /run/munge/
|
||||||
%attr(0644,munge,munge) %ghost /run/munge/munged.pid
|
%attr(0644,munge,munge) %ghost /run/munge/munged.pid
|
||||||
|
|
||||||
%config(noreplace) %{_tmpfilesdir}/munge.conf
|
%{_tmpfilesdir}/munge.conf
|
||||||
|
%{_sysusersdir}/munge.conf
|
||||||
%config(noreplace) %{_sysconfdir}/logrotate.d/munge
|
%config(noreplace) %{_sysconfdir}/logrotate.d/munge
|
||||||
|
|
||||||
%license COPYING COPYING.LESSER
|
%license COPYING COPYING.LESSER
|
||||||
%doc AUTHORS
|
%doc AUTHORS
|
||||||
%doc JARGON META NEWS QUICKSTART README
|
%doc JARGON META NEWS QUICKSTART README
|
||||||
%doc doc
|
%doc doc
|
||||||
|
|
||||||
%files libs
|
%files libs
|
||||||
@ -161,16 +155,49 @@ exit 0
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Sun Feb 15 2026 Kamal Heib <kheib@redhat.com> - 0.5.13-3
|
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 0.5.13-13
|
||||||
- Fix CVE-2026-25506
|
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
|
||||||
- Resolves: RHEL-148521
|
Related: rhbz#1991688
|
||||||
|
|
||||||
* Fri Apr 24 2020 Honggang Li <honli@redhat.com> - 0.5.13-2
|
* Wed Jun 16 2021 Mohan Boddu <mboddu@redhat.com> - 0.5.13-12
|
||||||
- Don't create temporary files in legacy directory
|
- Rebuilt for RHEL 9 BETA for openssl 3.0
|
||||||
- Resolves: bz1805956
|
Related: rhbz#1971065
|
||||||
|
|
||||||
* Thu Jul 19 2018 Jarod Wilson <jarod@redhat.com> - 0.5.13-1
|
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 0.5.13-11
|
||||||
- Update to upstream 0.5.13 release
|
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
|
||||||
|
|
||||||
|
* Tue Sep 29 2020 Ankur Sinha <ankursinha AT fedoraproject DOT org> - 0.5.13-10
|
||||||
|
- Fix spec + build
|
||||||
|
|
||||||
|
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.5.13-9
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Feb 10 2020 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 0.5.13-8
|
||||||
|
- Provide a sysusers.d file to get user() and group() provides
|
||||||
|
(see https://fedoraproject.org/wiki/Changes/Adopting_sysusers.d_format).
|
||||||
|
|
||||||
|
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.5.13-7
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Nov 28 2019 Gerd Pokorra <gp@zimt.uni-siegen.de> - 0.5.13-6
|
||||||
|
- updating line in /usr/lib/tmpfiles.d/munge.conf: /var/run/munge → /run/munge
|
||||||
|
- add license tag
|
||||||
|
- add requires logrotate
|
||||||
|
|
||||||
|
* Wed Nov 27 2019 Gerd Pokorra <gp@zimt.uni-siegen.de> - 0.5.13-5
|
||||||
|
- built with OpenSSL (not libgcrypt)
|
||||||
|
|
||||||
|
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.5.13-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.5.13-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.5.13-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu May 17 2018 Steve Traylen <steve.traylen@cern.ch> - 0.5.13-1
|
||||||
|
- Escape macros in %%changelog
|
||||||
|
|
||||||
* Fri Feb 09 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 0.5.12-9
|
* Fri Feb 09 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 0.5.12-9
|
||||||
- Escape macros in %%changelog
|
- Escape macros in %%changelog
|
||||||
@ -267,7 +294,7 @@ exit 0
|
|||||||
- rhbz#530128 Move runtime libs to a new -libs package.
|
- rhbz#530128 Move runtime libs to a new -libs package.
|
||||||
ldconfig moved to new -libs package as a result.
|
ldconfig moved to new -libs package as a result.
|
||||||
* Sat Sep 26 2009 Steve Traylen <steve.traylen@cern.ch> - 0.5.8-6
|
* Sat Sep 26 2009 Steve Traylen <steve.traylen@cern.ch> - 0.5.8-6
|
||||||
- Patch for rhbz #525732 - Loads /etc/sysconfig/munge
|
- Patch for rhbz #525732 - Loads /etc/sysconfig/munge
|
||||||
correctly.
|
correctly.
|
||||||
- Mark pid file as ghost file on oses that support that.
|
- Mark pid file as ghost file on oses that support that.
|
||||||
- Permisions on pid directory to 755
|
- Permisions on pid directory to 755
|
||||||
@ -293,7 +320,7 @@ exit 0
|
|||||||
- chmod /var/lib/munge /var/log/munge and /etc/munge to 700.
|
- chmod /var/lib/munge /var/log/munge and /etc/munge to 700.
|
||||||
- Apply patch to not error when GPL_LICENSED is not set.
|
- Apply patch to not error when GPL_LICENSED is not set.
|
||||||
- Patch service script to print error on if munge.key not present
|
- Patch service script to print error on if munge.key not present
|
||||||
on start only and with a better error.
|
on start only and with a better error.
|
||||||
- Remove dont-exit-form-lib.patch. munge is expecting munge to
|
- Remove dont-exit-form-lib.patch. munge is expecting munge to
|
||||||
do this.
|
do this.
|
||||||
- Remove libgcrypt-devel from BuildRequires, uses openssl by
|
- Remove libgcrypt-devel from BuildRequires, uses openssl by
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user