{"id":"CVE-2026-71204","aliases":["EUVD-2026-53201","GHSA-84vg-9r54-xpgh"],"status":"published","title":"changedetection.io - Omitted Checkbox in /settings Save Silently Disables API Key Enforcement","description":"changedetection.io's /settings save handler builds an update dict from form.data['application'] and blind-merges it into the stored application settings via .update.","severity":{"version":"3.1","score":6.3,"vector":"CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:L","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-09","score":0.0032,"percentile":0.25162,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":true,"fix_available":false},"cwes":["CWE-284"],"published":"2026-08-05T06:59:00Z","modified":"2026-10-28T02:30:28Z","exploits":[{"source":"pocgithub","id":"Nel-droid/CVE-2026-71204-PoC","title":"Nel-droid/CVE-2026-71204-PoC","date":"2026-08-16","url":"https://github.com/Nel-droid/CVE-2026-71204-PoC"}],"products":[{"vendor":"dgtlmoon","product":"changedetection.io"}],"references":[{"url":"https://github.com/dgtlmoon/changedetection.io","tags":["third-party-advisory","advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-71204","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-84vg-9r54-xpgh"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/71xxx/CVE-2026-71204.json","tags":["advisory"]}],"sources":{"cve":[{"id":"CVE-2026-71204","title":"changedetection.io - Omitted Checkbox in /settings Save Silently Disables API Key Enforcement","description":"changedetection.io's /settings save handler builds an update dict from form.data['application'] and blind-merges it into the stored application settings via .update.","status":"published","published":"2026-08-05T06:59:00.078Z","modified":"2026-08-10T11:45:03.177Z","cvss":[{"version":"3.1","score":6.3,"vector":"CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:L","level":"medium","assessor":"cna"}],"cwes":["CWE-284"],"updated_at":"2026-11-02T14:19:49.199185Z"}],"euvd":[{"id":"EUVD-2026-53201","description":"changedetection.io's /settings save handler builds an update dict from form.data['application'] and blind-merges it into the stored application settings via .update.","status":"published","published":"2026-08-05T06:59:00Z","modified":"2026-08-10T11:45:03Z","cvss":[{"version":"3.1","score":6.3,"vector":"CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:L","level":"medium"}],"updated_at":"2026-11-02T18:02:06.086083Z"}],"ghsa":[{"id":"GHSA-84vg-9r54-xpgh","title":"changedetection.io's /settings save handler builds an update dict from form.data['application']...","description":"changedetection.io's /settings save handler builds an update dict from form.data['application'] and blind-merges it into the stored application settings via .update(). Because WTForms represents an unchecked checkbox as False rather than 'unchanged', and only the 'password' field is special-cased against this problem, a POST to /settings that omits the api_access_token_enabled field (e.g. a minimal scripted request) silently disables API key enforcement for the entire REST API, exposing the full watch list, history, and configuration to unauthenticated requests.","status":"published","published":"2026-08-05T09:31:18Z","modified":"2026-08-05T09:31:26Z","cvss":[{"version":"3.1","score":6.2,"vector":"CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:L","level":"medium"}],"cwes":["CWE-284"],"updated_at":"2026-11-02T15:10:06.632203Z"}],"nvd":[{"id":"CVE-2026-71204","description":"changedetection.io's /settings save handler builds an update dict from form.data['application'] and blind-merges it into the stored application settings via .update.","status":"published","published":"2026-08-05T08:16:42.327Z","modified":"2026-10-24T15:10:00.19Z","cvss":[{"version":"3.1","score":6.2,"vector":"CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:L","level":"medium","assessor":"secondary"}],"cwes":["CWE-284"],"updated_at":"2026-11-02T14:12:35.031043Z"}],"osv":[{"id":"CVE-2026-71204","title":"changedetection.io - Omitted Checkbox in /settings Save Silently Disables API Key Enforcement","description":"changedetection.io's /settings save handler builds an update dict from form.data['application'] and blind-merges it into the stored application settings via .update.","status":"published","published":"2026-08-05T06:59:00.078Z","modified":"2026-10-28T02:30:28.491161562Z","cvss":[{"version":"3.1","score":6.2,"vector":"CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:L","level":"medium"}],"cwes":["CWE-284"],"updated_at":"2026-11-02T15:45:15.164658Z"}]}}
