Every CVE Search/ Get API key

CVE-2018-6954

systemd-tmpfiles in systemd through 237 mishandles symlinks present in non-terminal path...

7.8 HighFix available

systemd-tmpfiles in systemd through 237 mishandles symlinks present in non-terminal path components, which allows local users to obtain ownership of arbitrary files via vectors involving creation of a directory and a file under that directory, and later replacing that directory with a symlink. This occurs even if the fs.protected_symlinks sysctl is turned on.

Attack profile

How easy it is to exploit

Attack vector
Local
Complexity
Low
Privileges needed
Low
User interaction
None

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
High

Exploit likelihood

0.53%Unchanged since Apr 14, 2021
90%50%10%1%

What each source reports

NVD Score used 7.8

systemd-tmpfiles in systemd through 237 mishandles symlinks present in non-terminal path components, which allows local users to obtain ownership of arbitrary files via vectors involving creation of a directory and a file under that directory, and later replacing that directory with a symlink. This occurs even if the fs.protected_symlinks sysctl is turned on.

Record
CVE-2018-6954
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS 2.0
7.2 HighAV:L/AC:L/Au:N/C:C/I:C/A:C
Weakness
CWE-59
Updated
2026-11-02
CVE List 7.8

systemd-tmpfiles in systemd through 237 mishandles symlinks present in non-terminal path components, which allows local users to obtain ownership of arbitrary files via vectors involving creation of a directory and a file under that directory, and later replacing that directory with a symlink. This occurs even if the fs.protected_symlinks sysctl is turned on.

Record
CVE-2018-6954
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-59
Updated
2026-11-02
EUVDEUVD-2018-18698 7.8

systemd-tmpfiles in systemd through 237 mishandles symlinks present in non-terminal path components, which allows local users to obtain ownership of arbitrary files via vectors involving creation of a directory and a file under that directory, and later replacing that directory with a symlink. This occurs even if the fs.protected_symlinks sysctl is turned on.

Record
EUVD-2018-18698
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
GitHub AdvisoriesGHSA-fgm4-rh7c-g9fg 7.8

systemd-tmpfiles in systemd through 237 mishandles symlinks present in non-terminal path...

systemd-tmpfiles in systemd through 237 mishandles symlinks present in non-terminal path components, which allows local users to obtain ownership of arbitrary files via vectors involving creation of a directory and a file under that directory, and later replacing that directory with a symlink. This occurs even if the fs.protected_symlinks sysctl is turned on.

Record
GHSA-fgm4-rh7c-g9fg
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-59
Updated
2026-11-02
OSV 7.8

systemd-tmpfiles in systemd through 237 mishandles symlinks present in non-terminal path components, which allows local users to obtain ownership of arbitrary files via vectors involving creation of a directory and a file under that directory, and later replacing that directory with a symlink. This occurs even if the fs.protected_symlinks sysctl is turned on.

Record
CVE-2018-6954
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVDEBIAN-CVE-2018-6954 7.8

systemd-tmpfiles in systemd through 237 mishandles symlinks present in non-terminal path components, which allows local users to obtain ownership of arbitrary files via vectors involving creation of a directory and a file under that directory, and later replacing that directory with a symlink. This occurs even if the fs.protected_symlinks sysctl is turned on.

Record
DEBIAN-CVE-2018-6954
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
Show 7 moreShow less
OSVUBUNTU-CVE-2018-6954 7.8

systemd-tmpfiles in systemd through 237 mishandles symlinks present in non-terminal path components, which allows local users to obtain ownership of arbitrary files via vectors involving creation of a directory and a file under that directory, and later replacing that directory with a symlink. This occurs even if the fs.protected_symlinks sysctl is turned on.

Record
UBUNTU-CVE-2018-6954
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS 3.0
7.8 HighCVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVopenSUSE-SU-2019:0098-1 No score

Security update for systemd

This update for systemd provides the following fixes:

Security issues fixed:

  • CVE-2018-16864, CVE-2018-16865: Fixed two memory corruptions through attacker-controlled alloca()s (bsc#1120323)
  • CVE-2018-16866: Fixed an information leak in journald (bsc#1120323)
  • CVE-2018-6954: Fix mishandling of symlinks present in non-terminal path components (bsc#1080919)
  • Fixed an issue during system startup in relation to encrypted swap disks (bsc#1119971)

Non-security issues fixed:

  • pam_systemd: Fix 'Cannot create session: Already running in a session' (bsc#1111498)
  • systemd-vconsole-setup: vconsole setup fails, fonts will not be copied to tty (bsc#1114933)
  • systemd-tmpfiles-setup: symlinked /tmp to /var/tmp breaking multiple units (bsc#1045723)
  • Fixed installation issue with /etc/machine-id during update (bsc#1117063)
  • btrfs: qgroups are assigned to parent qgroups after reboot (bsc#1093753)
  • logind: Stop managing VT switches if no sessions are registered on that VT. (bsc#1101591)
  • udev: Downgrade message when settting inotify watch up fails. (bsc#1005023)
  • udev: Ignore the exit code of systemd-detect-virt for memory hot-add. In SLE-12-SP3, 80-hotplug-cpu-mem.rules has a memory hot-add rule that uses systemd-detect-virt to detect non-zvm environment. The systemd-detect-virt returns exit failure code when it detected none state. The exit failure code causes that the hot-add memory block can not be set to online. (bsc#1076696)

This update was imported from the SUSE:SLE-15:Update update project.

Record
openSUSE-SU-2019:0098-1
Updated
2026-11-02
OSVopenSUSE-SU-2024:11420-1 No score

libsystemd0-249.4-2.2 on GA media

These are all security issues fixed in the libsystemd0-249.4-2.2 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2024:11420-1
Updated
2026-11-02
OSVSUSE-SU-2019:0137-1 No score

Security update for systemd

This update for systemd provides the following fixes:

Security issues fixed:

  • CVE-2018-16864, CVE-2018-16865: Fixed two memory corruptions through attacker-controlled alloca()s (bsc#1120323)
  • CVE-2018-16866: Fixed an information leak in journald (bsc#1120323)
  • CVE-2018-6954: Fix mishandling of symlinks present in non-terminal path components (bsc#1080919)
  • Fixed an issue during system startup in relation to encrypted swap disks (bsc#1119971)

Non-security issues fixed:

  • pam_systemd: Fix 'Cannot create session: Already running in a session' (bsc#1111498)
  • systemd-vconsole-setup: vconsole setup fails, fonts will not be copied to tty (bsc#1114933)
  • systemd-tmpfiles-setup: symlinked /tmp to /var/tmp breaking multiple units (bsc#1045723)
  • Fixed installation issue with /etc/machine-id during update (bsc#1117063)
  • btrfs: qgroups are assigned to parent qgroups after reboot (bsc#1093753)
  • logind: Stop managing VT switches if no sessions are registered on that VT. (bsc#1101591)
  • udev: Downgrade message when settting inotify watch up fails. (bsc#1005023)
  • udev: Ignore the exit code of systemd-detect-virt for memory hot-add. In SLE-12-SP3, 80-hotplug-cpu-mem.rules has a memory hot-add rule that uses systemd-detect-virt to detect non-zvm environment. The systemd-detect-virt returns exit failure code when it detected none state. The exit failure code causes that the hot-add memory block can not be set to online. (bsc#1076696)
Record
SUSE-SU-2019:0137-1
Updated
2026-11-02
OSVSUSE-SU-2019:1265-1 No score

Security update for systemd

This update for systemd fixes the following issues:

Security issues fixed:

  • CVE-2018-6954: Fixed a vulnerability in the symlink handling of systemd-tmpfiles which allowed a local user to obtain ownership of arbitrary files (bsc#1080919).
  • CVE-2019-3842: Fixed a vulnerability in pam_systemd which allowed a local user to escalate privileges (bsc#1132348).
  • CVE-2019-6454: Fixed a denial of service caused by long dbus messages (bsc#1125352).

Non-security issues fixed:

  • systemd-coredump: generate a stack trace of all core dumps (jsc#SLE-5933)
  • udevd: notify when max number value of children is reached only once per batch of events (bsc#1132400)
  • sd-bus: bump message queue size again (bsc#1132721)
  • core: only watch processes when it's really necessary (bsc#955942 bsc#1128657)
  • rules: load drivers only on 'add' events (bsc#1126056)
  • sysctl: Don't pass null directive argument to '%s' (bsc#1121563)
  • Do not automatically online memory on s390x (bsc#1127557)
Record
SUSE-SU-2019:1265-1
Updated
2026-11-02
OSVUSN-3816-1 No score

systemd vulnerabilities

Jann Horn discovered that unit_deserialize incorrectly handled status messages above a certain length. A local attacker could potentially exploit this via NotifyAccess to inject arbitrary state across re-execution and obtain root privileges. (CVE-2018-15686)

Jann Horn discovered a race condition in chown_one(). A local attacker could potentially exploit this by setting arbitrary permissions on certain files to obtain root privileges. This issue only affected Ubuntu 18.04 LTS and Ubuntu 18.10. (CVE-2018-15687)

It was discovered that systemd-tmpfiles mishandled symlinks in non-terminal path components. A local attacker could potentially exploit this by gaining ownership of certain files to obtain root privileges. This issue only affected Ubuntu 16.04 LTS and Ubuntu 18.04 LTS. (CVE-2018-6954)

Record
USN-3816-1
Updated
2026-11-02
OSVUSN-3816-2 No score

systemd vulnerability

USN-3816-1 fixed several vulnerabilities in systemd. However, the fix for CVE-2018-6954 was not sufficient. This update provides the remaining fixes.

We apologize for the inconvenience.

Original advisory details:

Jann Horn discovered that unit_deserialize incorrectly handled status messages above a certain length. A local attacker could potentially exploit this via NotifyAccess to inject arbitrary state across re-execution and obtain root privileges. (CVE-2018-15686)

Jann Horn discovered a race condition in chown_one(). A local attacker could potentially exploit this by setting arbitrary permissions on certain files to obtain root privileges. This issue only affected Ubuntu 18.04 LTS and Ubuntu 18.10. (CVE-2018-15687)

It was discovered that systemd-tmpfiles mishandled symlinks in non-terminal path components. A local attacker could potentially exploit this by gaining ownership of certain files to obtain root privileges. This issue only affected Ubuntu 16.04 LTS and Ubuntu 18.04 LTS. (CVE-2018-6954)

Record
USN-3816-2
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
systemd
Debian:12
before 238-1
238-1
systemd
Debian:13
before 238-1
238-1
systemd
Debian:14
before 238-1
238-1
systemd
SUSE:Linux Enterprise Module for Basesystem 15
before 234-24.20.1
234-24.20.1
systemd
SUSE:OpenStack Cloud 7
before 228-150.66.4
228-150.66.4
systemd
SUSE:Linux Enterprise Desktop 12 SP3
before 228-150.66.4
228-150.66.4
systemd
SUSE:Linux Enterprise Desktop 12 SP4
before 228-150.66.4
228-150.66.4
systemd
SUSE:Linux Enterprise Server for SAP Applications 12 SP2
before 228-150.66.4
228-150.66.4
systemd
SUSE:Linux Enterprise Software Development Kit 12 SP3
before 228-150.66.4
228-150.66.4
systemd
SUSE:Linux Enterprise Software Development Kit 12 SP4
before 228-150.66.4
228-150.66.4
Show 15 moreShow less
Affected packages
PackageAffectedFixed
systemd
SUSE:Linux Enterprise Server 12 SP2-LTSS
before 228-150.66.4
228-150.66.4
systemd
SUSE:Linux Enterprise Server 12 SP2-BCL
before 228-150.66.4
228-150.66.4
systemd
SUSE:Linux Enterprise Server 12 SP3
before 228-150.66.4
228-150.66.4
systemd
SUSE:Linux Enterprise Server for SAP Applications 12 SP3
before 228-150.66.4
228-150.66.4
systemd
SUSE:Linux Enterprise Server 12 SP4
before 228-150.66.4
228-150.66.4
systemd
SUSE:Linux Enterprise Server for SAP Applications 12 SP4
before 228-150.66.4
228-150.66.4
systemd
SUSE:Enterprise Storage 4
before 228-150.66.4
228-150.66.4
systemd
Ubuntu:16.04:LTS
before 229-4ubuntu21.15, plus listed versions
225-1ubuntu9227-2ubuntu1227-2ubuntu2228-1ubuntu2228-2ubuntu1
Show 37 moreShow less
228-2ubuntu2228-3ubuntu1228-4ubuntu1228-4ubuntu2228-5ubuntu1228-5ubuntu2228-5ubuntu3228-6ubuntu1229-1ubuntu2229-1ubuntu4229-2ubuntu1229-3ubuntu1229-3ubuntu2229-4ubuntu1229-4ubuntu4229-4ubuntu5229-4ubuntu6229-4ubuntu7229-4ubuntu8229-4ubuntu10229-4ubuntu11229-4ubuntu12229-4ubuntu13229-4ubuntu16229-4ubuntu17229-4ubuntu19229-4ubuntu20229-4ubuntu21229-4ubuntu21.1229-4ubuntu21.2229-4ubuntu21.3229-4ubuntu21.4229-4ubuntu21.5229-4ubuntu21.6229-4ubuntu21.8229-4ubuntu21.9229-4ubuntu21.10
229-4ubuntu21.15
systemd
Ubuntu:18.04:LTS
before 237-3ubuntu10.9, plus listed versions
234-2ubuntu12235-2ubuntu3235-3ubuntu2235-3ubuntu3237-3ubuntu3
Show 9 moreShow less
237-3ubuntu4237-3ubuntu6237-3ubuntu7237-3ubuntu8237-3ubuntu10237-3ubuntu10.2237-3ubuntu10.3237-3ubuntu10.4237-3ubuntu10.6
237-3ubuntu10.9
systemd
Ubuntu:16.04:LTS
before 229-4ubuntu21.8, plus listed versions
225-1ubuntu9227-2ubuntu1227-2ubuntu2228-1ubuntu2228-2ubuntu1
Show 34 moreShow less
228-2ubuntu2228-3ubuntu1228-4ubuntu1228-4ubuntu2228-5ubuntu1228-5ubuntu2228-5ubuntu3228-6ubuntu1229-1ubuntu2229-1ubuntu4229-2ubuntu1229-3ubuntu1229-3ubuntu2229-4ubuntu1229-4ubuntu4229-4ubuntu5229-4ubuntu6229-4ubuntu7229-4ubuntu8229-4ubuntu10229-4ubuntu11229-4ubuntu12229-4ubuntu13229-4ubuntu16229-4ubuntu17229-4ubuntu19229-4ubuntu20229-4ubuntu21229-4ubuntu21.1229-4ubuntu21.2229-4ubuntu21.3229-4ubuntu21.4229-4ubuntu21.5229-4ubuntu21.6
229-4ubuntu21.8
systemd
Ubuntu:18.04:LTS
before 237-3ubuntu10.6, plus listed versions
234-2ubuntu12235-2ubuntu3235-3ubuntu2235-3ubuntu3237-3ubuntu3
Show 8 moreShow less
237-3ubuntu4237-3ubuntu6237-3ubuntu7237-3ubuntu8237-3ubuntu10237-3ubuntu10.2237-3ubuntu10.3237-3ubuntu10.4
237-3ubuntu10.6
systemd
Ubuntu:16.04:LTS
before 229-4ubuntu21.9, plus listed versions
225-1ubuntu9227-2ubuntu1227-2ubuntu2228-1ubuntu2228-2ubuntu1
Show 35 moreShow less
228-2ubuntu2228-3ubuntu1228-4ubuntu1228-4ubuntu2228-5ubuntu1228-5ubuntu2228-5ubuntu3228-6ubuntu1229-1ubuntu2229-1ubuntu4229-2ubuntu1229-3ubuntu1229-3ubuntu2229-4ubuntu1229-4ubuntu4229-4ubuntu5229-4ubuntu6229-4ubuntu7229-4ubuntu8229-4ubuntu10229-4ubuntu11229-4ubuntu12229-4ubuntu13229-4ubuntu16229-4ubuntu17229-4ubuntu19229-4ubuntu20229-4ubuntu21229-4ubuntu21.1229-4ubuntu21.2229-4ubuntu21.3229-4ubuntu21.4229-4ubuntu21.5229-4ubuntu21.6229-4ubuntu21.8
229-4ubuntu21.9
systemd
openSUSE:Leap 15.0
before 234-lp150.20.12.1
234-lp150.20.12.1
systemd-mini
openSUSE:Leap 15.0
before 234-lp150.20.12.1
234-lp150.20.12.1
systemd
openSUSE:Tumbleweed
before 249.4-2.2
249.4-2.2

History

History
RecordedChangedSources
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2018-6954 is a high vulnerability (CVSS 7.8) in Systemd Project Systemd, published February 13, 2018. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.53%, the 44th percentile. Fixed in systemd 238-1.

References

Show 56 moreShow less
MoveEnter Open