CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



GHSA-5PMP-JPCF-PWX6

GHSA-5PMP-JPCF-PWX6: Malicious Rust Crate 'tracing-check' Targeting Polymarket Developers

Amit Schendel
Amit Schendel
Senior Security Researcher

Mar 2, 2026·4 min read·26 visits

Executive Summary (TL;DR)

The 'tracing-check' crate on crates.io contained malicious code designed to steal credentials from Polymarket developers. Published on Feb 24, 2026, it used a 'build.rs' execution vector to exfiltrate environment variables. Developers with this dependency must rotate all secrets immediately.

A critical supply chain vulnerability involving the malicious Rust crate 'tracing-check', identified in February 2026. This crate, published to the crates.io registry, employed typosquatting techniques to mimic legitimate components of the 'tracing' ecosystem. Its primary objective was the exfiltration of sensitive credentials and private keys from developers utilizing the Polymarket Client SDK. The incident highlights the growing trend of targeted attacks against decentralized finance (DeFi) infrastructure through package repository manipulation.

Vulnerability Overview

On February 24, 2026, the Rust security team identified and removed the crate tracing-check from the crates.io registry. This package was flagged as malware, specifically designed to compromise the development environments of engineers building on the Polymarket platform. The crate was available for approximately four hours before being taken down, during which time it posed a severe risk to any developer who inadvertently included it as a dependency.

The attack methodology relied on typosquatting and social engineering. The name tracing-check was calculated to appear as a legitimate utility or extension of the widely used tracing crate, a standard framework for instrumenting Rust programs. By leveraging a plausible name, the attackers aimed to trick developers into adding the dependency—either through manual error (typing the wrong name) or by assuming it was a valid helper library for their logging infrastructure.

While the download count remained low due to the rapid response, the targeted nature of the malware—specifically focusing on the polymarket-client-sdk ecosystem—indicates a sophisticated threat actor seeking financial gain through cryptocurrency theft rather than untargeted vandalism.

Supply Chain Mechanics

The core of this vulnerability lies in the trust model of package managers like Cargo. When a Rust crate is added to a project, it can execute code at two distinct phases: during compilation (via build.rs scripts) and during runtime. The tracing-check crate leveraged these mechanisms to achieve code execution immediately upon the victim attempting to build their project.

Typosquatting Strategy

Attackers exploited the cognitive load of developers. The tracing ecosystem is vast, with many legitimate sub-crates (e.g., tracing-subscriber, tracing-appender). tracing-check fits the nomenclature of a linting or verification tool for tracing spans. This camouflage reduced the likelihood of scrutiny during code reviews or dependency audits.

Execution Vector

The malicious payload was likely embedded in the build.rs file. In Rust, build.rs is compiled and executed before the main package is built to handle native dependencies or code generation. By placing the malicious logic here, the attackers ensured that mere compilation—often triggered automatically by IDEs or CI/CD pipelines—was sufficient to compromise the host. No explicit function call in the main application logic was required to trigger the exploit.

Malicious Code Analysis

Although the specific source code was removed from the registry, analysis of the campaign reveals the functional behavior of the malware. The payload was engineered to perform Credential Access (T1552) followed by Exfiltration (T1041).

Credential Scaping

The malware scanned the victim's environment for sensitive variables. Given the targeting of Polymarket, the code specifically searched for patterns related to Ethereum wallets and API authentication. Targeted variables likely included:

  • POLYMARKET_PRIVATE_KEY
  • ETHEREUM_PRIVATE_KEY
  • MNEMONIC
  • AWS or cloud provider credentials typically found in build environments.

Exfiltration Logic

Upon locating potential secrets, the malicious code constructed an HTTP payload. Standard Rust libraries (or included dependencies) were used to transmit this data to an attacker-controlled Command and Control (C2) server. The exfiltration often occurs over HTTPS to blend in with legitimate build traffic (e.g., fetching dependencies).

> [!NOTE] > The use of build.rs for exfiltration is particularly dangerous because it bypasses runtime sandboxes and often runs with the full privileges of the user invoking cargo build.

Campaign Context & Related Threats

The tracing-check incident was not an isolated event but part of a coordinated campaign identified as RUSTSEC-2026-0019. Security researchers linked this crate to other malicious packages targeting the same ecosystem, including:

  • polymarkets-client-sdk: A direct typosquat of the official SDK.
  • polymarket-client-sdks: Pluralization typosquat.
  • finch-rust: Exhibited similar credential exfiltration behavior.
  • sha-rust: Likely a trojanized utility crate.

This pattern suggests an attacker systematically seeding the registry with traps for developers working in the decentralized prediction market space. The simultaneous deployment of direct SDK typosquats and utility typosquats (tracing-check) indicates a multi-pronged strategy to maximize the surface area of the attack.

Impact Assessment

The impact of this vulnerability is Critical for any affected entity, despite the limited distribution window. The primary consequence is the total compromise of secret material utilized in the development environment.

Financial Risk

For developers working with the Polymarket SDK, the compromised environment variables often contain private keys holding real assets (USDC, ETH) or managing prediction market positions. Successful exfiltration allows the attacker to drain these wallets immediately or manipulate market positions.

Operational Integrity

Beyond direct financial theft, the compromise of API keys could allow attackers to disrupt services, poison data streams, or pivot further into the victim's cloud infrastructure if cloud credentials were also exposed in the environment context.

Technical Appendix

CVSS Score
Critical/ 10

Affected Systems

Rust Development EnvironmentsCI/CD Pipelines building Rust projectsPolymarket SDK Integrations

Affected Versions Detail

Product
Affected Versions
Fixed Version
tracing-check
crates.io
*N/A (Removed)
AttributeDetail
Attack VectorSupply Chain (Typosquatting)
CVSSCritical (Malicious Code)
PlatformRust / crates.io
TargetPolymarket SDK Developers
Exploit StatusActive / Weaponized
Advisory IDGHSA-5PMP-JPCF-PWX6

MITRE ATT&CK Mapping

T1195.002Supply Chain Compromise: Compromise Software Dependencies
Initial Access
T1552Unsecured Credentials
Credential Access
T1041Exfiltration Over C2 Channel
Exfiltration

Vulnerability Timeline

Malicious crate 'tracing-check' published to crates.io
2026-02-24
Crates.io team identifies and removes the crate (approx 4 hours later)
2026-02-24
Advisories RUSTSEC-2026-0019 and GHSA-5PMP-JPCF-PWX6 published
2026-02-24
Campaign linked to Polymarket targeting
2026-02-26

References & Sources

  • [1]GHSA-5PMP-JPCF-PWX6 Advisory
  • [2]RUSTSEC-2026-0019 Advisory
  • [3]OSV Record RUSTSEC-2026-0019
  • [4]Rust Blog: Malicious Crate Policy

More Reports

•44 minutes ago•GHSA-534H-C3CW-V3H9
5.5

GHSA-534h-c3cw-v3h9: Local Information Disclosure via Abstract-Namespace Socket in Nuxt Dev Server

A local security vulnerability in the Nuxt development server (nuxt dev) allows local unprivileged users to access sensitive configuration files and source code. On Linux environments running Node.js 20+, Nuxt bound its internal vite-node IPC server to an abstract-namespace Unix socket without any peer authentication, enabling co-resident local users to connect and request module code directly.

Amit Schendel
Amit Schendel
1 views•5 min read
•about 1 hour ago•GHSA-8RFP-98V4-MMR6
0.0

GHSA-8RFP-98V4-MMR6: Protocol-Filtering Bypass via Unicode Obfuscation in Mozilla Bleach

Mozilla Bleach is an open-source HTML sanitizing library for Python. Versions up to and including 6.3.0 contain an incomplete filtering implementation in the URI validation logic ('sanitize_uri_value'). This logic fails to detect disallowed protocols, such as 'javascript:', if they contain Unicode invisible characters, whitespace characters, or characters with a code point greater than U+00A0. While standard-compliant web browsers do not directly execute invalid URI schemes containing these non-standard characters, downstream systems that normalize Unicode text by stripping invisible or non-ASCII characters can unintentionally reactivate the 'javascript:' prefix, causing Cross-Site Scripting (XSS). Additionally, this behavior violates Bleach's core sanitization contract by outputting URIs that bypass protocol allowlists configured by the caller.

Amit Schendel
Amit Schendel
2 views•7 min read
•about 2 hours ago•GHSA-G75F-G53V-794X
4.3

GHSA-G75F-G53V-794X: CPU Exhaustion via Unbounded Email Regular Expression Scanning in Bleach

An uncontrolled resource consumption vulnerability exists in the Python package Bleach when parsing text to linkify email addresses. When `parse_email=True` is enabled, the regular expression engine is forced into a quadratic-time complexity scan on specially crafted payloads lacking an '@' symbol. This causes immediate CPU exhaustion and blocks application server worker processes.

Amit Schendel
Amit Schendel
2 views•6 min read
•about 2 hours ago•GHSA-GR75-JV2W-4656
4.7

GHSA-GR75-JV2W-4656: Path Traversal and Sandbox Escape in LangChain File-Search Middleware and Loaders

A path traversal and sandbox escape vulnerability in LangChain and LangChain-Anthropic Python packages allows unauthenticated local attackers to access files outside the restricted directory via crafted input, symbolic links, or prefix bypasses.

Alon Barad
Alon Barad
2 views•8 min read
•about 3 hours ago•GHSA-M557-WRGG-6RP4
5.8

GHSA-m557-wrgg-6rp4: Server-Side Request Forgery via Authority Information Access (AIA) Chasing in phpseclib

The PHP Secure Communications Library (phpseclib) contains a Server-Side Request Forgery (SSRF) vulnerability due to an insecure default implementation of Authority Information Access (AIA) certificate chasing. This flaw allows remote, unauthenticated attackers to coerce applications validating user-supplied X.509 certificates into generating arbitrary outbound HTTP requests to internal networks or local interfaces.

Amit Schendel
Amit Schendel
3 views•6 min read
•about 3 hours ago•CVE-2026-45491
6.2

CVE-2026-45491: Directory Traversal via Improper Link Resolution in .NET System.Formats.Tar

A directory traversal vulnerability exists in the Microsoft .NET System.Formats.Tar library during archive extraction. When extracting a TAR archive using the TarFile.ExtractToDirectory API, the extraction engine improperly resolves symbolic links prior to file creation, allowing local unauthorized attackers to write or overwrite arbitrary files outside the target directory. This can lead to local tampering, privilege escalation, or arbitrary code execution.

Amit Schendel
Amit Schendel
7 views•6 min read