GitHub Advisoryadvisory · PyPI

GHSA-hcvp-2cc7-jrwr changedetection.io API endpoint is not secured with API token

LOW Published 2024-01-23 Modified 2024-09-13 Official page ↗
Aliases
CVE-2024-23329
Ecosystem
PyPI
Packages
changedetection.io
Severity
Low
CVSS vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N
Weaknesses
CWE-863
Reviewed
2024-01-23

Affected packages

• PyPI changedetection.io: >= 0.39.14, < 0.45.13 → fixed in 0.45.13

Description

Summary API endpoint `/api/v1/watch//history` can be accessed by any unauthorized user. Details WatchHistory resource does not have `@auth.check_token` annotation, which means it can be accessed without providing `x-api-key` header. https://github.com/dgtlmoon/changedetection.io/blob/9510345e01ea8e308c339163d8e8b030ce5ac7f1/changedetectionio/api/api_v1.py#L129-L156 PoC 1. Get list of watch with `x-api-key`: ```sh $ curl -H "x-api-key: apikeyhere" http://localhost:5000/api/v1/watch {"uuid": ...} ``` 2. Call for history of snapshots without `x-api-key`. Expected - 401/403 error. Actual - list of snapshots is listed. ```sh $ curl http://localhost:5000/api/v1/watch/uuid/history {"timestamp": "/path/to/snapshot.txt"} ``` Impact Anybody can check one's watch history. However, because unauthorized party first needs to know watch UUID, and the watch history endpoint itself returns only paths to the snapshot on the server, an impact on users' data privacy is minimal.

Related

Alias · CVE (1)

  • CVE-2024-23329 changedetection.io is an open source tool designed to monitor websites for content changes. vulnerability

Weakness · CWE (1)

  • CWE-863 Incorrect Authorization weakness

References