Trail of Bits
Trail of Bits
THE TRAIL OF BITS BLOG

cURL audit: How a joke led to significant findings

In fall 2022, Trail of Bits audited cURL, a widely-used command-line utility that transfers data between a server and supports various protocols. The project coincided with a Trail of Bits maker week, which meant that we had more manpower than we usually do, allowing us to take a nonstandard approach to the […]
Maciej Domański
February 14, 2023
audits fuzzing
READ MORE

Harnessing the eBPF Verifier

During my internship at Trail of Bits, I prototyped a harness that improves the testability of the eBPF verifier, simplifying the testing of eBPF programs. My eBPF harness runs in user space, independently of any locally running kernel, and thus opens the door to testing of eBPF programs across different kernel versions. […]
Laura Bauman
January 19, 2023
ebpf internship-projects
READ MORE

Introducing RPC Investigator

A new tool for Windows RPC research. Trail of Bits is releasing a new tool for exploring RPC clients and servers on Windows. RPC Investigator is a .NET application that builds on the NtApiDotNet platform for enumerating, decompiling/parsing and communicating with arbitrary RPC servers. We’ve added visualization and additional features that offer […]
Aaron LeMasters
January 17, 2023
engineering-practice research-practice
READ MORE

Announcing a stable release of sigstore-python

Read the official announcement on the Sigstore blog as well! Trail of Bits is thrilled to announce the first stable release of sigstore-python, a client implementation of Sigstore that we’ve been developing for nearly a year! This work has been graciously funded by Google’s Open Source Security Team (GOSST), who we’ve also […]
William Woodruff
January 13, 2023
open-source supply-chain ecosystem-security engineering-practice cryptography
READ MORE

Keeping the wolves out of wolfSSL

Trail of Bits is publicly disclosing four vulnerabilities that affect wolfSSL: CVE-2022-38152, CVE-2022-38153, CVE-2022-39173, and CVE-2022-42905. The four issues, which have CVSS scores ranging from medium to critical, can all result in a denial of service (DoS). These vulnerabilities have been discovered automatically using the novel protocol fuzzer tlspuffin. This blog post […]
Max Ammann
January 12, 2023
cryptography fuzzing internship-projects vulnerability-disclosure
READ MORE

Another prolific year of open-source contributions

This time last year, we wrote about the more than 190 Trail of Bits-authored pull requests that were merged into non-Trail of Bits repositories in 2021. In 2022, we continued that trend by having more than 400 pull requests merged into non-Trail of Bits repositories! Why is this significant? While we take […]
Samuel Moelius
January 10, 2023
year-in-review
READ MORE

How to share what you’ve learned from our audits

Trail of Bits recently completed a security review of cURL, which is an amazing and ubiquitous tool for transferring data. We were really thrilled to see cURL founder and lead developer Daniel Stenberg write a blog post about the engagement and the report, and wanted to highlight some important things he pointed […]
Nick Selby
December 22, 2022
audits guides
READ MORE

Fast and accurate syntax searching for C and C++

The naive approach to searching for patterns in source code is to use regular expressions; a better way is to parse the code with a custom parser, but both of these approaches have limitations. During my internship, I prototyped an internal tool called Syntex that does searching on Clang ASTs to avoid […]
Mate Kukri
December 22, 2022
compilers internship-projects
READ MORE

What child is this?

A Primer on Process Reparenting in Windows. Process reparenting is a technique used in Microsoft Windows to create a child process under a different parent process than the one making the call to CreateProcess. Malicious actors can use this technique to evade security products or break process ancestry ties, making detection more […]
Yarden Shafir
December 20, 2022
program-analysis
READ MORE

How I gave ManticoreUI a makeover

During my internship at Trail of Bits, I explored the effectiveness of symbolic execution for finding vulnerabilities in native applications ranging from CTF challenges to popular open source libraries like image parsers, focusing on finding ways to enhance ManticoreUI. It is a powerful tool that improves accessibility to symbolic execution and vulnerability […]
Calvin Fong
December 15, 2022
manticore symbolic-execution
READ MORE

Manticore GUIs made easy

Trail of Bits maintains Manticore, a symbolic execution engine that can analyze smart contracts and native binaries. While symbolic execution is a powerful technique that can augment the vulnerability discovery process, it requires some base domain knowledge and thus has its own learning curve. Given the plethora […]
Wong Kok Rui
December 13, 2022
binary-ninja manticore internship-projects
READ MORE

Hybrid fuzzing: Sharpening the spikes of Echidna

Smart contract fuzzing is an effective bug-finding technique that is largely used at Trail Of Bits during audits. During my internship at Trail of Bits, I contributed to expand our fuzzing capabilities by working on Hybrid Echidna, a “hybrid fuzzer” that couples our smart contract fuzzer, Echidna, with […]
Tom Malcolm
December 08, 2022
fuzzing blockchain
READ MORE

Specialized Zero-Knowledge Proof failures

Zero-knowledge (ZK) proofs are useful cryptographic tools that have seen an explosion of interest in recent years, largely due to their applications to cryptocurrency. The fundamental idea of a ZK proof is that a person with a secret piece of information (a cryptographic key, for instance) can prove something about the secret […]
Opal Wright
November 29, 2022
cryptography vulnerability-disclosure zero-knowledge
READ MORE

ABI compatibility in Python: How hard could it be?

TL;DR: Trail of Bits has developed abi3audit, a new Python tool for checking Python packages for CPython application binary interface (ABI) violations. We’ve used it to discover hundreds of inconsistently and incorrectly tagged package distributions, each of which is a potential source of crashes and exploitable memory corruption due to undetected ABI differences. It’s publicly […]
William Woodruff
November 15, 2022
audits
READ MORE

We’re streamers now

Over the years, we’ve built many high-impact tools that we use for security reviews. You might know some of them, like Slither, Echidna, Amarna, Tealer, and test-fuzz. All of our tools are open source, and we love seeing the community benefit from them. But mastering our tools takes time and practice, and it’s easier if […]
Trail of Bits
November 14, 2022
education events guides press-release slither training zero-knowledge
READ MORE

Look out! Divergent representations are everywhere!

Trail of Bits recently published a blog post about a signed integer overflow in certain versions of SQLite that can enable arbitrary code execution and result in a denial of service. While working on proof-of-concept exploits for that vulnerability, we noticed that the compiler’s representation of an important integer variable is semantically […]
Andreas Kellas
November 10, 2022
binary-ninja codeql internship-projects research-practice
READ MORE

We sign code now

Sigstore announced the general availability of its free and ecosystem-agnostic software signing service two weeks ago, giving developers a way to sign, verify and protect their software projects and the dependencies they rely on. Trail of Bits is absolutely thrilled to be a part of the project, and we spoke about our […]
William Woodruff
November 08, 2022
open-source supply-chain ecosystem-security cryptography
READ MORE

Stranger Strings: An exploitable flaw in SQLite

Trail of Bits is publicly disclosing CVE-2022-35737, which affects applications that use the SQLite library API. CVE-2022-35737 was introduced in SQLite version 1.0.12 (released on October 17, 2000) and fixed in release 3.39.2 (released on July 21, 2022). CVE-2022-35737 is exploitable on 64-bit systems, and exploitability depends on how the program is […]
Andreas Kellas
October 25, 2022
attacks internship-projects vulnerability-disclosure
READ MORE

Porting the Solana eBPF JIT compiler to ARM64

Andrew Haberlandt  During my summer internship at Trail of Bits, I worked on the fork of the RBPF JIT compiler that is used to execute Solana smart contracts. The RBPF JIT compiler plays a critical role on the Solana blockchain, as it facilitates the execution of contracts on validator nodes by default. Before my […]
Andrew Haberlandt
October 12, 2022
blockchain crytic ebpf engineering-practice internship-projects
READ MORE

Working on blockchains as a Trail of Bits intern

Earlier this year, I successfully completed my internship at Trail of Bits and secured a full-time position as a Blockchain Security Analyst. This post is not intended to be a technical description of the work I did during my internship. Rather, it is intended to describe my general experience as a […]
Vara Prasad Bandaru
October 05, 2022
blockchain people static-analysis working-at-trail-of-bits internship-projects
READ MORE

Secure your machine learning with Semgrep

tl;dr: Our publicly available Semgrep ruleset now has 11 rules dedicated to the misuse of machine learning libraries. Try it out now! Picture this: You’ve spent months curating images, trying out different architectures, downloading pretrained models, messing with Kubernetes, and you’re finally ready to ship your sparkling new machine learning (ML) product. […]
Suha Sabi Hussain
October 03, 2022
machine-learning research-practice semgrep static-analysis
READ MORE

It pays to be Circomspect

In October 2019, a security researcher found a devastating vulnerability in Tornado.cash, a decentralized, non-custodial mixer on the Ethereum network. Tornado.cash uses zero-knowledge proofs (ZKPs) to allow its users to privately deposit and withdraw funds. The proofs are supposed to guarantee that each withdrawal can be matched against a […]
Fredrik Dahlgren
September 15, 2022
blockchain cryptography zero-knowledge
READ MORE

Magnifier: An Experiment with Interactive Decompilation

Today, we are releasing Magnifier, an experimental reverse engineering user interface I developed during my internship. Magnifier asks, “What if, as an alternative to taking handwritten notes, reverse engineering researchers could interactively reshape a decompiled program to reflect what they would normally record?” With Magnifier, the decompiled C code isn’t the end—it’s […]
Alan Chang
August 25, 2022
internship-projects program-analysis static-analysis
READ MORE

Using mutants to improve Slither

Improving static analysis tools can be hard; once you’ve implemented a good tool based on a useful representation of a program and added a large number of rules to detect problems, how do you further enhance the tool’s bug-finding power? One (necessary) approach to coming up with new rules […]
Alex Groce
August 17, 2022
static-analysis program-analysis blockchain
READ MORE

The road to the apprenticeship

Finding talent is hard, especially in the blockchain security industry. The space is new, so you won’t find engineers with decades of experience with smart contracts. Training is difficult, as the technology evolves constantly, and online content quickly becomes outdated. There are also a lot of misconceptions about blockchain […]
Josselin Feist
August 12, 2022
people working-at-trail-of-bits careers
READ MORE

    Recent Posts

    • Lack of isolation in agentic browsers resurfaces old vulnerabilities
    • Detect Go’s silent arithmetic bugs with go-panikint
    • Can chatbots craft correct code?
    • Use GWP-ASan to detect exploits in production environments
    • Catching malicious package releases using a transparency log

    JOIN OUR NEWSLETTER

    Categories

    aixcc11 apple13 application-security20 attacks17 audits14 authentication6 benchmarking1 binary-analysis1 binary-ninja15 blockchain97 c/c++3 capture-the-flag12 careers3 codeql8 cold-storage1 compilers35 conferences35 confidential-computing3 containers3 cryptography84 crytic4 cyber-grand-challenge8 darpa31 design-review1 dynamic-analysis14 ebpf6 echidna1 ecosystem-security12 education18 empire-hacking8 engineering-practice25 ethereum1 events8 exploits38 fuzzing51 go12 guides15 internship-projects46 invariant-development3 iverify5 java1 kernel1 kubernetes3 linux9 llvm6 machine-learning49 malware7 manticore17 mcp6 mcsema11 memory-safety3 meta12 mitigations12 mlir2 multi-agent systems1 mutation-testing1 open-source32 operational security1 osquery23 paper-review11 people17 podcast1 policy13 post-quantum1 press-release29 privacy9 products8 program-analysis23 prompt-injection5 recursion1 remote-code-execution1 research-practice44 reversing18 ruby1 rust8 safedocs1 semgrep9 sinter1 slither5 snapshot fuzzing1 sponsorships13 stablecoins1 static-analysis40 supply-chain15 symbolic-execution18 testing handbook6 threat-modeling6 threshold-signatures1 tool-release15 training3 trusted-execution-environment3 vast2 vulnerabilities12 vulnerability-disclosure27 windows3 working-at-trail-of-bits5 year-in-review6 zero-knowledge13

    Archives

    202569 202479 202357 202243 202120 202037 201960 201841 201722 201627 201511 201418 20135 20122
    PREVIOUS
    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    NEXT
    Trail of Bits

    Security for Teams

    Building the Future

    X LinkedIn
    Contact Resources
    Blog Careers
    Mastodon GitHub
    © Trail of Bits 2025. All rights reserved.Privacy PolicyTerms of Service
    © Trail of Bits 2025. All rights reserved.
    2012:2025 0 PX