VYPR
Medium severity4.8NVD Advisory· Published May 3, 2024· Updated Apr 15, 2026

CVE-2024-34062

CVE-2024-34062

Description

tqdm is an open source progress bar for Python and CLI. Any optional non-boolean CLI arguments (e.g. --delim, --buf-size, --manpath) are passed through python's eval, allowing arbitrary code execution. This issue is only locally exploitable and had been addressed in release version 4.66.3. All users are advised to upgrade. There are no known workarounds for this vulnerability.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
tqdmPyPI
>= 4.4.0, < 4.66.34.66.3

Patches

1
4e613f84ed2a

Merge pull request from GHSA-g7vv-2v7x-gj9p

https://github.com/tqdm/tqdmCasper da Costa-LuisMay 2, 2024via ghsa
1 file changed · +22 11
  • tqdm/cli.py+22 11 modified
    @@ -21,23 +21,34 @@ def cast(val, typ):
                     return cast(val, t)
                 except TqdmTypeError:
                     pass
    -        raise TqdmTypeError(val + ' : ' + typ)
    +        raise TqdmTypeError(f"{val} : {typ}")
     
         # sys.stderr.write('\ndebug | `val:type`: `' + val + ':' + typ + '`.\n')
         if typ == 'bool':
             if (val == 'True') or (val == ''):
                 return True
    -        elif val == 'False':
    +        if val == 'False':
                 return False
    -        else:
    -            raise TqdmTypeError(val + ' : ' + typ)
    -    try:
    -        return eval(typ + '("' + val + '")')
    -    except Exception:
    -        if typ == 'chr':
    -            return chr(ord(eval('"' + val + '"'))).encode()
    -        else:
    -            raise TqdmTypeError(val + ' : ' + typ)
    +        raise TqdmTypeError(val + ' : ' + typ)
    +    if typ == 'chr':
    +        if len(val) == 1:
    +            return val.encode()
    +        if re.match(r"^\\\w+$", val):
    +            return eval(f'"{val}"').encode()
    +        raise TqdmTypeError(f"{val} : {typ}")
    +    if typ == 'str':
    +        return val
    +    if typ == 'int':
    +        try:
    +            return int(val)
    +        except ValueError as exc:
    +            raise TqdmTypeError(f"{val} : {typ}") from exc
    +    if typ == 'float':
    +        try:
    +            return float(val)
    +        except ValueError as exc:
    +            raise TqdmTypeError(f"{val} : {typ}") from exc
    +    raise TqdmTypeError(f"{val} : {typ}")
     
     
     def posix_pipe(fin, fout, delim=b'\\n', buf_size=256,
    

Vulnerability mechanics

Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

10

News mentions

0

No linked articles in our index yet.