{"id":23041,"library":"atheris","title":"Atheris","description":"A coverage-guided fuzzer for Python and Python extensions, developed by Google. It integrates with libFuzzer and supports fuzzing Python code and native extensions. Version 3.0.0; released active, follow-on of stable API.","status":"active","version":"3.0.0","language":"python","source_language":"en","source_url":"https://github.com/google/atheris/","tags":["fuzzing","security","testing","libFuzzer","coverage-guided"],"install":[{"cmd":"pip install atheris","lang":"bash","label":"pip install atheris"}],"dependencies":null,"imports":[{"note":"","wrong":null,"symbol":"atheris","correct":"import atheris"},{"note":"","wrong":null,"symbol":"Setup","correct":"from atheris import Setup"},{"note":"","wrong":null,"symbol":"FuzzedDataProvider","correct":"from atheris import FuzzedDataProvider"},{"note":"Deprecated in v3; use FuzzedDataProvider instead","wrong":null,"symbol":"Mutate","correct":"from atheris import Mutate"}],"quickstart":{"code":"import atheris\nimport sys\n\ndef TestOneInput(data):\n    fdp = atheris.FuzzedDataProvider(data)\n    if len(data) >= 2 and data[0] == ord('b') and data[1] == ord('u'):\n        raise RuntimeError('Bug!')\n\natheris.Setup(sys.argv, TestOneInput)\natheris.Fuzz()","lang":"python","description":"Basic fuzzer with FuzzedDataProvider."},"warnings":[{"fix":"Replace any usage of atheris.Mutate with FuzzedDataProvider methods (e.g., ConsumeInt, ConsumeString, etc.).","message":"atheris.Mutate is deprecated in v3. Use FuzzedDataProvider for structured mutation.","severity":"deprecated","affected_versions":">=3.0.0"},{"fix":"Instantiate as FuzzedDataProvider(data) and use its methods.","message":"In v3, the way FuzzedDataProvider is initialized changed. old: atheris.FuzzedDataProvider(data, to_use_bytes) no longer valid.","severity":"breaking","affected_versions":">=3.0.0"},{"fix":"On Linux, ensure clang and libfuzzer-dev are installed. For Windows, use WSL.","message":"atheris requires a recent C++ compiler and libFuzzer support. It may not install on Windows or older Linux. Use manylinux wheels or compile from source.","severity":"gotcha","affected_versions":"all"},{"fix":"Pass a corpus directory to Setup: atheris.Setup(sys.argv, TestOneInput, corpus_prefix='corpus/')","message":"Corpus directory: if not specified, atheris uses default; but crashes saved to current directory. Ensure write permissions.","severity":"gotcha","affected_versions":"all"},{"fix":"Define TestOneInput(data) with a single parameter.","message":"In v2, the TestOneInput function signature was different: it took two arguments (data and size). v3 expects one argument (bytes).","severity":"breaking","affected_versions":">=3.0.0"}],"env_vars":null,"search_vec":"'3.0.0':28 'activ':30 'api':36 'atheri':1 'code':23 'coverag':4,42 'coverage-guid':3,41 'develop':12 'extens':11,26 'follow':32 'follow-on':31 'fuzz':21,37 'fuzzer':6 'googl':14 'guid':5,43 'integr':16 'libfuzz':18,40 'nativ':25 'python':8,10,22 'releas':29 'secur':38 'stabl':35 'support':20 'test':39 'version':27","created_at":"2026-05-01T06:02:06.160783+00:00","updated_at":"2026-05-01T06:02:06.160783+00:00","problems":[{"fix":"Install with pip install atheris. On Linux, install clang and libfuzzer-dev. On macOS, it works. On Windows, use WSL.","cause":"atheris is not installed or not available for the current platform.","error":"ModuleNotFoundError: No module named 'atheris'"},{"fix":"Upgrade atheris: pip install --upgrade atheris, and use from atheris import FuzzedDataProvider.","cause":"Version <3.0.0: FuzzedDataProvider was not available. Or using wrong import path.","error":"ImportError: cannot import name 'FuzzedDataProvider' from 'atheris'"},{"fix":"Change function signature to TestOneInput(data). Use FuzzedDataProvider to extract size if needed.","cause":"User defined TestOneInput with two parameters (data, size) but atheris v3 expects one parameter.","error":"TypeError: TestOneInput() takes 2 positional arguments but 3 were given"},{"fix":"Build/install atheris with the correct sanitizer flags. For pip, ensure clang is installed and libfuzzer-dev is present.","cause":"libFuzzer not found at runtime, typically because compiler not configured with -fsanitize=fuzzer.","error":"RuntimeError: Atheris requires libFuzzer, but it is not available"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":"3.1.0","cli_name":"","cli_version":null,"type":"library","homepage":null,"github":"https://github.com/google/atheris","docs":null,"changelog":null,"pypi":"https://pypi.org/project/atheris/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["testing"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-06-29","last_verified":"2026-06-29","next_check":"2026-07-29","install_tag":null}}