CVE-2026-108981
ngx_cache_purge before 3.0.4 can allow file deletion via a symlink attack in certain situations...
ngx_cache_purge before 3.0.4 can allow file deletion via a symlink attack in certain situations where nginx and a served application (e.g., WordPress) run under the same user account. The attacker must be able to create a symlink inside the cache path. Version 3.0.4 fixes this for the case of a symlink created at an arbitrary earlier time, but does not resolve an applicable TOCTOU race condition. (The ngx_cache_purge module follows symlinks while walking the cache directory tree during purge operations. The module relies on nginx's ngx_walk_tree(), which relies on stat() and therefore follows symlinks.)
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- High
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- Low
- Availability
- Low
Exploit likelihood
What each source reports
CVE List Score used
3.6
ngx_cache_purge before 3.0.4 can allow file deletion via a symlink attack in certain situations where nginx and a served application (e.g., WordPress) run under the same user account. The attacker must be able to create a symlink inside the cache path. Version 3.0.4 fixes this for the case of a symlink created at an arbitrary earlier time, but does not resolve an applicable TOCTOU race condition. (The ngx_cache_purge module follows symlinks while walking the cache directory tree during purge operations. The module relies on nginx's ngx_walk_tree(), which relies on stat() and therefore follows symlinks.)
- Record
CVE-2026-108981- CVSS 3.1
- 3.6 Low
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:L - Weakness
- CWE-61
- Updated
- 2026-11-02
EUVDEUVD-2026-97159
3.6
ngx_cache_purge before 3.0.4 can allow file deletion via a symlink attack in certain situations where nginx and a served application (e.g., WordPress) run under the same user account. The attacker must be able to create a symlink inside the cache path. Version 3.0.4 fixes this for the case of a symlink created at an arbitrary earlier time, but does not resolve an applicable TOCTOU race condition. (The ngx_cache_purge module follows symlinks while walking the cache directory tree during purge operations. The module relies on nginx's ngx_walk_tree(), which relies on stat() and therefore follows symlinks.)
- Record
EUVD-2026-97159- CVSS 3.1
- 3.6 Low
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:L - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-5fhq-3m7h-fqv8
3.6
ngx_cache_purge before 3.0.4 can allow file deletion via a symlink attack in certain situations...
ngx_cache_purge before 3.0.4 can allow file deletion via a symlink attack in certain situations where nginx and a served application (e.g., WordPress) run under the same user account. The attacker must be able to create a symlink inside the cache path. Version 3.0.4 fixes this for the case of a symlink created at an arbitrary earlier time, but does not resolve an applicable TOCTOU race condition. (The ngx_cache_purge module follows symlinks while walking the cache directory tree during purge operations. The module relies on nginx's ngx_walk_tree(), which relies on stat() and therefore follows symlinks.)
- Record
GHSA-5fhq-3m7h-fqv8- CVSS 3.1
- 3.6 Low
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:L - Weakness
- CWE-61
- Updated
- 2026-11-02
NVD
3.6
ngx_cache_purge before 3.0.4 can allow file deletion via a symlink attack in certain situations where nginx and a served application (e.g., WordPress) run under the same user account. The attacker must be able to create a symlink inside the cache path. Version 3.0.4 fixes this for the case of a symlink created at an arbitrary earlier time, but does not resolve an applicable TOCTOU race condition. (The ngx_cache_purge module follows symlinks while walking the cache directory tree during purge operations. The module relies on nginx's ngx_walk_tree(), which relies on stat() and therefore follows symlinks.)
- Record
CVE-2026-108981- CVSS 3.1
- 3.6 Low
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:L - Weakness
- CWE-61
- Updated
- 2026-11-02
OSV
3.6
ngx_cache_purge before 3.0.4 can allow file deletion via a symlink attack in certain situations where nginx and a served application (e.g., WordPress) run under the same user account. The attacker must be able to create a symlink inside the cache path. Version 3.0.4 fixes this for the case of a symlink created at an arbitrary earlier time, but does not resolve an applicable TOCTOU race condition. (The ngx_cache_purge module follows symlinks while walking the cache directory tree during purge operations. The module relies on nginx's ngx_walk_tree(), which relies on stat() and therefore follows symlinks.)
- Record
CVE-2026-108981- CVSS 3.1
- 3.6 Low
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:L - Weakness
- CWE-61
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-108981
3.6
ngx_cache_purge before 3.0.4 can allow file deletion via a symlink attack in certain situations where nginx and a served application (e.g., WordPress) run under the same user account. The attacker must be able to create a symlink inside the cache path. Version 3.0.4 fixes this for the case of a symlink created at an arbitrary earlier time, but does not resolve an applicable TOCTOU race condition. (The ngx_cache_purge module follows symlinks while walking the cache directory tree during purge operations. The module relies on nginx's ngx_walk_tree(), which relies on stat() and therefore follows symlinks.)
- Record
DEBIAN-CVE-2026-108981- CVSS 3.1
- 3.6 Low
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:L - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-108981
3.6
ngx_cache_purge before 3.0.4 can allow file deletion via a symlink attack in certain situations where nginx and a served application (e.g., WordPress) run under the same user account. The attacker must be able to create a symlink inside the cache path. Version 3.0.4 fixes this for the case of a symlink created at an arbitrary earlier time, but does not resolve an applicable TOCTOU race condition. (The ngx_cache_purge module follows symlinks while walking the cache directory tree during purge operations. The module relies on nginx's ngx_walk_tree(), which relies on stat() and therefore follows symlinks.)
- Record
UBUNTU-CVE-2026-108981- CVSS 3.1
- 3.6 Low
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:L - Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
libnginx-mod-http-cache-purgeDebian:12 |
All versions, plus listed versions 1:2.3-41:2.3-51:2.3-5~exp11:2.3-61:2.5.3-1 Show 9 moreShow less1:2.5.3-21:2.5.3-31:2.5.3-41:2.5.4-11:2.5.5-11:2.5.6-11:3.0.2-11:3.0.3-11:3.0.4-1 |
None known |
libnginx-mod-http-cache-purgeDebian:13 |
All versions, plus listed versions 1:2.5.3-31:2.5.3-41:2.5.4-11:2.5.5-11:2.5.6-11:3.0.2-11:3.0.3-11:3.0.4-1 |
None known |
libnginx-mod-http-cache-purgeDebian:14 |
before 1:3.0.4-1, plus listed versions 1:2.5.3-31:2.5.3-41:2.5.4-11:2.5.5-11:2.5.6-11:3.0.2-11:3.0.3-1 |
1:3.0.4-1 |
libnginx-mod-http-cache-purgeUbuntu:24.04:LTS |
All versions, plus listed versions 1:2.3-51:2.3-61:2.3-6build2 |
None known |
libnginx-mod-http-cache-purgeUbuntu:26.10 |
All versions, plus listed versions 1:2.5.5-1build21:2.5.6-1build11:3.0.2-1 |
None known |
libnginx-mod-http-cache-purgeUbuntu:26.04:LTS |
All versions, plus listed versions 1:2.5.3-3build11:2.5.4-11:2.5.4-1build11:2.5.5-11:2.5.5-1build11:2.5.5-1build2 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-108981 is a low vulnerability (CVSS 3.6) in Denji Ngx Cache Purge, published October 12, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.16%, the 5th percentile. Fixed in libnginx-mod-http-cache-purge 1:3.0.4-1.
References
github.com/nginx-modules/ngx_cache_purge/pull/72
github.com/nginx-modules/ngx_cache_purge/commit/a6da1352f52a8a02dd6828e88c39ed42fddcee96
github.com/nginx-modules/ngx_cache_purge/releases/tag/3.0.4
nvd.nist.gov/vuln/detail/CVE-2026-108981
github.com/advisories/GHSA-5fhq-3m7h-fqv8
github.com/CVEProject/cvelistV5/tree/main/cves/2026/108xxx/CVE-2026-108981.json