The upload-by-URL path did not enforce NC_ATTACHMENT_FIELD_SIZE against either the remote file's advertised Content-Length or the decoded length of a data: URI, allowing an authenticated user to bypass the configured per-file size limit.
The attachments service now checks NC_ATTACHMENT_FIELD_SIZE against both the HEAD response's content-length and the decoded length of a data: URI body before fetching. The local storage plugin additionally sets maxContentLength on the axios download so a malicious server cannot stream past the limit.
Authenticated users with upload permission could attach files larger than the operator-configured limit, defeating storage and bandwidth caps.
This issue was reported by @bugbunny-research.
{
"cwe_ids": [
"CWE-770"
],
"github_reviewed": true,
"github_reviewed_at": "2026-05-21T20:38:58Z",
"nvd_published_at": "2026-06-23T21:16:58Z",
"severity": "LOW"
}