Fedora Account System
Red Hat Associate
Red Hat Customer
A flaw was found in dnf5daemon-server. The service stores the unique system D-Bus sender that creates each package-management session and enforces that association for SessionManager.close_session(), but the generic dispatcher for methods on dynamically exported session objects does not compare the incoming caller with the stored session owner. A local user who can reach org.rpm.dnf.v0 can therefore invoke session methods such as Rpm.remove() and Goal.resolve() on another client's live session and replace a previously resolved transaction plan. Goal.do_transaction() later authorizes the caller of do_transaction() via PolicyKit against the stored transaction rather than binding authorization to the sender that supplied the package instructions. Cross-UID plan replacement was demonstrated; execution of a substituted plan still requires a later authorized do_transaction() call on that session.