{"id":"CVE-2026-108981","revision":"0c8dbddf53634fcc831f971b7fc7ce5b","records":[{"revision":"0c8dbddf53634fcc831f971b7fc7ce5b","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-108981","aliases":[],"title":"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…","description":"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.)","state":0,"publishedAt":"2026-10-12T02:27:15.378+00:00","modifiedAt":"2026-10-14T17:18:00.208+00:00","affected":[{"ecosystem":"Vendor product","name":"ngx_cache_purge","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"defaultStatus\": \"unaffected\",\n                    \"modules\": [\n                        \"purge_all\",\n                        \"partial/wildcard key purge\",\n                        \"asynchronous purge queue\",\n                        \"vary-aware variant deletion\"\n                    ],\n                    \"product\": \"ngx_cache_purge\",\n                    \"programFiles\": [\n                        \"ngx_cache_purge_module.c\"\n                    ],\n                    \"programRoutines\": [\n                        {\n                            \"name\": \"ngx_http_cache_purge_all\"\n                        },\n                        {\n                            \"name\": \"ngx_http_cache_purge_partial\"\n                        },\n                        {\n                            \"name\": \"ngx_http_cache_purge_process_queue\"\n                        },\n                        {\n                            \"name\": \"ngx_http_cache_purge_delete_variants\"\n                        }\n                    ],\n                    \"repo\": \"https://github.com/nginx-modules/ngx_cache_purge\",\n                    \"vendor\": \"denji\",\n                    \"versions\": [\n                        {\n                            \"lessThanOrEqual\": \"2.5.6\",\n                            \"status\": \"affected\",\n                            \"version\": \"2.4.0\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"lessThan\": \"3.0.4\",\n                            \"status\": \"affected\",\n                            \"version\": \"3.0.0\",\n                            \"versionType\": \"semver\"\n                        }\n                    ]\n                }"}],"metrics":[{"system":"CVSS 3.1","vector":"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:L","score":3.6,"severity":"LOW"}],"references":["https://github.com/nginx-modules/ngx_cache_purge/pull/72","https://github.com/nginx-modules/ngx_cache_purge/commit/a6da1352f52a8a02dd6828e88c39ed42fddcee96","https://github.com/nginx-modules/ngx_cache_purge/releases/tag/3.0.4"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-108981","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-108981","identifiers":["CVE-2026-108981"]},"retained":false,"historicalAffected":[]}],"coverage":[]}