{"id":"CVE-2025-24023","aliases":["EUVD-2025-5564","GHSA-p8q5-cvwx-wvwp","PYSEC-2025-15"],"status":"published","title":"Observable Response Discrepancy in flask-appbuilder","description":"Flask-AppBuilder is an application development framework. Prior to 4.5.3, Flask-AppBuilder allows unauthenticated users to enumerate existing usernames by timing the response time from the server when brute forcing requests to login. This vulnerability is fixed in 4.5.3.","severity":{"version":"3.1","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N","level":"low","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.00332,"percentile":0.26634,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-203","CWE-204"],"published":"2025-03-03T15:25:55Z","modified":"2026-10-28T02:30:55Z","fixes":[{"ecosystem":"PyPI","package":"flask-appbuilder","fixed_in":["4.5.3"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"flask-appbuilder","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.5.3"}]}]},{"source":"osv","ecosystem":"PyPI","package":"flask-appbuilder","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.5.3"}]}],"versions":["0.1.10","0.1.11","0.1.12","0.1.13","0.1.14","0.1.15","0.1.16","0.1.17","0.1.18","0.1.19","0.1.20","0.1.21","0.1.22","0.1.23","0.1.24","0.1.25","0.1.26","0.1.27","0.1.28","0.1.29","0.1.3","0.1.33","0.1.34","0.1.35","0.1.36","0.1.37","0.1.38","0.1.4","0.1.43","0.1.44","0.1.45","0.1.46","0.1.47","0.1.5","0.1.6","0.1.7","0.1.8","0.1.9","0.10.0","0.10.1","0.10.2","0.10.3","0.10.4","0.10.5","0.10.6","0.10.7","0.2.0","0.2.1","0.2.2","0.3.0","0.3.1","0.3.10","0.3.11","0.3.12","0.3.13","0.3.14","0.3.15","0.3.16","0.3.17","0.3.2","0.3.3","0.3.4","0.3.5","0.3.6","0.3.7","0.3.8","0.3.9","0.4.0","0.4.1","0.4.2","0.4.3","0.5.0","0.5.1","0.5.2","0.5.3","0.5.4","0.5.5","0.5.6","0.6.1","0.6.10","0.6.11","0.6.12","0.6.13","0.6.14","0.6.2","0.6.3","0.6.4","0.6.5","0.6.6","0.6.7","0.6.8","0.6.9","0.7.0","0.7.1","0.7.2","0.7.3","0.7.4","0.7.5","0.7.6","0.7.7","0.7.8","0.8.0","0.8.1","0.8.2","0.8.3","0.8.4","0.8.5","0.9.0","0.9.1","0.9.2","0.9.3","1.0.0","1.0.1","1.1.0","1.1.1","1.1.2","1.1.3","1.10.0","1.11.0","1.11.1","1.12.0","1.12.1","1.12.2","1.12.3","1.12.4","1.12.5","1.13.0","1.13.1","1.2.0","1.2.1","1.3.0","1.3.1","1.3.2","1.3.3","1.3.4","1.3.5","1.3.6","1.3.7","1.4.0","1.4.1","1.4.2","1.4.3","1.4.4","1.4.5","1.4.6","1.4.7","1.5.0","1.6.0","1.6.1","1.6.2","1.6.3","1.7.0","1.7.1","1.8.0","1.8.1","1.9.0","1.9.1","1.9.2","1.9.3","1.9.4","1.9.5","1.9.6","2.0.0","2.1.0","2.1.1","2.1.10","2.1.11","2.1.12","2.1.13","2.1.2","2.1.3","2.1.4","2.1.5","2.1.6","2.1.7","2.1.8","2.1.9","2.2.0","2.2.0rc1","2.2.0rc2","2.2.1","2.2.1rc1","2.2.1rc2","2.2.1rc3","2.2.2","2.2.2rc1","2.2.2rc2","2.2.2rc3","2.2.3","2.2.3rc1","2.2.3rc2","2.2.3rc3","2.2.3rc4","2.2.3rc5","2.2.3rc6","2.2.4","2.2.4rc1","2.3.0","2.3.0rc1","2.3.0rc2","2.3.0rc3","2.3.0rc4","2.3.1","2.3.1rc1","2.3.2","2.3.2rc1","2.3.3","2.3.3rc1","2.3.3rc2","2.3.3rc3","2.3.4","2.3.4rc1","3.0.0","3.0.0rc1","3.0.0rc2","3.0.0rc3","3.0.0rc4","3.0.1","3.0.1rc1","3.1.0","3.1.0rc1","3.1.0rc2","3.1.0rc3","3.1.1","3.1.1rc1","3.1.1rc2","3.1.1rc3","3.2.0","3.2.0rc1","3.2.0rc2","3.2.1","3.2.1rc1","3.2.2","3.2.2rc1","3.2.3","3.2.3rc1","3.2.3rc2","3.3.0","3.3.0rc1","3.3.1","3.3.1rc1","3.3.2","3.3.2rc1","3.3.3","3.3.3rc1","3.3.4","3.3.4rc1","3.4.0","3.4.0rc1","3.4.0rc2","3.4.1","3.4.1rc1","3.4.1rc2","3.4.1rc3","3.4.2","3.4.2rc1","3.4.3","3.4.3rc1","3.4.3rc2","3.4.4","3.4.4rc1","3.4.5","3.4.5rc1","4.0.0","4.0.0rc1","4.0.0rc2","4.0.0rc3","4.0.1rc1","4.1.0","4.1.1","4.1.1rc1","4.1.2","4.1.2rc1","4.1.3","4.1.3rc1","4.1.4","4.1.4rc1","4.1.5","4.1.5rc1","4.1.6","4.1.6rc1","4.1.7rc1","4.2.0","4.2.0rc1","4.2.1","4.2.1rc1","4.2.2rc1","4.3.0","4.3.0rc1","4.3.1","4.3.10","4.3.10rc1","4.3.11","4.3.11rc1","4.3.1rc1","4.3.2","4.3.2rc1","4.3.2rc2","4.3.3","4.3.3rc1","4.3.3rc2","4.3.4","4.3.4rc1","4.3.5","4.3.5rc1","4.3.5rc2","4.3.6","4.3.6rc1","4.3.7","4.3.7rc1","4.3.8","4.3.8rc1","4.3.9","4.3.9rc1","4.4.0","4.4.0rc1","4.4.1","4.4.1rc2","4.5.0","4.5.0rc1","4.5.1","4.5.1rc1","4.5.2","4.5.2rc1","4.5.3rc1"]},{"source":"osv","ecosystem":"PyPI","package":"flask-appbuilder","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.5.3"}]}],"versions":["0.1.10","0.1.11","0.1.12","0.1.13","0.1.14","0.1.15","0.1.16","0.1.17","0.1.18","0.1.19","0.1.20","0.1.21","0.1.22","0.1.23","0.1.24","0.1.25","0.1.26","0.1.27","0.1.28","0.1.29","0.1.3","0.1.33","0.1.34","0.1.35","0.1.36","0.1.37","0.1.38","0.1.4","0.1.43","0.1.44","0.1.45","0.1.46","0.1.47","0.1.5","0.1.6","0.1.7","0.1.8","0.1.9","0.10.0","0.10.1","0.10.2","0.10.3","0.10.4","0.10.5","0.10.6","0.10.7","0.2.0","0.2.1","0.2.2","0.3.0","0.3.1","0.3.10","0.3.11","0.3.12","0.3.13","0.3.14","0.3.15","0.3.16","0.3.17","0.3.2","0.3.3","0.3.4","0.3.5","0.3.6","0.3.7","0.3.8","0.3.9","0.4.0","0.4.1","0.4.2","0.4.3","0.5.0","0.5.1","0.5.2","0.5.3","0.5.4","0.5.5","0.5.6","0.6.1","0.6.10","0.6.11","0.6.12","0.6.13","0.6.14","0.6.2","0.6.3","0.6.4","0.6.5","0.6.6","0.6.7","0.6.8","0.6.9","0.7.0","0.7.1","0.7.2","0.7.3","0.7.4","0.7.5","0.7.6","0.7.7","0.7.8","0.8.0","0.8.1","0.8.2","0.8.3","0.8.4","0.8.5","0.9.0","0.9.1","0.9.2","0.9.3","1.0.0","1.0.1","1.1.0","1.1.1","1.1.2","1.1.3","1.10.0","1.11.0","1.11.1","1.12.0","1.12.1","1.12.2","1.12.3","1.12.4","1.12.5","1.13.0","1.13.1","1.2.0","1.2.1","1.3.0","1.3.1","1.3.2","1.3.3","1.3.4","1.3.5","1.3.6","1.3.7","1.4.0","1.4.1","1.4.2","1.4.3","1.4.4","1.4.5","1.4.6","1.4.7","1.5.0","1.6.0","1.6.1","1.6.2","1.6.3","1.7.0","1.7.1","1.8.0","1.8.1","1.9.0","1.9.1","1.9.2","1.9.3","1.9.4","1.9.5","1.9.6","2.0.0","2.1.0","2.1.1","2.1.10","2.1.11","2.1.12","2.1.13","2.1.2","2.1.3","2.1.4","2.1.5","2.1.6","2.1.7","2.1.8","2.1.9","2.2.0","2.2.0rc1","2.2.0rc2","2.2.1","2.2.1rc1","2.2.1rc2","2.2.1rc3","2.2.2","2.2.2rc1","2.2.2rc2","2.2.2rc3","2.2.3","2.2.3rc1","2.2.3rc2","2.2.3rc3","2.2.3rc4","2.2.3rc5","2.2.3rc6","2.2.4","2.2.4rc1","2.3.0","2.3.0rc1","2.3.0rc2","2.3.0rc3","2.3.0rc4","2.3.1","2.3.1rc1","2.3.2","2.3.2rc1","2.3.3","2.3.3rc1","2.3.3rc2","2.3.3rc3","2.3.4","2.3.4rc1","3.0.0","3.0.0rc1","3.0.0rc2","3.0.0rc3","3.0.0rc4","3.0.1","3.0.1rc1","3.1.0","3.1.0rc1","3.1.0rc2","3.1.0rc3","3.1.1","3.1.1rc1","3.1.1rc2","3.1.1rc3","3.2.0","3.2.0rc1","3.2.0rc2","3.2.1","3.2.1rc1","3.2.2","3.2.2rc1","3.2.3","3.2.3rc1","3.2.3rc2","3.3.0","3.3.0rc1","3.3.1","3.3.1rc1","3.3.2","3.3.2rc1","3.3.3","3.3.3rc1","3.3.4","3.3.4rc1","3.4.0","3.4.0rc1","3.4.0rc2","3.4.1","3.4.1rc1","3.4.1rc2","3.4.1rc3","3.4.2","3.4.2rc1","3.4.3","3.4.3rc1","3.4.3rc2","3.4.4","3.4.4rc1","3.4.5","3.4.5rc1","4.0.0","4.0.0rc1","4.0.0rc2","4.0.0rc3","4.0.1rc1","4.1.0","4.1.1","4.1.1rc1","4.1.2","4.1.2rc1","4.1.3","4.1.3rc1","4.1.4","4.1.4rc1","4.1.5","4.1.5rc1","4.1.6","4.1.6rc1","4.1.7rc1","4.2.0","4.2.0rc1","4.2.1","4.2.1rc1","4.2.2rc1","4.3.0","4.3.0rc1","4.3.1","4.3.10","4.3.10rc1","4.3.11","4.3.11rc1","4.3.1rc1","4.3.2","4.3.2rc1","4.3.2rc2","4.3.3","4.3.3rc1","4.3.3rc2","4.3.4","4.3.4rc1","4.3.5","4.3.5rc1","4.3.5rc2","4.3.6","4.3.6rc1","4.3.7","4.3.7rc1","4.3.8","4.3.8rc1","4.3.9","4.3.9rc1","4.4.0","4.4.0rc1","4.4.1","4.4.1rc2","4.5.0","4.5.0rc1","4.5.1","4.5.1rc1","4.5.2","4.5.2rc1","4.5.3rc1"]}],"products":[{"vendor":"dpgaspar","product":"flask-appbuilder"}],"references":[{"url":"https://github.com/dpgaspar/Flask-AppBuilder/security/advisories/GHSA-p8q5-cvwx-wvwp","tags":["x_refsource_CONFIRM","Vendor Advisory","advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2025-24023","tags":["advisory"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/flask-appbuilder/PYSEC-2025-15.yaml","tags":["web"]},{"url":"https://github.com/advisories/GHSA-p8q5-cvwx-wvwp"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/24xxx/CVE-2025-24023.json","tags":["advisory"]},{"url":"https://github.com/dpgaspar/Flask-AppBuilder","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2025-24023","title":"Observable Response Discrepancy in flask-appbuilder","description":"Flask-AppBuilder is an application development framework. Prior to 4.5.3, Flask-AppBuilder allows unauthenticated users to enumerate existing usernames by timing the response time from the server when brute forcing requests to login. This vulnerability is fixed in 4.5.3.","status":"published","published":"2025-03-03T15:25:55.437Z","modified":"2025-03-03T18:41:23.427Z","cvss":[{"version":"3.1","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N","level":"low","assessor":"cna"}],"cwes":["CWE-204"],"updated_at":"2026-11-02T14:32:43.770144Z"}],"euvd":[{"id":"EUVD-2025-5564","description":"Flask-AppBuilder is an application development framework. Prior to 4.5.3, Flask-AppBuilder allows unauthenticated users to enumerate existing usernames by timing the response time from the server when brute forcing requests to login. This vulnerability is fixed in 4.5.3.","status":"published","published":"2025-03-03T15:25:55Z","modified":"2025-03-03T18:41:23Z","cvss":[{"version":"3.1","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N","level":"low"}],"updated_at":"2026-11-02T20:53:18.061162Z"}],"ghsa":[{"id":"GHSA-p8q5-cvwx-wvwp","title":"Flask-AppBuilder Observable Response Discrepancy","description":"### Impact\nUser enumeration in database authentication in Flask-AppBuilder \u003c= 4.5.3 and werkzeug \u003e= 3.0.0. Allows for a non authenticated user to enumerate existing usernames by timing the response time from the server when brute forcing requests to login.\n\n### Patches\n\nUpgrade to flask-appbuilder\u003e=4.5.3\n\n### Workarounds\nDowngrade werkzeug to \u003c3.0.0\n\n### References\n_Are there any links users can visit to find out more?_","status":"published","published":"2025-03-03T15:26:03Z","modified":"2025-04-09T20:01:42Z","cvss":[{"version":"3.1","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N","level":"low"}],"cwes":["CWE-204"],"updated_at":"2026-11-02T14:38:38.344711Z"}],"nvd":[{"id":"CVE-2025-24023","description":"Flask-AppBuilder is an application development framework. Prior to 4.5.3, Flask-AppBuilder allows unauthenticated users to enumerate existing usernames by timing the response time from the server when brute forcing requests to login. This vulnerability is fixed in 4.5.3.","status":"published","published":"2025-03-03T16:15:41.82Z","modified":"2026-06-17T08:57:54.45Z","cvss":[{"version":"3.1","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N","level":"low","assessor":"secondary"},{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-204","CWE-203"],"updated_at":"2026-11-02T14:10:52.398004Z"}],"osv":[{"id":"CVE-2025-24023","title":"Observable Response Discrepancy in flask-appbuilder","description":"Flask-AppBuilder is an application development framework. Prior to 4.5.3, Flask-AppBuilder allows unauthenticated users to enumerate existing usernames by timing the response time from the server when brute forcing requests to login. This vulnerability is fixed in 4.5.3.","status":"published","published":"2025-03-03T15:25:55.437Z","modified":"2026-10-28T02:30:55.36664357Z","cvss":[{"version":"3.1","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N","level":"low"}],"cwes":["CWE-204"],"updated_at":"2026-11-02T15:44:47.009967Z"},{"id":"GHSA-p8q5-cvwx-wvwp","title":"Flask-AppBuilder Observable Response Discrepancy","description":"### Impact\nUser enumeration in database authentication in Flask-AppBuilder \u003c= 4.5.3 and werkzeug \u003e= 3.0.0. Allows for a non authenticated user to enumerate existing usernames by timing the response time from the server when brute forcing requests to login.\n\n### Patches\n\nUpgrade to flask-appbuilder\u003e=4.5.3\n\n### Workarounds\nDowngrade werkzeug to \u003c3.0.0\n\n### References\n_Are there any links users can visit to find out more?_","status":"published","published":"2025-03-03T15:26:03Z","modified":"2026-09-10T03:49:48.433021837Z","cvss":[{"version":"3.1","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N","level":"low"}],"cwes":["CWE-204"],"updated_at":"2026-11-02T15:46:52.891208Z"},{"id":"PYSEC-2025-15","description":"Flask-AppBuilder is an application development framework. Prior to 4.5.3, Flask-AppBuilder allows unauthenticated users to enumerate existing usernames by timing the response time from the server when brute forcing requests to login. This vulnerability is fixed in 4.5.3.","status":"published","published":"2025-03-03T16:15:41Z","modified":"2025-04-09T17:59:13.715799Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N","level":"medium"}],"updated_at":"2026-11-02T15:52:54.242332Z"}]}}
