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-XHW7-JHMP-J62J

GHSA-XHW7-JHMP-J62J: Malicious 'dnp3times' Crate Exfiltrates Secrets via Typosquatting

Alon Barad
Alon Barad
Software Engineer

Mar 5, 2026·4 min read·22 visits

Executive Summary (TL;DR)

Malicious Rust crate 'dnp3times' found on crates.io. It scans for and steals .env files, sending secrets to an attacker-controlled server masquerading as timeapi.io. Developers who installed this package must rotate all exposed credentials immediately.

The Rust package 'dnp3times' was identified as a malicious component within the crates.io ecosystem, designed to execute a supply chain attack against developers. Published on March 4, 2026, the package utilized typosquatting to deceive users into installing it. Upon execution, the crate attempted to locate sensitive `.env` configuration files and exfiltrate their contents to a remote server controlled by the attacker. The exfiltration traffic was obfuscated to resemble legitimate requests to `timeapi.io`.

Vulnerability Overview

The dnp3times crate is a malicious software package published to the Rust package registry, crates.io. Identified by the Rust Security Response Working Group under ID RUSTSEC-2026-0032, this package mimics legitimate libraries through typosquatting, specifically targeting developers working with DNP3 (Distributed Network Protocol) or time synchronization utilities.

Unlike vulnerabilities resulting from coding errors, this incident represents a deliberate supply chain attack. The package contains embedded malicious logic designed to compromise the confidentiality of the host system immediately upon installation or execution. The primary objective of the malware is the theft of sensitive environment variables and credentials stored in development configuration files.

Technical Analysis: Exfiltration Mechanism

The core malicious functionality of dnp3times involves a file system scanner and a network exfiltration routine. Upon execution—likely triggered during the build process (build.rs) or runtime usage—the code recursively searches the current working directory and parent directories for files named .env. These files typically contain high-value secrets such as database connection strings, API keys, and cloud provider credentials.

Once a .env file is located, the malware reads its contents and prepares a payload for exfiltration. The network activity is designed to evade simple traffic analysis. The advisory indicates that the destination server is configured to impersonate timeapi.io, a legitimate time synchronization service. By mimicking requests to a known public API, the attacker attempts to blend malicious traffic with benign background noise, reducing the likelihood of detection by intrusion detection systems (IDS) or firewall logs monitoring for anomalous endpoints.

Campaign Context and Attribution

This incident is not isolated but appears to be part of a broader campaign targeting the Rust ecosystem. Security researchers linked the behavior of dnp3times to previously identified malicious packages, specifically time_calibrator and time_calibrators. The recurrence of specific tactics—targeting time-related functionality and impersonating time APIs—suggests a persistent threat actor refining their tooling.

The attack vector relies on social engineering via typosquatting. The name dnp3times is likely derived from dnp3 (a popular protocol library) combined with time, anticipating that developers might mistype a dependency name or search for time-handling extensions for the DNP3 protocol. This technique exploits the trust developers place in package registries and the often-automated nature of dependency resolution.

Impact Assessment

The successful execution of dnp3times results in a total compromise of the development environment's secrets. Because .env files are the standard mechanism for injecting secrets into applications during development, they often contain production or staging credentials that grant broad access to backend infrastructure.

If the malware runs within a Continuous Integration/Continuous Deployment (CI/CD) pipeline, the impact escalates significantly. Automated build runners frequently possess privileged access tokens to cloud environments (e.g., AWS, Azure, GCP) or deployment targets. Exfiltration in this context could allow the attacker to pivot from the build environment to live infrastructure, potentially leading to data breaches or persistence within the organization's network.

Detection and Remediation

Detection of this compromise requires examining Cargo.lock files for the presence of the dnp3times dependency. Network logs should be audited for outbound traffic to endpoints that resemble timeapi.io but resolve to unexpected IP addresses or exhibit anomalous payload sizes inconsistent with simple time synchronization requests.

Remediation must go beyond simply removing the package. Because the malware's primary function is credential theft, any secret present in .env files on a machine where dnp3times was installed must be considered public. Developers must rotate all API keys, database passwords, and service tokens immediately. Additionally, affected systems should be wiped and rebuilt to ensure no persistence mechanisms (such as crontabs or modified binaries) remain.

Technical Appendix

CVSS Score
Critical/ 10

Affected Systems

Rust Development EnvironmentsCI/CD Pipelines running Rust buildsSystems with 'dnp3times' installed

Affected Versions Detail

Product
Affected Versions
Fixed Version
dnp3times
crates.io
*Removed
AttributeDetail
CWECWE-506 (Embedded Malicious Code)
Attack VectorNetwork (Supply Chain)
ImpactConfidentiality Loss (Critical)
PlatformRust / crates.io
Malware TypeInfo Stealer / Dropper
StatusPackage Removed

MITRE ATT&CK Mapping

T1567Exfiltration Over Web Service
Exfiltration
T1036.003Masquerading: Rename System Utilities
Defense Evasion
T1552.001Unsecured Credentials: Credentials In Files
Credential Access

Vulnerability Timeline

Malicious package 'dnp3times' published to crates.io
2026-03-04
Package identified as malicious and removed from registry
2026-03-04
GitHub Security Advisory published
2026-03-05

References & Sources

  • [1]GitHub Advisory GHSA-XHW7-JHMP-J62J
  • [2]RUSTSEC-2026-0032 Advisory

More Reports

•about 8 hours ago•CVE-2026-115895
8.8

CVE-2026-115895: Code Injection via Unsanitized Import Alias in Happy DOM ECMAScript Module Compiler

CVE-2026-115895 is a high-severity code injection vulnerability (CWE-94) in the happy-dom npm package prior to version 21.0.4. The vulnerability exists within the ECMAScriptModuleCompiler component, which transforms ECMAScript module syntax into executable Node.js functions when JavaScript evaluation is enabled. Due to an incomplete fix for CVE-2026-33943, the compiler failed to validate local named import aliases against legal JavaScript identifier rules. Attackers supplying crafted module imports—specifically utilizing destructuring default initializers alongside JSON module attributes—can inject arbitrary JavaScript expressions directly into the host Node.js runtime context.

Amit Schendel
Amit Schendel
4 views•10 min read
•about 9 hours ago•CVE-2026-115883
6.0

CVE-2026-115883: Cross-Namespace Access via Dot-Delimited Labels in LangGraph Postgres and SQLite Stores

An improper input validation and authorization bypass vulnerability exists in the LangGraph storage layer affecting langgraph, langgraph-checkpoint-postgres, and langgraph-checkpoint-sqlite. Because relational store implementations serialize namespace tuples into dot-delimited strings without validating labels on read, search, delete, and batch operations, an attacker who controls a namespace label can inject periods (.) to traverse namespace boundaries and access, modify, or delete data belonging to other namespaces.

Amit Schendel
Amit Schendel
4 views•9 min read
•about 10 hours ago•CVE-2026-115886
6.5

CVE-2026-115886: Unauthenticated Server-Side Request Forgery and Unsafe Reflection in MLflow Scorer Evaluation Endpoints

CVE-2026-115886 (GHSA-2wqp-q3c6-ccj5) is a Server-Side Request Forgery (SSRF) and Unsafe Reflection vulnerability in MLflow versions 3.12.0rc0 prior to 3.17.0. Unauthenticated REST API endpoints accept serialized third-party scorer JSON payloads that are dynamically deserialized and reflectively instantiated without sanitizing constructor keyword arguments. When optional dependencies such as trulens and trulens-providers-litellm are installed, attackers can inject egress-steering arguments into the scorer payload, forcing the MLflow server to dispatch outbound HTTP requests to arbitrary internal destinations or cloud metadata services.

Alon Barad
Alon Barad
5 views•10 min read
•about 11 hours ago•CVE-2026-113872
7.5

CVE-2026-113872: Unauthenticated Process Crash in Express Multer via Late Busboy Stream Resumption

CVE-2026-113872 (GHSA-q7qp-rjg7-q26m) is a high-severity denial-of-service vulnerability affecting the multer multipart/form-data upload middleware for Node.js and Express in versions 2.0.0 through 2.4.0. When an endpoint is configured to accept multiple files using an asynchronous fileFilter callback, a crafted, truncated multipart HTTP request can trigger an unhandled error event on the underlying busboy stream parser after request teardown has already completed. Because all error listeners are stripped during teardown, Node.js treats the resulting error event as an uncaught exception and immediately terminates the server process.

Amit Schendel
Amit Schendel
6 views•12 min read
•about 12 hours ago•CVE-2026-115897
2.1

CVE-2026-115897: Cross-Site Scripting via Function Body Boundary Bypass in serialize-javascript

CVE-2026-115897 (also tracked as GHSA-m5mm-p8h7-m29v and aliased as CVE-2026-115754) is a Cross-Site Scripting (XSS) vulnerability in the Yahoo serialize-javascript npm package prior to version 7.1.3. The flaw exists in the regular expression used by escapeFunctionBody() to neutralize HTML script closing tags within serialized JavaScript functions. Because function bodies are sanitized in isolation before structural formatting is applied, a function whose string representation terminates directly with the sequence '</script' bypasses the positive lookahead check. When combined with serialization formatting options that introduce whitespace delimiters and a subsequent property that supplies a closing bracket, an attacker can prematurely terminate an enclosing HTML <script> block and inject arbitrary HTML or JavaScript into the rendered document.

Amit Schendel
Amit Schendel
6 views•13 min read
•about 13 hours ago•CVE-2026-109841
5.9

CVE-2026-109841: Subresource Integrity Verification Bypass in Node.js Undici

CVE-2026-109841 is a Subresource Integrity (SRI) verification bypass vulnerability in undici, the official HTTP/1.1 and HTTP/2 client library for Node.js that powers the global fetch() implementation. The flaw stems from improper handling of case sensitivity (CWE-178) when validating cryptographic hash algorithm tokens within SRI metadata. Because undici compared incoming algorithm identifiers against a strictly lowercase set without prior ASCII-lowercase normalization, valid uppercase or mixed-case tokens such as SHA256- or Sha384- were treated as unrecognized algorithms and discarded. Under SRI forward-compatibility rules, discarding all provided tokens results in an empty integrity list, causing undici to fail open and accept tampered HTTP response bodies without cryptographic verification.

Alon Barad
Alon Barad
7 views•9 min read