[GHSA-x3f8-2w95-hw4m] ChangeDetection.io versions prior to 0.54.7 contain a... - #9190
Open
PercevalFox wants to merge 1 commit into
Open
Conversation
github-actions
Bot
changed the base branch from
main
to
PercevalFox/advisory-improvement-9190
August 23, 2026 01:54
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Updates
Comments
This advisory is unreviewed and has no package mapping, so it does not surface to users of the affected package.
The repository dgtlmoon/changedetection.io publishes the PyPI package
changedetection.io.The advisory names the SafeXPath3Parser blocklist and the json-doc() file access primitive. The fix commit (dadc8045, "XPath json-doc() Arbitrary File Read Bypass") adds json-doc, json-doc-available, collection, uri-collection, transform and load-xquery-module to the blocklist in changedetectionio/html_tools.py, with a regression test reading json-doc('file:///...'). This matches the advisory text.
I verified the boundary against the published PyPI wheels:
This is a distinct bypass from CVE-2026-29039 (unparsed-text(), fixed in 0.54.4, GHSA-6fmw-82m7-jq6p); this one covers json-doc() and was fixed in 0.54.7. It matches the "before 0.54.7" wording in the description and the release tag in the references (https://github.com/dgtlmoon/changedetection.io/releases/tag/0.54.7).
Proposed range: introduced 0, fixed 0.54.7.
The CVSS v4 vector was rewritten to omit the trailing Not Defined (X) metrics, which the form's validator rejects. Semantically identical per the CVSS v4.0 specification, no change to the severity assessment. CVSS v3 left untouched.
The advisory also had no title. The proposed one follows the database's naming convention and reflects the existing CWE-184 classification.