CVE-2026-72696: Grav CMS before 2.0.16 Symlink Following via createLockFile
Grav CMS before 2.0.16 contains a symlink following vulnerability in Scheduler Job::createLockFile() that allows local attackers to overwrite arbitrary files by pre-creating symlinks at predictable lock file paths in the world-writable temp directory. Attackers can place a symlink at the predictable lock path pointing to any file the web server process can write to, and the next scheduled job run will follow the symlink and overwrite the target file's content with the job ID string.
Affected Software
Event History
Frequently Asked Questions
Who is realistically exposed to exploitation?
Systems running Grav CMS before 2.0.16 are exposed when a local attacker can create files in the world-writable temporary directory used for scheduler lock files. The attacker can target files that are writable by the web server process.
What does an attacker need to exploit this issue?
The attacker needs local access sufficient to pre-create a symbolic link at a predictable scheduler lock-file path. No privileges or user interaction are required according to the supplied severity vector.
What happens when exploitation succeeds?
On the next scheduled job run, Grav follows the attacker-created symlink and overwrites the linked target with the job ID string. This can affect the confidentiality, integrity, and availability of files writable by the web server process.
How can I determine whether an attempted attack may already be present?
Inspect the temporary directory used by Grav scheduler jobs for symlinks at predictable lock-file paths, especially links pointing to files writable by the web server process. Also investigate unexpected changes to such files containing a scheduler job ID string.