Summary
The update checker parses the GitHub latest-release response directly from the response stream without checking response size or JSON depth.
Evidence
UpdateChecker.FetchLatestReleaseTagAsync sends a request to the releases API, reads the response stream with ReadAsStreamAsync, and passes it directly to JsonDocument.ParseAsync without a Content-Length cap, bounded stream, ResponseHeadersRead, or JsonDocumentOptions.MaxDepth.
Impact
A malformed, proxied, or unexpectedly large response can force excessive memory or CPU during an automatic update check.
Expected
Use a bounded response read with a documented byte limit and JSON depth limit before parsing the release metadata.
Summary
The update checker parses the GitHub latest-release response directly from the response stream without checking response size or JSON depth.
Evidence
UpdateChecker.FetchLatestReleaseTagAsyncsends a request to the releases API, reads the response stream withReadAsStreamAsync, and passes it directly toJsonDocument.ParseAsyncwithout aContent-Lengthcap, bounded stream,ResponseHeadersRead, orJsonDocumentOptions.MaxDepth.Impact
A malformed, proxied, or unexpectedly large response can force excessive memory or CPU during an automatic update check.
Expected
Use a bounded response read with a documented byte limit and JSON depth limit before parsing the release metadata.