{"schemaVersion":3,"id":"CVE-2026-77633","aliases":["GHSA-xj3h-wwxq-gfcj","GO-2026-6578"],"status":"published","duplicateOf":null,"title":null,"description":"Cloudreve is a self-hosted file management and sharing system. Prior to 4.18.0, PrepareUpload in pkg/filemanager/fs/dbfs/upload.go checks a stale in-memory user storage value through validateUserCapacity and later applies an unconditional storage charge outside the same quota-enforcing transaction. An authenticated user with Files.Write permission can issue concurrent upload-session requests that read the same capacity snapshot, all pass the MaxStorage check, and reserve their declared sizes through CommitWithStorageDiff. The resulting reservations can exceed the account quota and can be materialized as chunked uploads that exhaust host storage and deny uploads to other users. The default local-storage policy and default User group are affected. This issue is fixed in version 4.18.0.","dates":{"published":"2026-09-22T15:28:56.700Z","modified":"2026-09-25T23:38:53.232Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":7.1,"severity":"high","version":"3.1","versionLabel":"v3.1","source":"CVE.org","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:H","computed":false,"selection":"backend-summary"},"metrics":[{"version":"3.1","versionLabel":"v3.1","source":"CVE.org","score":7.1,"severity":"high","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:H","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Go","score":7.1,"severity":"high","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:H","exploitability":7.2,"impact":7,"computed":true},{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":7.1,"severity":"high","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:H","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.00368,"percentile":0.29473,"severity":"low","asOf":"2026-10-21T00:00:00.000Z","change":{"pp":null,"baselineDate":null,"baselineScore":null},"history":[{"date":"2026-09-23T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.00368,"percentile":0.29473}],"last30":[{"date":"2026-09-23T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00368,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.00368,"percentile":0.29473}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[],"exploitCount":0,"weaknesses":[{"id":"CWE-362","name":"Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')","description":"The product contains a concurrent code sequence that requires temporary, exclusive access to a shared resource, but a timing window exists in which the shared resource can be modified by another code sequence operating concurrently.","type":"weakness","status":"Draft","abstraction":"Class","likelihoodOfExploit":"Medium","url":"https://cwe.mitre.org/data/definitions/362.html"},{"id":"CWE-367","name":"Time-of-check Time-of-use (TOCTOU) Race Condition","description":"The product checks the state of a resource before using that resource, but the resource's state can change between the check and the use in a way that invalidates the results of the check.","type":"weakness","status":"Incomplete","abstraction":"Base","likelihoodOfExploit":"Medium","url":"https://cwe.mitre.org/data/definitions/367.html"},{"id":"CWE-770","name":"Allocation of Resources Without Limits or Throttling","description":"The product allocates a reusable resource or group of resources on behalf of an actor without imposing any intended restrictions on the size or number of resources that can be allocated.","type":"weakness","status":"Incomplete","abstraction":"Base","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/770.html"}],"affected":[{"vendor":"cloudreve","product":"cloudreve","name":"cloudreve","label":"cloudreve","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 4.18.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 4.18.0","eol":null,"hubHref":"/vendor/cloudreve/cloudreve"},{"vendor":"github.com/cloudreve","product":"Cloudreve","name":"github.com/cloudreve/Cloudreve","label":"Cloudreve","ecosystem":"Go","cpePart":null,"purl":"pkg:golang/github.com/cloudreve/Cloudreve","purlType":"golang","versions":[{"text":"All versions","noFixRecorded":true,"fixedIn":null}],"versionsText":"All versions (No fix recorded)","eol":null,"hubHref":null},{"vendor":"github.com/cloudreve/Cloudreve","product":"v3","name":"github.com/cloudreve/Cloudreve/v3","label":"v3","ecosystem":"Go","cpePart":null,"purl":"pkg:golang/github.com/cloudreve/Cloudreve/v3","purlType":"golang","versions":[{"text":"All versions","noFixRecorded":true,"fixedIn":null}],"versionsText":"All versions (No fix recorded)","eol":null,"hubHref":null},{"vendor":"github.com/cloudreve/Cloudreve","product":"v4","name":"github.com/cloudreve/Cloudreve/v4","label":"v4","ecosystem":"Go","cpePart":null,"purl":"pkg:golang/github.com/cloudreve/Cloudreve/v4","purlType":"golang","versions":[{"text":"< 4.0.0-20260715025621-7329602751c0","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 4.0.0-20260715025621-7329602751c0","eol":null,"hubHref":null}],"affectedCount":4,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://github.com/cloudreve/cloudreve/security/advisories/GHSA-xj3h-wwxq-gfcj","label":"github.com/cloudreve/cloudreve/security/advisories/GHSA-xj3h-wwxq-gfcj","hostname":"github.com","tags":["X Refsource CONFIRM","WEB","Advisory"]},{"url":"https://github.com/cloudreve/cloudreve/commit/7329602751c00bb4136fe9ad8b364d0df70773df","label":"github.com/cloudreve/cloudreve/commit/7329602751c00bb4136fe9ad8b364d0df70773df","hostname":"github.com","tags":["X Refsource MISC","WEB"]},{"url":"https://github.com/cloudreve/cloudreve/releases/tag/4.18.0","label":"github.com/cloudreve/cloudreve/releases/tag/4.18.0","hostname":"github.com","tags":["X Refsource MISC","WEB"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-77633","label":"nvd.nist.gov/vuln/detail/CVE-2026-77633","hostname":"nvd.nist.gov","tags":["Advisory"]},{"url":"https://github.com/cloudreve/cloudreve","label":"github.com/cloudreve/cloudreve","hostname":"github.com","tags":["PACKAGE"]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":[]},"timeline":[{"kind":"published","date":"2026-09-22T15:28:56.700Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2026-09-25T23:38:53.232Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":28,"level":"medium","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-22T12:45:28.353Z","stale":false,"partial":false}}