{"id":"GHSA-99vc-2jx2-688p","summary":"NocoDB: Missing File Size Enforcement in Upload-by-URL Allows Denial of Service via Disk Exhaustion","details":"### Summary\n\nThe `uploadViaURL` path in the v1/v2 attachment API did not enforce `NC_ATTACHMENT_FIELD_SIZE` against the remote `content-length` or against the response stream. An authenticated user (Editor+) could direct the server to download arbitrarily large files, exhausting disk space and causing denial of service.\n\n### Details\n\nIn `packages/nocodb/src/services/attachments.service.ts`, the HEAD probe read `content-length` but never compared it to `NC_ATTACHMENT_FIELD_SIZE`; the subsequent `storageAdapter.fileCreateByUrl()` performed the download without `maxContentLength`. The v3 service (`v3/data-attachment-v3.service.ts`) already enforced the limit, but the v1/v2 endpoints (`POST /api/v1/db/storage/upload-by-url`, `POST /api/v2/storage/upload-by-url`) did not.\n\nThis is distinct from GHSA-xr7v-j379-34v9 (blind SSRF via HEAD) — same code area, different class.\n\n### Impact\n\n- Authenticated DoS via disk exhaustion. Editor role suffices.\n- Cascading failures once disk fills: blocked DB writes, log rotation, application crash.\n\n### Credit\n\nThis issue was reported by [@ik0z](https://github.com/ik0z).","aliases":["CVE-2026-46551"],"modified":"2026-07-20T21:30:36.234103285Z","published":"2026-05-21T20:35:41Z","database_specific":{"github_reviewed_at":"2026-05-21T20:35:41Z","nvd_published_at":"2026-06-23T21:16:58Z","cwe_ids":["CWE-770"],"severity":"MODERATE","github_reviewed":true},"references":[{"type":"WEB","url":"https://github.com/nocodb/nocodb/security/advisories/GHSA-99vc-2jx2-688p"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-46551"},{"type":"PACKAGE","url":"https://github.com/nocodb/nocodb"}],"affected":[{"package":{"name":"nocodb","ecosystem":"npm","purl":"pkg:npm/nocodb"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"last_affected":"0.301.3"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/05/GHSA-99vc-2jx2-688p/GHSA-99vc-2jx2-688p.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H"}]}