ETW internals for security research and forensics

By Yarden Shafir Why has Event Tracing for Windows (ETW) become so pivotal for endpoint detection and response (EDR) solutions in Windows 10 and 11? The answer lies in the value of the intelligence it provides to security tools through secure ETW channels, which are now also a ta … | Continue reading


@blog.trailofbits.com | 5 months ago

How CISA can improve OSS security

By Jim Miller The US government recently issued a request for information (RFI) about open-source software (OSS) security. In this blog post, we will present a summary of our response and proposed solutions. Some of our solutions include rewriting widely used legacy code in memor … | Continue reading


@blog.trailofbits.com | 5 months ago

Assessing the security posture of a widely used vision model: YOLOv7

By Alvin Crighton, Anusha Ghosh, Suha Hussain, Heidy Khlaaf, and Jim Miller TL;DR: We identified 11 security vulnerabilities in YOLOv7, a popular computer vision framework, that could enable attacks including remote code execution (RCE), denial of service, and model differentials … | Continue reading


@blog.trailofbits.com | 5 months ago

Our audit of PyPI

By William Woodruff This is a joint post with the PyPI maintainers; read their announcement here! This audit was sponsored by the Open Tech Fund as part of their larger mission to secure critical pieces of internet infrastructure. You can read the full report in our Publications … | Continue reading


@blog.trailofbits.com | 5 months ago

Adding build provenance to Homebrew

By William Woodruff This is a joint post with Alpha-Omega—read their announcement post as well! We’re starting a new project in collaboration with Alpha-Omega and OpenSSF to improve the transparency and security of Homebrew. This six-month project will bring cryptographically ver … | Continue reading


@blog.trailofbits.com | 6 months ago

The issue with ATS in Apple’s macOS and iOS

Trail of Bits is publicly disclosing a vulnerability (CVE-2023-38596) that affects iOS versions 10 and later and macOS versions 10.12 and later. The flaw, identified by Will Brattain, resides in Apple’s App Transport Security (ATS) protocol handling. We discovered that Apple’s AT … | Continue reading


@blog.trailofbits.com | 6 months ago

Numbers turned weapons: DoS in Osmosis’ math library

By Sam Alws Trail of Bits is publicly disclosing a vulnerability in the Osmosis chain that allows an attacker to craft a transaction that takes up a disproportionate amount of compute time on Osmosis nodes compared to the amount of gas it consumes. Using the vulnerability, an att … | Continue reading


@blog.trailofbits.com | 6 months ago

Introducing Invariant Development as a Service

Understanding and rigorously testing system invariants are essential aspects of developing robust smart contracts. Invariants are facts about the protocol that should remain true no matter what happens. Defining and testing these invariants allows developers to prevent the introd … | Continue reading


@blog.trailofbits.com | 7 months ago

Pitfalls of relying on eBPF for security monitoring (and some solutions)

By Artem Dinaburg eBPF (extended Berkeley Packet Filter) has emerged as the de facto Linux standard for security monitoring and endpoint observability. It is used by technologies such as BPFTrace, Cilium, Pixie, Sysdig, and Falco due to its low overhead and its versatility. There … | Continue reading


@blog.trailofbits.com | 7 months ago

Don’t overextend your Oblivious Transfer

By Joop van de Pol We found a vulnerability in a threshold signature scheme that allows an attacker to recover the signing key of threshold ECDSA implementations that are based on Oblivious Transfer (OT). A malicious participant of the threshold signing protocols could perform se … | Continue reading


@blog.trailofbits.com | 7 months ago

Security flaws in an SSO plugin for Caddy

By Maciej Domanski, Travis Peters, and David Pokora We identified 10 security vulnerabilities within the caddy-security plugin for the Caddy web server that could enable a variety of high-severity attacks in web applications, including client-side code execution, OAuth replay att … | Continue reading


@blog.trailofbits.com | 7 months ago

Holy Macroni! A recipe for progressive language enhancement

By Brent Pappas Despite its use for refactoring and static analysis tooling, Clang has a massive shortcoming: the Clang AST does not provide provenance information about which CPP macro expansions a given AST node is expanded from; nor does it lower macro expansions down to LLVM … | Continue reading


@blog.trailofbits.com | 8 months ago

Secure your Apollo GraphQL server with Semgrep

By Vasco Franco tl;dr: Our publicly available Semgrep ruleset has nine new rules to detect misconfigurations of versions 3 and 4 of the Apollo GraphQL server. Try them out with semgrep --config p/trailofbits! When auditing several of our clients’ Apollo GraphQL servers, I kept fi … | Continue reading


@blog.trailofbits.com | 8 months ago

iVerify is now an independent company!

We’re proud to announce that iVerify is now an independent company following its four-year incubation at Trail of Bits. Originally developed in-house to ensure that our personal phones, which store data essential to our work and private lives, were secured to the standards of sec … | Continue reading


@blog.trailofbits.com | 8 months ago

The Engineer’s Guide to Blockchain Finality

By Benjamin Samuels Many security-critical off-chain applications use a simple block delay to determine finality: the point at which a transaction becomes immutable in a blockchain’s ledger (and is impossible to “undo” without extreme economic cost). But this is inadequate for mo … | Continue reading


@blog.trailofbits.com | 8 months ago

Can you pass the Rekt test?

One of the biggest challenges for blockchain developers is objectively assessing their security posture and measuring how it progresses. To address this issue, a working group of Web3 security experts, led by Trail of Bits CEO Dan Guido, met earlier this year to create a simple t … | Continue reading


@blog.trailofbits.com | 8 months ago

Use our suite of eBPF libraries

By Artem Dinaburg Trail of Bits has developed a suite of open-source libraries designed to streamline the creation and deployment of eBPF applications. These libraries facilitate efficient process and network event monitoring, function tracing, kernel debug symbol parsing, and eB … | Continue reading


@blog.trailofbits.com | 9 months ago

A mistake in the bulletproofs paper could have led to the theft of millions of dollars

By Jim Miller We discovered a critical vulnerability in Incognito Chain that would allow an attacker to mint arbitrary tokens and drain user funds. Incognito offers confidential transactions through zero-knowledge proofs, so an attacker could have stolen millions of dollars of sh … | Continue reading


@blog.trailofbits.com | 9 months ago

How AI will affect cybersecurity: What we told the CFTC

Dan Guido, CEO The second meeting of the Commodity Futures Trading Commission’s Technology Advisory Committee (TAC) on July 18 focused on the effects of AI on the financial sector. During the meeting, I explained that AI has the potential to fundamentally change the balance betwe … | Continue reading


@blog.trailofbits.com | 9 months ago

The future of Clang-based tooling

By Peter Goodman Clang is a marvelous compiler; it’s a compiler’s compiler! But it isn’t a toolsmith’s compiler. As a toolsmith, my ideal compiler would be an open book, allowing me to get to everywhere from anywhere. The data on which my ideal compiler would operate (files, macr … | Continue reading


@blog.trailofbits.com | 9 months ago

Announcing the Trail of Bits Testing Handbook

By Maciej Domanski Trail of Bits is thrilled to announce the Testing Handbook, the shortest path for developers and security professionals to derive maximum value from the static and dynamic analysis tools we use at Trail of Bits. Why did we create the Testing Handbook? At Trail … | Continue reading


@blog.trailofbits.com | 9 months ago

Fuzzing on-chain contracts with Echidna

By Guillermo Larregay and Elvis Skozdopolj With the release of version 2.1.0 of Echidna, our fuzzing tool for Ethereum smart contracts, we’ve introduced new features for direct retrieval of on-chain data, such as contract code and storage slot values. This data can be used to fuz … | Continue reading


@blog.trailofbits.com | 9 months ago

Trail of Bits’s Response to OSTP National Priorities for AI RFI

By Michael Brown and Heidy Khlaaf The Office of Science and Technology Policy (OSTP) has circulated a request for information (RFI) on how best to develop policies that support the responsible development of AI while minimizing risk to rights, safety, and national security. In ou … | Continue reading


@blog.trailofbits.com | 9 months ago

Evaluating blockchain security maturity

By Josselin Feist, Blockchain Engineering Director Holistic security reviews should reveal far more than simple bugs. Often, these bugs indicate deeper issues that can be challenging to understand and address. Given the time-boxed nature of reviews, security engineers may not hav … | Continue reading


@blog.trailofbits.com | 9 months ago

What we told the CFTC about crypto threats

Dan Guido, CEO In March, I joined the Commodity Futures Trading Commission’s Technology Advisory Committee (TAC), helping the regulatory agency navigate the complexities of cybersecurity risks, particularly in emerging technologies like AI and blockchain. During the committee’s f … | Continue reading


@blog.trailofbits.com | 10 months ago

Differential fuzz testing upgradeable smart contracts with Diffusc

By William E Bodell III (@WEBthe3rd) On March 28, 2023, SafeMoon, a self-styled “community-focused DeFi token” on Binance Smart Chain, lost the equivalent of $8.9 million in Binance Coin BNB to an exploit in a liquidity pool. The exploit leveraged a simple error introduced in an … | Continue reading


@blog.trailofbits.com | 10 months ago

Differential fuzz testing upgradeable smart contracts with Diffusc

By William E Bodell III (@WEBthe3rd) On March 28, 2023, SafeMoon, a self-styled “community-focused DeFi token” on Binance Smart Chain, lost the equivalent of $8.9 million in Binance Coin BNB to an exploit in a liquidity pool. The exploit leveraged a simple error introduced in an … | Continue reading


@blog.trailofbits.com | 10 months ago

Trail of Bits’s Response to NTIA AI Accountability RFC

By Heidy Khlaaf and Artem Dinaburg The National Telecommunications and Information Administration (NTIA) has circulated an Artificial Intelligence (AI) Accountability Policy Request for Comment on what policies can support the development of AI audits, assessments, certifications … | Continue reading


@blog.trailofbits.com | 10 months ago

Finding bugs in C code with Multi-Level IR and VAST

Intermediate languages (IRs) are what reverse engineers and vulnerability researchers use to see the forest for the trees. IRs are used to view programs at different abstraction layers, so that analysis can understand both low-level code aberrations and higher levels of flawed lo … | Continue reading


@blog.trailofbits.com | 10 months ago

Trusted publishing: a new benchmark for packaging security

Read the official announcement on the PyPI blog as well! For the past year, we’ve worked with the Python Package Index to add a new, more secure authentication method called “trusted publishing.” Trusted publishing eliminates the need for long-lived API tokens and passwords, redu … | Continue reading


@blog.trailofbits.com | 11 months ago

Real World Crypto 2023 Recap

Last month, hundreds of cryptographers descended upon Tokyo for the first Real World Crypto Conference in Asia. As in previous years, we dispatched a handful of our researchers and engineers to present and attend the conference. What sets RWC apart from other conferences is that … | Continue reading


@blog.trailofbits.com | 11 months ago

Introducing Windows Notification Facility’s (WNF) Code Integrity

By Yarden Shafir, Senior Security Engineer WNF (Windows Notification Facility) is an undocumented notification mechanism that allows communication inside processes, between processes, or between user mode processes and kernel drivers. Similar to other notification mechanisms like … | Continue reading


@blog.trailofbits.com | 11 months ago

Loose code, sinks nodes: What should governments consider when getting involved with blockchain?

Last September, Principal Security Engineer Dr. Evan Sultanik was on a panel hosted by the Naval Postgraduate School’s Distributed Consensus: Blockchain & Beyond (DC:BB) movement, where faculty and students there are seeking opportunities to learn and share knowledge, research, f … | Continue reading


@blog.trailofbits.com | 1 year ago

Typos that omit security features and how to test for them

By Dominik ‘disconnect3d’ Czarnota During a security audit, I discovered an easy-to-miss typo that unintentionally failed to enable _FORTIFY_SOURCE, which helps detect memory corruption bugs in incorrectly used C functions. We searched, found, and fixed twenty C and C++ bugs on G … | Continue reading


@blog.trailofbits.com | 1 year ago

A Winter’s Tale: Improving messages and types in GDB’s Python API

By Matheus Branco Borella, University of São Paulo As a winter associate at Trail of Bits, my goal was to make two improvements to the GNU Project Debugger (GDB): make it run faster and improve its Python API to support and improve tools that rely on it, like Pwndbg. The main goa … | Continue reading


@blog.trailofbits.com | 1 year ago

How to avoid the aCropalypse

By Henrik Brodin, Lead Security Engineer, Research The aCropalypse is upon us! Last week, news about CVE-2023-21036, nicknamed the “aCropalypse,” spread across Twitter and other media, and I quickly realized that the underlying flaw could be detected by our tool, PolyTracker. I’l … | Continue reading


@blog.trailofbits.com | 1 year ago

Can you pass The Rekt Test?

Audits from Trail of Bits give organizations ways to fix their current issues and provide them with a roadmap to prevent the same security problems from occurring in the future. However, product teams don’t always implement the recommendations. This may be due to a lack of resour … | Continue reading


@blog.trailofbits.com | 1 year ago

Codex (and GPT-4) can’t beat humans on smart contract audits

By Artem Dinaburg, Chief Technology Officer; Josselin Feist, Principal Engineer; and Riccardo Schirone, Security Engineer Is artificial intelligence (AI) capable of powering software security audits? Over the last four months, we piloted a project called Toucan to find out. Touca … | Continue reading


@blog.trailofbits.com | 1 year ago

Circomspect has more passes!

By Fredrik Dahlgren, Principal Security Engineer TL;DR: We have released version 0.8.0 of Circomspect, our static analyzer and linter for Circom. Since our initial release of Circomspect in September 2022, we have added five new analysis passes, support for tags, tuples, and anon … | Continue reading


@blog.trailofbits.com | 1 year ago

We need a new way to measure AI security

Tl;dr: Trail of Bits has launched a practice focused on machine learning and artificial intelligence, bringing together safety and security methodologies to create a new risk assessment and assurance program. This program evaluates potential bespoke risks and determines the neces … | Continue reading


@blog.trailofbits.com | 1 year ago

Reusable properties for Ethereum contracts

As smart contract security constantly evolves, property-based fuzzing has become a go-to technique for developers and security engineers. This technique relies on the creation of code properties – often called invariants – which describe what the code is supposed to do. To help t … | Continue reading


@blog.trailofbits.com | 1 year ago

Escaping well-configured VSCode extensions (for profit)

By Vasco Franco In part one of this two-part series, we escaped Webviews in real-world misconfigured VSCode extensions. But can we still escape extensions if they are well-configured? In this post, we’ll demonstrate how I bypassed a Webview’s localResourceRoots by exploiting smal … | Continue reading


@blog.trailofbits.com | 1 year ago

Escaping misconfigured VSCode extensions

By Vasco Franco TL;DR: This two-part blog series will cover how I found and disclosed three vulnerabilities in VSCode extensions and one vulnerability in VSCode itself (a security mitigation bypass assigned CVE-2022-41042 and awarded a $7,500 bounty). We will identify the underly … | Continue reading


@blog.trailofbits.com | 1 year ago

Readline crime: exploiting a SUID logic bug

By roddux // Rory M I discovered a logic bug in the readline dependency partially reveals file information when parsing the file specified in the INPUTRC environment variable. This could allow attackers to move laterally on a box where sshd is running, a given user is able to log … | Continue reading


@blog.trailofbits.com | 1 year ago

cURL audit: How a joke led to significant findings

By Maciej Domanski 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, al … | Continue reading


@blog.trailofbits.com | 1 year ago

Harnessing the eBPF Verifier

By Laura Bauman 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 … | Continue reading


@blog.trailofbits.com | 1 year ago

Introducing RPC Investigator

A new tool for Windows RPC research By Aaron LeMasters 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 wit … | Continue reading


@blog.trailofbits.com | 1 year ago

Announcing a stable release of sigstore-python

By William Woodruff 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 fund … | Continue reading


@blog.trailofbits.com | 1 year ago