home.social

#fuzzer — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #fuzzer, aggregated by home.social.

  1. pysource-codegen is well on its way to becoming a perfect . This means it will be capable of generating EVERY possible Python construct, but it will NOT generate invalid python code.

    The fuzzer with no mercy 😄

  2. AFL++ v4.40c release - best performance ever - optimal hidden coverage instrumentation, FrameShift, LLVM 22 support, IJON fixes, a lot of minor and bigger enhancements! #fuzzer #fuzzing github.com/AFLplusplus/AFLplus

  3. AFL++ v4.40c release - best performance ever - optimal hidden coverage instrumentation, FrameShift, LLVM 22 support, IJON fixes, a lot of minor and bigger enhancements! #fuzzer #fuzzing github.com/AFLplusplus/AFLplus

  4. AFL++ v4.40c release - best performance ever - optimal hidden coverage instrumentation, FrameShift, LLVM 22 support, IJON fixes, a lot of minor and bigger enhancements! #fuzzer #fuzzing github.com/AFLplusplus/AFLplus

  5. AFL++ v4.40c release - best performance ever - optimal hidden coverage instrumentation, FrameShift, LLVM 22 support, IJON fixes, a lot of minor and bigger enhancements! #fuzzer #fuzzing github.com/AFLplusplus/AFLplus

  6. AFL++ v4.40c release - best performance ever - optimal hidden coverage instrumentation, FrameShift, LLVM 22 support, IJON fixes, a lot of minor and bigger enhancements! #fuzzer #fuzzing github.com/AFLplusplus/AFLplus

  7. Published my first PyPI package today, called lafleur.

    #lafleur is a specialized CPython JIT fuzzer that uses a coverage-guided, evolutionary approach. It executes test cases, observes their effect on the JIT's state by analyzing verbose trace logs, and uses that feedback to guide its mutations, becoming smarter at finding interesting code paths over time.

    Let me know if you use it or have any questions.

    pypi.org/project/lafleur/
    github.com/devdanzin/lafleur

    #Python #CPython #fuzzer #fuzzing #JIT

  8. AFL++ 4.35c release! Complete hidden coverage gathering, GUIFuzz++ support, IJON for qemu, various fixes! github.com/AFLplusplus/AFLplus #fuzzing #fuzzer

  9. There's a researcher, Jiang Yuancheng, who's doing a great work finding CPython crashes and memory leaks: github.com/python/cpython/issu

    They've come up with a very clever idea for a new way of fuzzing, made a fine tool out of it, and are reaping great results.

    Fuzzing can be a diminishing returns endeavor: you only have so many bugs to find. Their approach has shown itself to cover different areas and kinds of issues well, as shown by their track record.

    #CPython #Python #Fuzzer #Fuzzing #fusil

  10. It turns out that, by running it on an interpreter with ASan enabled, I was the culprit of my fuzzer lafleur using way too much memory.

    That even led to me buying some DDR5 to be able to fuzz a bit more comfortably. Running without ASan reduces memory usage to 1/15. So I guess now I'll have some spare RAM, and less money, going forward :)

    I'll enhance the JIT fuzzer to run on a different interpreter than the fuzzing scripts, which benefit from ASan.

    #lafleur #Python #CPython #fuzzer #fuzzing

  11. So someone found a segfault in NumPy and reported it as a security bug: huntr.com/bounties/49928a2c-c6. After some back and forth, the NumPy developers agreed it was a security bug (with a low score, but still).

    However, since fusil had already found that crash and I had reported it 2 months earlier (github.com/numpy/numpy/issues/), the report was deemed a duplicate and no CVE was assigned.

    We didn't find a CVE, but avoided one :)

    Link to fix: github.com/numpy/numpy/pull/30

    #fusil #fuzzer #fuzzing #numpy #python

  12. Fuzzing pyhacl (codeberg.org/drlazor8/pyhacl), a package of Cython bindings for HACL* (the High Assurance Cryptographic Library), with fusil we only found one crash.

    It turned out to actually be a silly bug in #Cython:

    Issue: github.com/cython/cython/issue

    Fix: github.com/cython/cython/pull/

    Goes to show how fuzzing a C-extension can uncover crashes in many different layers.

    Thanks @drlazor8 for taking up the call for C-extensions maintainers to fuzz their code.

    #fusil #Python #pyhacl #hacl #fuzzing #fuzzer

  13. Fuzzing pyhacl (codeberg.org/drlazor8/pyhacl), a package of Cython bindings for HACL* (the High Assurance Cryptographic Library), with fusil we only found one crash.

    It turned out to actually be a silly bug in #Cython:

    Issue: github.com/cython/cython/issue

    Fix: github.com/cython/cython/pull/

    Goes to show how fuzzing a C-extension can uncover crashes in many different layers.

    Thanks @drlazor8 for taking up the call for C-extensions maintainers to fuzz their code.

    #fusil #Python #pyhacl #hacl #fuzzing #fuzzer

  14. Fuzzing pyhacl (codeberg.org/drlazor8/pyhacl), a package of Cython bindings for HACL* (the High Assurance Cryptographic Library), with fusil we only found one crash.

    It turned out to actually be a silly bug in #Cython:

    Issue: github.com/cython/cython/issue

    Fix: github.com/cython/cython/pull/

    Goes to show how fuzzing a C-extension can uncover crashes in many different layers.

    Thanks @drlazor8 for taking up the call for C-extensions maintainers to fuzz their code.

    #fusil #Python #pyhacl #hacl #fuzzing #fuzzer

  15. Fuzzing pyhacl (codeberg.org/drlazor8/pyhacl), a package of Cython bindings for HACL* (the High Assurance Cryptographic Library), with fusil we only found one crash.

    It turned out to actually be a silly bug in #Cython:

    Issue: github.com/cython/cython/issue

    Fix: github.com/cython/cython/pull/

    Goes to show how fuzzing a C-extension can uncover crashes in many different layers.

    Thanks @drlazor8 for taking up the call for C-extensions maintainers to fuzz their code.

    #fusil #Python #pyhacl #hacl #fuzzing #fuzzer

  16. Fuzzing pyhacl (codeberg.org/drlazor8/pyhacl), a package of Cython bindings for HACL* (the High Assurance Cryptographic Library), with fusil we only found one crash.

    It turned out to actually be a silly bug in #Cython:

    Issue: github.com/cython/cython/issue

    Fix: github.com/cython/cython/pull/

    Goes to show how fuzzing a C-extension can uncover crashes in many different layers.

    Thanks @drlazor8 for taking up the call for C-extensions maintainers to fuzz their code.

    #fusil #Python #pyhacl #hacl #fuzzing #fuzzer

  17. After a pause, we're back to running fusil. This time, to fuzz cereggii, a package of very interesting thread synchronization utilities for #Python, made of C-extensions.

    We tailored #fusil to target these #cereggii utilities, finding more issues.

    Daniele Parmeggiani (dpdani), the maintainer, has been helping in the effort and being very supportive. That's the best welcome fusil has received in any project :)

    Here are the issues we found: github.com/dpdani/cereggii/iss

    #CPython #fuzzing #fuzzer

  18. Been running a fusil campaign for a week, targeting a C-extension. The fuzzer has found 9 issues so far, feels good.

    The maintainer is helping with the campaign and eager to fix the issues, which is great.

    Some maintainers see us with suspicion and often disregard issues, as if we're after accolades, pointing fingers or complaining about the code.

    We fuzz to help, that's all.

    Anyway, if you have a C-extension and would like it fuzzed, hit me up :)

    #fusil #Python #CPython #fuzzing #fuzzer

  19. I ran the #ELF #parser of #sydbox over 60k #Linux #malware samples from #Virusshare and 40k orcs which are malformed elves generated by the Melkor ELF #Fuzzer and got no crashes. The parser is written in #rustlang. It's free from unsafe code and arithmetic side effects. Syd parses ELF at exec(3) and mmap(2) boundary to perform various restrictions for binaries such as PIE and non-executable stack. #exherbo #security

  20. lafleur, the CPython JIT fuzzer, now can compare timings for running a piece of code with JIT on and off.

    The idea is that if the run with JIT on is much slower that with JIT off, we have found a performance bug.

    Brandt Bucher suggested this mode. It took a while to get started on it, but it was simple to implement on top of Differential Mode.

    So many modes, so little compute available...

    #lafleur #JIT #fuzzing #fuzzer #CPython #Python

  21. Differential Mode has just landed in lafleur, the CPython JIT fuzzer. It runs the same code with and without the JIT, compares the result, and flags any discrepancies.

    It does this while mutating the code in a feedback-guided loop, so it evolves the fuzzing scripts trying to find one where the JIT gives wrong results.

    This is actually the 2nd time this feature is implemented (now better and more robust): it used to work, broke, and now is back.

    #lafleur #JIT #fuzzing #fuzzer #CPython #Python

  22. AFL++ v4.34c release - IJON support, UnicornAFL v3, LLVM 22 support, enhanced CMPLOG, bug fixes :-) github.com/AFLplusplus/AFLplus #afl #fuzzing #fuzzer

  23. Posted a topic about lafleur, the CPython JIT fuzzer I'm developing: discuss.python.org/t/introduci

    It has many details about the project, the results (4 JIT crashes so far), calls for help and ideas for the future.

    If any of this interests you, please give a read. Boosts welcome :)

    #lafleur #fusil #Python #fuzzer #fuzzing #CPython #JIT

  24. Preparing a post about lafleur, the CPython JIT fuzzer I develop.

    It has found 4 JIT crashes so far:
    #136996: "JIT: `executor->vm_data.valid` assertion failure in `unlink_executor`".
    #137007: "JIT: assertion failure in _PyObject_GC_UNTRACK".
    #137728: "Assertion failure or `SystemError` in `_PyEval_EvalFrameDefault` in a JIT build".
    #137762: "Assertion failure in `optimize_uops` in a JIT build".

    Contributions welcome!

    github.com/search?q=repo%3Apyt

    #Python #CPython #fuzzer #fuzzing #lafleur #JIT

  25. Here's how lafleur works:

    Starts from a corpus of seed files (generated by fusi)l. It runs each file and parses the JIT debug output to record micro ops (UOPs) and edges between them.

    Then it applies mutations to these files and when a mutation results in a new UOP or edge, it adds the mutated file to the corpus.

    All the while, it monitors the execution of these files for crashes.

    And it's smart about which file to mutate next.

    Simple, eh?

    #Python #CPython #fuzzer #fuzzing #fusil #lafleur

  26. One obvious thing from fuzzing the CPython JIT with the lafleur fuzzer is that finding crashes is much lower probability than fuzzing CPython with fusil.

    Whenever fusil found a crash, it would find hits for it again and again pretty quickly.

    With lafleur, we only got 3 hits (2 issues) in thousands of fuzzing hours.

    I'm throwing more compute at it, but maybe we'll need to improve the core ideas to get better results.

    github.com/devdanzin/lafleur

    #Python #CPython #fuzzer #fuzzing #fusil #lafleur

  27. Reviewed the 3 PRs we got for lafleur: github.com/devdanzin/lafleur/p

    All 3 marked as "good first issue". They've clear signs of being created by or with help from AI, like tentative code ("# do this in case... ") and removing docstrings.

    Merged one and gave feedback on 2, including tips on how to get AI to fix their issues.

    I might get unfollows for this, but I welcome AI generated code as long as it's good enough. In fact, AI made this project viable.

    #Python #fuzzer #fuzzing #fusil #lafleur #AI

  28. Busy day, good day: the new CPython fuzzer lafleur found its first 2 crashes this morning!

    Happiness only marred by the bad job I did reducing the testcases and making the reports reproducible. Thanks Brandt Bucher and and Ken Jin for the patience! Next bug reports will be more polished and reliable.

    Also, we got 3 new PRs for the fuzzer but I didn't have time to review them, will have to leave that for tomorrow.

    github.com/devdanzin/lafleur/

    #Python #CPython #fuzzer #fuzzing #fusil #lafleur

  29. Launching a new project on a Sunday night: lafleur, a CPython JIT fuzzer.

    github.com/devdanzin/lafleur

    It's a feedback driven fuzzer (using JIT debug output) with corpus prioritization and JIT-targeted AST-based mutations. Calling it "evolutionary" may be a stretch, but sounds good.

    It's also a fuzzer that so far hasn't found any crashes or bugs. Still working on that ;)

    If you want to understand how it works, there is a good amount of docs.

    #Python #CPython #lafleur #fusil #Fuzzer #Fuzzing #JIT

  30. Trying real hard to build a fuzzer targeting the CPython JIT, lots of features implemented but not a single crash or bug discovered so far.

    Such is life when hunting for crashes in robust code.

    This weekend I'll be spinning off a new fuzzer that grew from fusil. Wish me luck 🙂

    #Python #CPython #JIT #Fuzzer #Fuzzing #fusil #lafleur

  31. AFL++ v4.33c released! Instrumentation of hidden edges (+5% edges), better syncing, corner case features, bug fixes :-) github.com/AFLplusplus/AFLplus #afl #fuzzer #fuzzing

  32. So, what's next for fuzzing CPython with fusil?

    The results point to interesting future ideas, including expanding fuzzing to new environments like subinterpreters, using more tools like Thread Sanitizer, and developing more advanced fuzzing techniques.

    A huge thank you to everyone who contributed!

    And thank you for reading!

    P.S.: if you have a C/Rust extension, we can fuzz it too: mastodon.social/@danzin/114383

    (5/5)

    #Python #CPython #fuzzing #fuzzer #fusil

  33. One finding I really like is the bug discovery pattern.

    There wasn't a steady stream of bugs, but spikes of findings: 1st, a huge number of crashes as I started testing a CPython that hadn't been fuzzed by fusil in a decade.

    Later, a new wave of issues tied to the addition of new features to the fuzzer, like support for "weird classes" and typing objects.

    So periodic campaigns may have better cost-benefit than continuous fuzzing.

    (4/5)

    #Python #CPython #fuzzing #fuzzer #fusil

  34. The credit for fusil's effective design goes all to Victor Stinner (@vstinner), who created it nearly two decades ago. It was responsible for finding release blockers way back in 2008. I just contributed a little to revive and enhance it.

    Some enhancements included running generated code in threads and adopting new "interesting" objects and values as inputs, helping to discover more crashes.

    (3/5)

    #Python #CPython #fuzzing #fuzzer #fusil

  35. All this was only possible due to the great response from the Python community.

    Thanks to the developers efforts to triage, diagnose, and fix the problems, the campaign became a collaborative effort to improve Python.

    The impact was considerable, mobilizing Core Devs and contributors to create 98 PRs to fix these bugs. The average time to fix an issue was about 20 days, with a median of just five days.

    (2/5)

    #Python #CPython #fuzzing #fuzzer #fusil

  36. Happy to share the results of a fuzzing campaign targeting CPython that ran from Oct 2024 to May 2025. Using the fusil fuzzer, the goal was to find crashes and improve CPython's robustness.

    I really like the results we got: the effort uncovered 52 unique crash-related issues. These reports approached 30% of all "type-crash" issues filed during that period. One of the crashes was classified as a Release Blocker, that was a nice result! :)

    (1/5)

    #Python #CPython #fuzzing #fuzzer #fusil

  37. So, my technical report on fuzzing CPython with fusil is almost done.

    I'd really appreciate some help categorizing the found issues by relevance/severity/importance or any other name for impact.

    Do you have the chops to help with that? And do you have time and interest? Please get in touch if so! And please boost if you can :)

    A plot, some tables, links to the report and some discussion are available in this thread:

    discuss.python.org/t/feedback-

    #Python #CPython #fuzzing #fuzzer #fusil

  38. 🚀✨ In a groundbreaking announcement, #Jepsen reveals that systems are *gasp* difficult to test in the most obvious places—cue the #fuzzer blind spots conspiracy 🤔. But don't worry, they've got #Kyl on the case, so sleep easy knowing your #bugs will continue thriving in the shadows 🐛🔍.
    tigerbeetle.com/blog/2025-06-0 #testing #blindspots #innovation #HackerNews #ngated

  39. 🚀✨ In a groundbreaking announcement, #Jepsen reveals that systems are *gasp* difficult to test in the most obvious places—cue the #fuzzer blind spots conspiracy 🤔. But don't worry, they've got #Kyl on the case, so sleep easy knowing your #bugs will continue thriving in the shadows 🐛🔍.
    tigerbeetle.com/blog/2025-06-0 #testing #blindspots #innovation #HackerNews #ngated

  40. 🚀✨ In a groundbreaking announcement, #Jepsen reveals that systems are *gasp* difficult to test in the most obvious places—cue the #fuzzer blind spots conspiracy 🤔. But don't worry, they've got #Kyl on the case, so sleep easy knowing your #bugs will continue thriving in the shadows 🐛🔍.
    tigerbeetle.com/blog/2025-06-0 #testing #blindspots #innovation #HackerNews #ngated

  41. 🚀✨ In a groundbreaking announcement, #Jepsen reveals that systems are *gasp* difficult to test in the most obvious places—cue the #fuzzer blind spots conspiracy 🤔. But don't worry, they've got #Kyl on the case, so sleep easy knowing your #bugs will continue thriving in the shadows 🐛🔍.
    tigerbeetle.com/blog/2025-06-0 #testing #blindspots #innovation #HackerNews #ngated

  42. Trying to gather feedback/opinions, especially from #CPython Core Developers, on the recent #fuzzing campaign using #fusil.

    discuss.python.org/t/feedback-

    I'm writing a little tech report on the effort, and having some data about whether it's considered useful, a nuisance, impactful, low value etc. would make it much more interesting.

    Please boost for visibility :)

    #Python #fuzzer

  43. Do you maintain or contribute to a #Python package that includes a C extension? Would you like to run a fuzzer against it?

    If so, let me know and I will run it, or help you to get it running.

    The fuzzer is #fusil, which generates random code calling into your functions and methods. It's useful to check for crashes on invalid inputs or unexpected call patterns.

    It has found about 50 crashes in #CPython, 20 in #PyPy, 6 in #Numpy etc.

    #fuzzing #fuzzer #testing
    See here:
    github.com/devdanzin/fusil/iss

  44. We're up to 30 #CPython crashers found using #Fusil this year, about 90% of them considered valid.

    In 2008, I had reported 5 cases using the same #fuzzer, 4 of which were release blockers.

    @vstinner, Fusil's creator, also reported a bunch of issues with it.

    After running for a while (on free AWS and Oracle cloud tiers), crash hits are getting harder to find.

    We need new fuzzing inputs. Feel free to suggest improvements that could find new crashers.

    github.com/devdanzin/fusil
    #Python #Fuzzing

  45. Boffins from ETH Zurich have devised a novel #fuzzer for finding bugs in #RISCV chips and have used it to find more than three dozen.
    When applied to six actual RISC-V #CPU#VexRiscv, #PicoRV32, #Kronos, #CVA6, Rocket, and BOOM – Cascade found 37 new bugs (translating to 29 #CVE) in five of these six designs. theregister.com/2023/10/24/cas

  46. I'm super proud of my student @lremes who just defended his Bachelor's Thesis. It's a distributed #fuzzer, Hopper, and he got it running with up to 240 distributed process on #CloudLab. It's been great working with him for the last few years.

    We'll get his thesis posted soon, but Hopper is already up on github: github.com/Cybergenik/hopper

  47. is a web .

    DIRB is a program that exhaustively checks if a website has hidden resources. DIRB performs checks using wordlists, and checks each and every word in the list to see if it possibly exists. If a directory is found DIRB will recursively search the directory once its parent is finished being scanned.

    Website 🔗️: dirb.sourceforge.net/

    apt 📦️: dirb