{"schemaVersion":3,"id":"CVE-2025-69198","aliases":[],"status":"published","duplicateOf":null,"title":"Pterodactyl's improper resource locking allows raced queries to create more resources than alloted","description":"Pterodactyl is a free, open-source game server management panel. Pterodactyl implements rate limits that are applied to the total number of resources (e.g. databases, port allocations, or backups) that can exist for an individual server. These resource limits are applied on a per-server basis, and validated during the request cycle. However, in versions prior to 1.12.0, it is possible for a malicious user to send a massive volume of requests at the same time that would create more resources than the server is allotted. This is because the validation occurs early in the request cycle and does not lock the target resource while it is processing. As a result sending a large volume of requests at the same time would lead all of those requests to validate as not using any of the target resources, and then all creating the resources at the same time. As a result a server would be able to create more databases, allocations, or backups than configured. A malicious user is able to deny resources to other users on the system, and may be able to excessively consume the limited allocations for a node, or fill up backup space faster than is allowed by the system. Version 1.12.0 fixes the issue.","dates":{"published":"2026-01-19T19:05:38.530Z","modified":"2026-01-20T20:05:30.610Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":6.5,"severity":"medium","version":"3.1","versionLabel":"v3.1","source":"NVD","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","computed":false,"selection":"backend-summary"},"metrics":[{"version":"4.0","versionLabel":"v4.0","source":"CVE.org","score":6,"severity":"medium","vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:L","exploitability":null,"impact":null,"computed":false},{"version":"4.0","versionLabel":"v4.0","source":"NVD","score":6,"severity":"medium","vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:L/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":6.5,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.00247,"percentile":0.15099,"severity":"low","asOf":"2026-10-22T00:00:00.000Z","change":{"pp":0.005000000000000013,"baselineDate":"2026-09-22T00:00:00.000Z","baselineScore":0.00242},"history":[{"date":"2026-09-14T00:00:00.000Z","score":0.00225,"percentile":null},{"date":"2026-09-15T00:00:00.000Z","score":0.00225,"percentile":null},{"date":"2026-09-16T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-09-17T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-09-18T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-09-19T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00247,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00247,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00247,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00247,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00247,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00247,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.00247,"percentile":null},{"date":"2026-10-22T00:00:00.000Z","score":0.00247,"percentile":0.15099}],"last30":[{"date":"2026-09-22T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00242,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00247,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00247,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00247,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00247,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00247,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00247,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.00247,"percentile":null},{"date":"2026-10-22T00:00:00.000Z","score":0.00247,"percentile":0.15099}]},"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-400","name":"Uncontrolled Resource Consumption","description":"The product does not properly control the allocation and maintenance of a limited resource.","type":"weakness","status":"Draft","abstraction":"Class","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/400.html"},{"id":"CWE-413","name":"Improper Resource Locking","description":"The product does not lock or does not correctly lock a resource when the product must have exclusive access to the resource.","type":"weakness","status":"Draft","abstraction":"Base","likelihoodOfExploit":null,"url":"https://cwe.mitre.org/data/definitions/413.html"},{"id":"CWE-667","name":"Improper Locking","description":"The product does not properly acquire or release a lock on a resource, leading to unexpected resource state changes and behaviors.","type":"weakness","status":"Draft","abstraction":"Class","likelihoodOfExploit":null,"url":"https://cwe.mitre.org/data/definitions/667.html"}],"affected":[{"vendor":"pterodactyl","product":"panel","name":"panel","label":"panel","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 1.12.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 1.12.0","eol":null,"hubHref":"/vendor/pterodactyl/panel"}],"affectedCount":1,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://github.com/pterodactyl/panel/security/advisories/GHSA-jw2v-cq5x-q68g","label":"github.com/pterodactyl/panel/security/advisories/GHSA-jw2v-cq5x-q68g","hostname":"github.com","tags":["X Refsource CONFIRM","Vendor Advisory"]},{"url":"https://github.com/pterodactyl/panel/commit/09caa0d4995bd924b53b9a9e9b4883ac27bd5607","label":"github.com/pterodactyl/panel/commit/09caa0d4995bd924b53b9a9e9b4883ac27bd5607","hostname":"github.com","tags":["X Refsource MISC","Patch"]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":[]},"timeline":[{"kind":"published","date":"2026-01-19T19:05:38.530Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2026-01-20T20:05:30.610Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":26,"level":"medium","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-22T18:44:23.725Z","stale":false,"partial":false}}