CVE-2025-27591
Below has Incorrect Permission Assignment for Critical Resource
A privilege escalation vulnerability existed in the Below service prior to v0.9.0 due to the creation of a world-writable directory at /var/log/below. This could have allowed local unprivileged users to escalate to root privileges through symlink attacks that manipulate files such as /etc/shadow.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- Low
- Integrity
- High
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
6.8
A privilege escalation vulnerability existed in the Below service prior to v0.9.0 due to the creation of a world-writable directory at /var/log/below. This could have allowed local unprivileged users to escalate to root privileges through symlink attacks that manipulate files such as /etc/shadow.
- Record
CVE-2025-27591- CVSS 3.1
- 6.8 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N - Updated
- 2026-11-02
EUVDEUVD-2025-7209
6.8
A privilege escalation vulnerability existed in the Below service prior to v0.9.0 due to the creation of a world-writable directory at /var/log/below. This could have allowed local unprivileged users to escalate to root privileges through symlink attacks that manipulate files such as /etc/shadow.
- Record
EUVD-2025-7209- CVSS 3.1
- 6.8 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-9mc5-7qhg-fp3w
7.3
Below has Incorrect Permission Assignment for Critical Resource
Impact
A privilege escalation vulnerability existed in the Below service prior to v0.9.0 due to the creation of a world-writable directory at /var/log/below. This could have allowed local unprivileged users to escalate to root privileges through symlink attacks that manipulate files such as /etc/shadow.
Patches
https://github.com/facebookincubator/below/commit/10e73a21d67baa2cd613ee92ce999cda145e1a83
This is included in version 0.9.0
Workarounds
Change the permission on /var/log/below manually
References
https://www.facebook.com/security/advisories/cve-2025-27591 https://www.cve.org/CVERecord?id=CVE-2025-27591
- Record
GHSA-9mc5-7qhg-fp3w- CVSS 4.0
- 7.3 High
CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-732
- Updated
- 2026-11-02
NVD
6.8
A privilege escalation vulnerability existed in the Below service prior to v0.9.0 due to the creation of a world-writable directory at /var/log/below. This could have allowed local unprivileged users to escalate to root privileges through symlink attacks that manipulate files such as /etc/shadow.
- Record
CVE-2025-27591- CVSS 3.1
- 6.8 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N - Weakness
- CWE-732
- Updated
- 2026-11-02
OSV
6.8
A privilege escalation vulnerability existed in the Below service prior to v0.9.0 due to the creation of a world-writable directory at /var/log/below. This could have allowed local unprivileged users to escalate to root privileges through symlink attacks that manipulate files such as /etc/shadow.
- Record
CVE-2025-27591- CVSS 3.1
- 6.8 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N - Updated
- 2026-11-02
OSVGHSA-9mc5-7qhg-fp3w
7.3
Below has Incorrect Permission Assignment for Critical Resource
Impact
A privilege escalation vulnerability existed in the Below service prior to v0.9.0 due to the creation of a world-writable directory at /var/log/below. This could have allowed local unprivileged users to escalate to root privileges through symlink attacks that manipulate files such as /etc/shadow.
Patches
https://github.com/facebookincubator/below/commit/10e73a21d67baa2cd613ee92ce999cda145e1a83
This is included in version 0.9.0
Workarounds
Change the permission on /var/log/below manually
References
https://www.facebook.com/security/advisories/cve-2025-27591 https://www.cve.org/CVERecord?id=CVE-2025-27591
- Record
GHSA-9mc5-7qhg-fp3w- CVSS 4.0
- 7.3 High
CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-732
- Updated
- 2026-11-02
OSVRUSTSEC-2025-0149
7.3
World Writable Directory in /var/log/below Allows Local Privilege Escalation
Below is a tool for recording and displaying system data like hardware utilization and cgroup information on Linux.
Symlink Attack in /var/log/below/error_root.log
Below's systemd service runs with full root privileges. It attempts to
create a world-writable directory in /var/log/below. Even if the
directory already exists, the Rust code ensures 1 that it receives
mode 0777 permissions:
if perm.mode() & 0o777 != 0o777 {
perm.set_mode(0o777);
match dir.set_permissions(perm) {
Ok(()) => {}
Err(e) => {
bail!(
"Failed to set permissions on {}: {}",
path.to_string_lossy(),
e
);
}
}
}
This logic leads to different outcomes depending on the packaging on Linux distributions:
- in openSUSE Tumbleweed the directory was packaged with 01755
permissions (below.spec 2 line 73), thus causing the
set_permissions()call to run, resulting in a directory with mode 0777 during runtime. - in Gentoo Linux the directory is created with mode 01755 resulting in
the same outcome as on openSUSE Tumbleweed (below.ebuild 3). Where
the 01755 mode is exactly coming from is not fully clear, maybe the
cargobuild process assigns these permissions during installation. - in Fedora Linux the directory is packaged with 01777 permissions, thus
the
set_permissions()code will not run, because theifcondition masks out the sticky bit. The directory stays at mode 01777 (rust-below.spec 4). - the Arch Linux AUR package 5 (maybe wrongly) does not pre-create
the log directory. Thus the
set_permissions()code will run and create the directory with mode 0777.
Below creates a log file in /var/log/below/error_root.log and assigns
mode 0666 to it. This (somewhat confusingly) happens via a log_dir
variable 6, which has been changed to point to the error_root.log
file. The 0666 permission assignment to the logfile happens in
logging::setup() 7, also accompanied by a somewhat strange comment
in the code.
A local unprivileged attacker can stage a symlink attack in this
location and cause an arbitrary file in the system to obtain 0666
permissions, likely leading to a full local root exploit, if done right,
e.g. by pointing the symlink to /etc/shadow. Even if the file already
exists it can be removed and replaced by a symlink, because of the
world-writable directory permissions. The attack is thus not limited to
scenarios in which the file has not yet been created by Below.
Further Issues
Even on Fedora Linux, where /var/log/below has "safe" 01777
permissions, there is a time window during which problems can arise. As
long as below.service has not been started, another local user can
pre-create /var/log/below/error_root.log and e.g. place a FIFO special
file there. This will pose a local DoS against the below service, since
it will fail to open the path and thus fail to start.
If /var/log/below were to be deleted for any reason, then Below would
still recreate it using the bad 0777 mode permissions, which can also
happen on distributions that initially package /var/log/below using
permissions that do not trigger the set_permissions() call in Below's
code.
- Record
RUSTSEC-2025-0149- CVSS 4.0
- 7.3 High
CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - Updated
- 2026-11-02
OSVopenSUSE-SU-2026:10194-1 No score
cargo-audit-advisory-db-20260213-1.1 on GA media
These are all security issues fixed in the cargo-audit-advisory-db-20260213-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:10194-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
belowcrates.io |
before 0.9.0 | 0.9.0 |
belowcrates.io |
0.0.0-0 up to 0.9.0 | 0.9.0 |
cargo-audit-advisory-dbopenSUSE:Tumbleweed |
before 20260213-1.1 | 20260213-1.1 |
Public exploits
Links only. Every CVE stores no exploit code.
| Source | Link | Date |
|---|---|---|
| PoC in GitHub | 00xCanelo/CVE-2025-27591 | 2025-07-19 |
| PoC in GitHub | 0x00Jeff/CVE-2025-27591 | 2025-11-19 |
| PoC in GitHub | 0xDTC/Below-Logger-Symlink-Attack_CVE-2025-27591 | 2025-11-13 |
| PoC in GitHub | BridgerAlderson/CVE-2025-27591-PoC | 2025-07-13 |
| PoC in GitHub | Cythonic1/CVE-2025-27591 | 2025-07-31 |
| PoC in GitHub | MoTechStore/CVE-2025-27591-PoC | 2026-07-15 |
| PoC in GitHub | Stp1t/CVE-2025-27591 | 2026-01-02 |
| PoC in GitHub | Thekin-ctrl/CVE-2025-27591-Below | 2025-07-20 |
| PoC in GitHub | VisaiCyber/CVE-2025-27591-below- | 2025-09-03 |
| PoC in GitHub | alialucas7/CVE-2025-27591_PoC | 2025-07-16 |
Show 9 moreShow less
| Source | Link | Date |
|---|---|---|
| PoC in GitHub | danil-koltsov/below-log-race-poc | 2025-09-01 |
| PoC in GitHub | dollarboysushil/Linux-Privilege-Escalation-CVE-2025-27591 | 2025-07-15 |
| PoC in GitHub | incommatose/CVE-2025-27591-PoC | 2025-07-18 |
| PoC in GitHub | krn966/CVE-2025-27591 | 2025-10-18 |
| PoC in GitHub | obamalaolu/CVE-2025-27591 | 2025-07-12 |
| PoC in GitHub | rippsec/CVE-2025-27591-Meta-below-LPE | 2026-04-16 |
| PoC in GitHub | rvzsec/CVE-2025-27591 | 2025-07-12 |
| PoC in GitHub | sefafl77/CVE-2025-27591-PoC | 2025-08-10 |
| PoC in GitHub | umutcamliyurt/CVE-2025-27591 | 2025-08-16 |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV, PoC in GitHub |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2025-27591 is a medium vulnerability (CVSS 6.8) in Facebook Below, published March 11, 2025. Public exploit code exists. EPSS puts the chance of exploitation in the next 30 days at 0.37%, the 31st percentile. Fixed in below 0.9.0.
References
facebook.com/security/advisories/cve-2025-27591
github.com/facebookincubator/below/commit/da9382e6e3e332fd2c3195e22f34977f83f0f1f3
openwall.com/lists/oss-security/2025/03/12/1
github.com/facebookincubator/below/security/advisories/GHSA-9mc5-7qhg-fp3w
github.com/facebookincubator/below/commit/10e73a21d67baa2cd613ee92ce999cda145e1a83
nvd.nist.gov/vuln/detail/CVE-2025-27591
Left out here: the rest of 1 source description. The JSON record has them.