Skip to content

changedetection.io API endpoint is not secured with API token

Low severity GitHub Reviewed Published Jan 19, 2024 in dgtlmoon/changedetection.io • Updated Jan 27, 2024

Package

pip changedetection-io (pip)

Affected versions

>= 0.39.14, < 0.45.13

Patched versions

0.45.13
pip changedetection.io (pip)
>= 0.39.14, <= 0.45.12
0.45.13

Description

Summary

API endpoint /api/v1/watch/<uuid>/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:
$ curl -H "x-api-key: apikeyhere" http://localhost:5000/api/v1/watch
{"uuid": ...}
  1. Call for history of snapshots without x-api-key. Expected - 401/403 error. Actual - list of snapshots is listed.
$ 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.

References

@dgtlmoon dgtlmoon published to dgtlmoon/changedetection.io Jan 19, 2024
Published by the National Vulnerability Database Jan 19, 2024
Published to the GitHub Advisory Database Jan 23, 2024
Reviewed Jan 23, 2024
Last updated Jan 27, 2024

Severity

Low
3.7
/ 10

CVSS base metrics

Attack vector
Network
Attack complexity
High
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
None
Availability
None
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N

Weaknesses

CVE ID

CVE-2024-23329

GHSA ID

GHSA-hcvp-2cc7-jrwr

Credits

Loading Checking history
See something to contribute? Suggest improvements for this vulnerability.