{"schemaVersion":3,"id":"CVE-2026-49254","aliases":["GHSA-4q9j-6299-gxmr","GO-2026-5901"],"status":"published","duplicateOf":null,"title":null,"description":"Dragonfly is an open source P2P-based file distribution and image acceleration system. Prior to 2.4.4, manager/router/router.go registers GET /api/v1/oauth and GET /api/v1/oauth/:id without jwt.MiddlewareFunc() or RBAC(), while manager/handlers/oauth.go returns models.Oauth records and manager/models/oauth.go exposes Oauth.ClientSecret as client_secret in JSON. When an administrator has configured a GitHub or Google OAuth provider, an unauthenticated network client can reach GetOauth or GetOauths, load the stored models.Oauth record, and obtain the provider's client secret, client identifier, and redirect URL. The earlier GHSA-j8hf-cp34-g4j7 remediation protected the /jobs group only and did not protect these OAuth GET handlers. Disclosure of client_secret can enable abuse of the configured identity-provider integration, subject to the provider's redirect URI restrictions. This issue is fixed in 2.4.4.","dates":{"published":"2026-09-15T14:06:21.309Z","modified":"2026-09-15T18:03:27.313Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":2.9,"severity":"low","version":"4.0","versionLabel":"v4.0","source":"CVE.org","vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:P","computed":false,"selection":"backend-summary"},"metrics":[{"version":"4.0","versionLabel":"v4.0","source":"CVE.org","score":2.9,"severity":"low","vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:P","exploitability":null,"impact":null,"computed":false},{"version":"4.0","versionLabel":"v4.0","source":"OSV · Go","score":6.3,"severity":"medium","vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:P","exploitability":null,"impact":null,"computed":true},{"version":"4.0","versionLabel":"v4.0","source":"NVD","score":2.9,"severity":"low","vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:P/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}]},"epss":{"probability":0.0048,"percentile":0.40136,"severity":"low","asOf":"2026-10-20T00:00:00.000Z","change":{"pp":0.20399999999999996,"baselineDate":"2026-09-20T00:00:00.000Z","baselineScore":0.00276},"history":[{"date":"2026-09-16T00:00:00.000Z","score":0.00276,"percentile":null},{"date":"2026-09-17T00:00:00.000Z","score":0.00276,"percentile":null},{"date":"2026-09-18T00:00:00.000Z","score":0.00276,"percentile":null},{"date":"2026-09-19T00:00:00.000Z","score":0.00276,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.00276,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00276,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00276,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00276,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.0048,"percentile":0.40136}],"last30":[{"date":"2026-09-20T00:00:00.000Z","score":0.00276,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00276,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00276,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00276,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.0048,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.0048,"percentile":0.40136}]},"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-200","name":"Exposure of Sensitive Information to an Unauthorized Actor","description":"The product exposes sensitive information to an actor that is not explicitly authorized to have access to that information.","type":"weakness","status":"Draft","abstraction":"Class","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/200.html"},{"id":"CWE-306","name":"Missing Authentication for Critical Function","description":"The product does not perform any authentication for functionality that requires a provable user identity or consumes a significant amount of resources.","type":"weakness","status":"Draft","abstraction":"Base","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/306.html"}],"affected":[{"vendor":"dragonflyoss","product":"dragonfly","name":"dragonfly","label":"dragonfly","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 2.4.4","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 2.4.4","eol":null,"hubHref":"/vendor/dragonflyoss/dragonfly"},{"vendor":"d7y.io/dragonfly","product":"v2","name":"d7y.io/dragonfly/v2","label":"v2","ecosystem":"Go","cpePart":null,"purl":"pkg:golang/d7y.io/dragonfly/v2","purlType":"golang","versions":[{"text":"< 2.4.4","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 2.4.4","eol":null,"hubHref":null}],"affectedCount":2,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://github.com/dragonflyoss/dragonfly/security/advisories/GHSA-4q9j-6299-gxmr","label":"github.com/dragonflyoss/dragonfly/security/advisories/GHSA-4q9j-6299-gxmr","hostname":"github.com","tags":["X Refsource CONFIRM","WEB","Advisory"]},{"url":"https://github.com/dragonflyoss/dragonfly/commit/20cb2f9cb6372d13c029779f427bdb5ede111183","label":"github.com/dragonflyoss/dragonfly/commit/20cb2f9cb6372d13c029779f427bdb5ede111183","hostname":"github.com","tags":["X Refsource MISC"]},{"url":"https://github.com/dragonflyoss/dragonfly/releases/tag/v2.4.4","label":"github.com/dragonflyoss/dragonfly/releases/tag/v2.4.4","hostname":"github.com","tags":["X Refsource MISC"]},{"url":"https://github.com/dragonflyoss/dragonfly","label":"github.com/dragonflyoss/dragonfly","hostname":"github.com","tags":["PACKAGE"]}],"lineage":{"upstream":[],"downstream":["OPENSUSE-SU-2026:21483-1"],"duplicates":[],"related":["OPENSUSE-SU-2026:21483-1"]},"timeline":[{"kind":"published","date":"2026-09-15T14:06:21.309Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2026-09-15T18:03:27.313Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":12,"level":"low","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-20T19:33:00.187Z","stale":false,"partial":false}}