{"id":"CVE-2022-31177","aliases":["EUVD-2022-0104","GHSA-32ff-4g79-vgfc","PYSEC-2022-247"],"status":"published","title":"Possible to infer sensitive information through query strings in Flask-AppBuilder","description":"Flask-AppBuilder is an application development framework built on top of Flask python framework. In versions prior to 4.1.3 an authenticated Admin user could query other users by their salted and hashed passwords strings. These filters could be made by using partial hashed password strings. The response would not include the hashed passwords, but an attacker could infer partial password hashes and their respective users. This issue has been fixed in version 4.1.3. Users are advised to upgrade. There are no known workarounds for this issue.","severity":{"version":"3.1","score":2.7,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:N/A:N","level":"low","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.00765,"percentile":0.55747,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-200","CWE-916"],"published":"2022-07-29T22:28:12Z","modified":"2026-10-28T02:31:01Z","fixes":[{"ecosystem":"PyPI","package":"flask-appbuilder","fixed_in":["4.1.3"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"flask-appbuilder","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.1.3"}]}]},{"source":"osv","ecosystem":"PyPI","package":"flask-appbuilder","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.1.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.3rc1"]},{"source":"osv","ecosystem":"PyPI","package":"flask-appbuilder","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.1.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.3rc1"]}],"products":[{"vendor":"dpgaspar","product":"flask-appbuilder"}],"references":[{"url":"https://github.com/dpgaspar/Flask-AppBuilder/security/advisories/GHSA-32ff-4g79-vgfc","tags":["x_refsource_CONFIRM","x_transferred","Third Party Advisory","advisory","web"]},{"url":"https://github.com/dpgaspar/Flask-AppBuilder/releases/tag/v4.1.3","tags":["x_refsource_MISC","x_transferred","Release Notes","Third Party Advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2022-31177","tags":["advisory"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/flask-appbuilder/PYSEC-2022-247.yaml","tags":["web"]},{"url":"https://github.com/advisories/GHSA-32ff-4g79-vgfc"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/31xxx/CVE-2022-31177.json","tags":["advisory"]},{"url":"https://github.com/dpgaspar/Flask-AppBuilder","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2022-31177","title":"Possible to infer sensitive information through query strings in Flask-AppBuilder","description":"Flask-AppBuilder is an application development framework built on top of Flask python framework. In versions prior to 4.1.3 an authenticated Admin user could query other users by their salted and hashed passwords strings. These filters could be made by using partial hashed password strings. The response would not include the hashed passwords, but an attacker could infer partial password hashes and their respective users. This issue has been fixed in version 4.1.3. Users are advised to upgrade. There are no known workarounds for this issue.","status":"published","published":"2022-08-01T19:05:11Z","modified":"2025-04-23T17:56:34.614Z","cvss":[{"version":"3.1","score":2.7,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:N/A:N","level":"low","assessor":"cna"}],"cwes":["CWE-200"],"updated_at":"2026-11-02T14:34:35.615708Z"}],"euvd":[{"id":"EUVD-2022-0104","description":"Flask-AppBuilder is an application development framework built on top of Flask python framework. In versions prior to 4.1.3 an authenticated Admin user could query other users by their salted and hashed passwords strings. These filters could be made by using partial hashed password strings. The response would not include the hashed passwords, but an attacker could infer partial password hashes and their respective users. This issue has been fixed in version 4.1.3. Users are advised to upgrade. There are no known workarounds for this issue.","status":"published","published":"2022-08-01T19:05:11Z","modified":"2025-04-23T17:56:34Z","cvss":[{"version":"3.1","score":2.7,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:N/A:N","level":"low"}],"updated_at":"2026-11-02T20:52:09.919052Z"}],"ghsa":[{"id":"GHSA-32ff-4g79-vgfc","title":"Flask-AppBuilder before v4.1.3 allows inference of sensitive information through query strings","description":"### Impact\nAn authenticated Admin user could craft HTTP requests to filter users by their salted and hashed passwords strings. These filters could be made by using partial hashed password strings. The response would not include the hashed passwords, but an attacker could infer partial password hashes and their respective users.\n\nOnly when using `AUTH_DB` database authentication option.\n\n### Patches\nFixed on 4.1.3\n\n### For more information\nIf you have any questions or comments about this advisory:\n* Open an issue in [example link to repo](http://example.com)\n* Email us at [example email address](mailto:example@example.com)","status":"published","published":"2022-07-29T22:28:12Z","modified":"2025-03-07T19:09:40Z","cvss":[{"version":"3.1","score":2.7,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:N/A:N","level":"low"}],"cwes":["CWE-200","CWE-916"],"updated_at":"2026-11-02T14:38:34.185137Z"}],"nvd":[{"id":"CVE-2022-31177","description":"Flask-AppBuilder is an application development framework built on top of Flask python framework. In versions prior to 4.1.3 an authenticated Admin user could query other users by their salted and hashed passwords strings. These filters could be made by using partial hashed password strings. The response would not include the hashed passwords, but an attacker could infer partial password hashes and their respective users. This issue has been fixed in version 4.1.3. Users are advised to upgrade. There are no known workarounds for this issue.","status":"published","published":"2022-08-01T19:15:08.39Z","modified":"2026-06-17T04:44:58Z","cvss":[{"version":"3.1","score":2.7,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:N/A:N","level":"low","assessor":"secondary"},{"version":"3.1","score":2.7,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:N/A:N","level":"low","assessor":"primary"}],"cwes":["CWE-200"],"updated_at":"2026-11-02T14:07:24.39467Z"}],"osv":[{"id":"CVE-2022-31177","title":"Possible to infer sensitive information through query strings in Flask-AppBuilder","description":"Flask-AppBuilder is an application development framework built on top of Flask python framework. In versions prior to 4.1.3 an authenticated Admin user could query other users by their salted and hashed passwords strings. These filters could be made by using partial hashed password strings. The response would not include the hashed passwords, but an attacker could infer partial password hashes and their respective users. This issue has been fixed in version 4.1.3. Users are advised to upgrade. There are no known workarounds for this issue.","status":"published","published":"2022-08-01T19:05:11Z","modified":"2026-10-28T02:31:01.127288536Z","cvss":[{"version":"3.1","score":2.7,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:N/A:N","level":"low"}],"cwes":["CWE-200"],"updated_at":"2026-11-02T15:44:25.516981Z"},{"id":"GHSA-32ff-4g79-vgfc","title":"Flask-AppBuilder before v4.1.3 allows inference of sensitive information through query strings","description":"### Impact\nAn authenticated Admin user could craft HTTP requests to filter users by their salted and hashed passwords strings. These filters could be made by using partial hashed password strings. The response would not include the hashed passwords, but an attacker could infer partial password hashes and their respective users.\n\nOnly when using `AUTH_DB` database authentication option.\n\n### Patches\nFixed on 4.1.3\n\n### For more information\nIf you have any questions or comments about this advisory:\n* Open an issue in [example link to repo](http://example.com)\n* Email us at [example email address](mailto:example@example.com)","status":"published","published":"2022-07-29T22:28:12Z","modified":"2025-03-07T19:12:54.576183Z","cvss":[{"version":"3.1","score":2.7,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:N/A:N","level":"low"}],"cwes":["CWE-200","CWE-916"],"updated_at":"2026-11-02T15:46:35.050232Z"},{"id":"PYSEC-2022-247","description":"Flask-AppBuilder is an application development framework built on top of Flask python framework. In versions prior to 4.1.3 an authenticated Admin user could query other users by their salted and hashed passwords strings. These filters could be made by using partial hashed password strings. The response would not include the hashed passwords, but an attacker could infer partial password hashes and their respective users. This issue has been fixed in version 4.1.3. Users are advised to upgrade. There are no known workarounds for this issue.","status":"published","published":"2022-08-01T19:15:00Z","modified":"2023-11-08T04:09:28.894172Z","updated_at":"2026-11-02T15:52:53.449407Z"}]}}
