flask-session-captcha is a package which allows users to extend Flask by adding an image based captcha stored in a server side session.
The captcha.validate()
function would return None
if passed no value (e.g. by submitting a request with an empty form).
If implementing users were checking the return value to be False, the captcha verification check could be bypassed.
Sample vulnerable code:
if captcha.validate() == False:
... # abort
else:
... # do stuff
A new version (1.2.1) is available that fixes the issue.
Users can workaround the issue by not explicitly checking that the value is False.
Checking the return value less explicitly should still work.
if not captcha.validate():
... # abort
else:
... # do stuff
if captcha.validate():
... # do stuff
else:
... # abort
https://github.com/Tethik/flask-session-captcha/pull/27
If you have any questions or comments about this advisory:
github.com/pypa/advisory-database/tree/main/vulns/flask-session-captcha/PYSEC-2022-193.yaml
github.com/Tethik/flask-session-captcha
github.com/Tethik/flask-session-captcha/commit/2811ae23a38d33b620fb7a07de8837c6d65c13e4
github.com/Tethik/flask-session-captcha/pull/27
github.com/Tethik/flask-session-captcha/releases/tag/v1.2.1
github.com/Tethik/flask-session-captcha/security/advisories/GHSA-7r87-cj48-wj45
nvd.nist.gov/vuln/detail/CVE-2022-24880