{"id":"CVE-2026-115188","kind":"vulnerability","aliases":["CVE-2026-115188"],"related":[],"title":"Mautic: campaign import lets an authenticated user upload server-run scripts","description":"An unrestricted file upload vulnerability exists in the campaign import feature of Mautic 7. When processing an uploaded campaign archive, the application copies the bundled asset files into a publicly accessible media directory without restricting their file names or types. An authenticated user with permission to create campaign imports can exploit this through the user interface or the API (/api/campaigns/import) to place arbitrary files, including server-side scripts, in the web root. Administrator privileges are not required. On web servers that honor per-directory configuration, such as the default Apache setup of the official Mautic Docker image, this leads to remote code execution with the privileges of the web server user, including access to the Mautic configuration, application secrets, and contact data.","summary":"The Mautic 7 campaign import copies bundled asset files into a public media directory without checking file names or types. An authenticated user who can create campaign imports can place server-side scripts in the web root and run code as the web server user, reaching configuration, secrets and contact data.","severity":"critical","cvss":9.9,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["apache","docker","mautic","package","php","self-hosted"],"not_affected_if":["default-config"],"how_to_check":"- Run `composer show mautic/core-lib` or check the Mautic version in the admin footer to see whether the install is `7.x`\n- Check whether the media directory under the web root executes PHP, for example by looking for `.htaccess` rules that allow script execution in the media folder\n- Review the web server and Docker image configuration for per-directory overrides (Apache `AllowOverride` set to allow `.htaccess`)","fix":"- Upgrade Mautic to a fixed release; the fixed version is unknown from the sources\n- Until patched, restrict campaign import permissions to trusted users only\n- Block script execution in the Mautic media directory at the web server level\n- Rotate Mautic secrets and database credentials if an untrusted user had import access","status":"open","published_at":"2026-10-26T14:16:30+00:00","first_seen_at":"2026-10-26T14:30:36+00:00","triaged_at":"2026-10-26T14:32:00+00:00","updated_at":"2026-10-26T14:32:00+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-10-26T14:32:00Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade Mautic to a fixed release; the fixed version is unknown from the sources\n- Until patched, restrict campaign import permissions to trusted users only\n- Block script execution in the Mautic media directory at the web server level\n- Rotate Mautic secrets and database credentials if an untrusted user had import access","reach":"internet","title":"Mautic: campaign import lets an authenticated user upload server-run scripts","impact":"high","summary":"The Mautic 7 campaign import copies bundled asset files into a public media directory without checking file names or types. An authenticated user who can create campaign imports can place server-side scripts in the web root and run code as the web server user, reaching configuration, secrets and contact data.","category":"package","nicknames":[],"who_cares":["mautic","self-hosted","apache","docker","php"],"confidence":0.8,"needs_auth":"yes","worst_case":"Attacker runs code as the web server user and reads secrets","analyst_note":"Confirm the fixed Mautic version and whether earlier 7.x or 6.x releases are affected, using the NVD entry linked in the sources.","how_to_check":"- Run `composer show mautic/core-lib` or check the Mautic version in the admin footer to see whether the install is `7.x`\n- Check whether the media directory under the web root executes PHP, for example by looking for `.htaccess` rules that allow script execution in the media folder\n- Review the web server and Docker image configuration for per-directory overrides (Apache `AllowOverride` set to allow `.htaccess`)","needs_analyst":true,"not_affected_if":["default-config"],"who_is_affected":"Teams running Mautic 7 that allow users to create campaign imports, especially on the official Docker image with Apache and per-directory configuration honored. Installs on Mautic 6 or earlier are not named in the sources, and installs where only administrators can import campaigns or where script execution is blocked in the media directory have reduced exposure.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"critical"},"cost_usd":0.000695,"input_tokens":3440,"output_tokens":703,"severity_before":"critical"},"analyst_status":null,"analyst_note":null,"search":"'-115188':15A,18A '-2026':14A,17A '/api/campaigns/import':138C '7':29B,92C 'access':109C,193C 'administr':152C 'apach':19B,170C 'api':137C 'applic':100C,198C 'arbitrari':141C 'archiv':98C 'asset':34B,104C 'authent':6A,48B,120C 'bundl':33B,103C 'campaign':2A,30B,53B,87C,97C,126C 'check':42B 'code':67B,182C 'configur':74B,165C,197C 'contact':77B,201C 'copi':32B,101C 'creat':52B,125C 'cve':13A,16A 'data':78B,202C 'default':169C 'directori':40B,111C,164C 'docker':20B,176C 'execut':183C 'exist':84C 'exploit':129C 'featur':89C 'file':35B,43B,81C,105C,115C,142C 'honor':161C 'host':26B 'imag':177C 'import':3A,31B,54B,88C,127C 'includ':143C,192C 'interfac':134C 'lead':179C 'let':4A 'mautic':1A,21B,28B,91C,175C,196C 'media':39B,110C 'name':44B,116C 'offici':174C 'packag':22B 'per':163C 'per-directori':162C 'permiss':123C 'php':23B 'place':56B,140C 'privileg':153C,186C 'process':94C 'public':38B,108C 'reach':73B 'remot':181C 'requir':156C 'restrict':113C 'root':64B,151C 'run':11A,66B 'script':12A,60B,147C 'secret':75B,199C 'self':25B 'self-host':24B 'server':10A,58B,71B,145C,159C,190C 'server-run':9A 'server-sid':57B,144C 'setup':171C 'side':59B,146C 'type':46B,118C 'unrestrict':80C 'upload':8A,82C,96C 'user':7A,49B,72B,121C,133C,191C 'vulner':83C 'web':63B,70B,150C,158C,189C 'without':41B,112C","nicknames":[],"mitigations":[],"who_affected":"Teams running Mautic 7 that allow users to create campaign imports, especially on the official Docker image with Apache and per-directory configuration honored. Installs on Mautic 6 or earlier are not named in the sources, and installs where only administrators can import campaigns or where script execution is blocked in the media directory have reduced exposure.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-26T14:16:30+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","cvss_by":"security@mautic.org","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-115188","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-115188","severity":null,"published_at":"2026-10-26T14:16:30+00:00","modified_at":"2026-10-26T14:21:33+00:00","first_seen_at":"2026-10-26T14:30:36+00:00","fetched_at":"2026-10-26T14:30:36+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}