Skip to content

Update checker should bound GitHub release response before JSON parsing #2907

Description

@Widthdom

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingsecurity

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions