Bug 1381911 (CVE-2016-7796) - CVE-2016-7796 systemd: freeze when PID 1 receives a zero-length message over notify socket
Summary: CVE-2016-7796 systemd: freeze when PID 1 receives a zero-length message over ...
Alias: CVE-2016-7796
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Red Hat Product Security
QA Contact:
Depends On: 1393420
Blocks: 1380288
TreeView+ depends on / blocked
Reported: 2016-10-05 11:07 UTC by Tomas Hoger
Modified: 2019-12-16 07:00 UTC (History)
12 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
A flaw was found in the way systemd handled empty notification messages. A local attacker could use this flaw to make systemd freeze its execution, preventing further management of system services, system shutdown, or zombie process collection via systemd.
Clone Of:
Last Closed: 2016-10-05 12:06:39 UTC

Attachments (Terms of Use)

System ID Private Priority Status Summary Last Updated
Red Hat Knowledge Base (Solution) 2678711 0 None None None 2016-10-05 20:10:29 UTC
Red Hat Product Errata RHSA-2017:0003 0 normal SHIPPED_LIVE Moderate: systemd security update 2017-01-03 21:55:06 UTC

Description Tomas Hoger 2016-10-05 11:07:21 UTC
It was found that systemd fails an assertion in manager_invoke_notify_message() when a zero-length message is received over its notification socket, causing it to no longer perform it's expected functionality.  This issue was assigned CVE-2016-7795 and is tracked via bug 1380286.  Upstream bug report is:


Older systemd versions either don't include the assert that is triggered in manager_invoke_notify_message(), or have manager_process_notify_fd() function return error before calling manager_invoke_notify_message().  That error return still causes systemd to exit its main loop and freeze its execution in a similar way it's done in newer versions after failed assertion.


The manager_invoke_notify_message() function with assert was introduced in version v209:


However, the assertion was not reachable before the error return was removed in v219:


The systemd versions in Red Hat Enterprise Linux 7.0 and 7.1 are based on upstream v208, but include manager_invoke_notify_message() added via a separate backported patch.  The assertion is not reachable, so those versions are affected by CVE-2016-7796, but not affected by CVE-2016-7795.  Red Hat Enterprise Linux 7.2 rebased systemd to version v219.  Therefore, those packages are no longer affected by CVE-2016-7796, but are now affected by CVE-2016-7795.

Comment 1 Tomas Hoger 2016-10-05 12:06:39 UTC
As noted in the previous comment, this issue was fixed when systemd packages were rebased to version v219 as part of the Red Hat Enterprise Linux 7.2:


Comment 2 errata-xmlrpc 2017-01-03 16:56:36 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 7.1 Extended Update Support

Via RHSA-2017:0003 https://rhn.redhat.com/errata/RHSA-2017-0003.html

Note You need to log in before you can comment on or make changes to this bug.