The vulnerability is a denial-of-service caused by unbounded reads of data, primarily from HTTP responses. The core of the vulnerability was in the notary.APIClient.handleResponse function, which used io.ReadAll on the response body without any size limit. This was directly exploitable through the notary.APIClient.submissionLogs function, which is used to fetch Apple notarization logs. An attacker, able to control the HTTP response in a man-in-the-middle scenario, could provide a massive response body, causing the Quill client to exhaust its memory and crash.
The patch introduces a new utility function, utils.ReadAllLimited, which wraps io.LimitReader to enforce a maximum size on data read from any io.Reader. This new function was then used to replace all instances of io.ReadAll that operated on untrusted input streams. The fix was applied not only to the primary vulnerable function handleResponse but also to other parts of the codebase that performed similar unbounded reads, such as load.BytesFromFileOrEnv (reading files) and an internal download function for fetching certificates. The identified functions would appear in a runtime profile when the notarization process is triggered, with submissionLogs and handleResponse being the key indicators of the vulnerable code path being executed.