critical9.8
CVE-2026-35490
changedetection.io Vulnerable to Authentication Bypass via Decorator Ordering
Impact
changedetection.io is a free open source web page change detection tool. Prior to 0.54.8, the @login_optionally_required decorator is placed before (outer to) @blueprint.route() instead of after it. In Flask, @route() must be the outermost decorator because it registers the function it receives. When the order is reversed, @route() registers the original undecorated function, and the auth wrapper is never in the call chain. This silently disables authentication on these routes. This vulnerability is fixed in 0.54.8.
Affected packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| pip | changedetection.io | <= 0.54.7 | 0.54.8 |
Affected products
| Vendor | Product | Affected versions |
|---|---|---|
| Webtechnologies | Changedetection | before 0.54.8 |
Weakness classification
References
- NVD record
- CVE.org record
- GitHub advisory
- https://github.com/dgtlmoon/changedetection.io/security/advisories/GHSA-jmrh-xmgh-x9j4
- https://github.com/advisories/GHSA-jmrh-xmgh-x9j4
- https://github.com/dgtlmoon/changedetection.io/commit/31a760c2147e3e73a403baf6d7de34dc50429c85
- https://github.com/dgtlmoon/changedetection.io/releases/tag/0.54.8
- https://nvd.nist.gov/vuln/detail/CVE-2026-35490
- https://github.com/pypa/advisory-database/tree/main/vulns/changedetection-io/PYSEC-2026-28.yaml