Category Archives: IoT

CVE-2026-25276: Improper Validation of Array Index in Secure Processor (3rd June 2026)

Preface: The Snapdragon X55’s hardware security architecture, utilizing ARM TrustZone, provides a system-wide, hardware-enforced isolation mechanism designed to protect critical assets by creating a separate “Secure World” (Trusted Execution Environment – TEE).

Background: Industrial IoT manufacturers are using the Snapdragon X55 processor in their industrial 5G cellular gateways to provide secure, high-speed connectivity for industrial customers. What is the connection between CVE-2026-25276 and the industrial sector? The following is a detailed account of the evolution of the cyberattack chain.

Once attackers gain control of the gateway’s local system (e.g., Linux space) via a web interface, they can monitor network traffic but cannot access the most critical assets. This is because the Snapdragon X55’s hardware security architecture (ARM TrustZone) forcibly isolates the following critical data:

• Device root credentials and encryption keys (TLS private keys used for secure communication between the IIoT gateway and the cloud PLC).

• A cryptographic hash of the OEM/Manufacturer’s public key is permanently burned into the Snapdragon X55’s hardware eFuses via Qualcomm’s Fuse-Programmable Read-Only Memory (QFPROM).

Therefore, attackers must launch a second-stage attack, exploiting local vulnerabilities like CVE-2026-25276 to allow code that would normally run on a normal system to arbitrarily corrupt the memory space of the security processor. Once the security processor crashes or is compromised due to out-of-bounds read/write operations, the entire industrial gateway’s “hardware root of trust” is completely destroyed.

Remark: The hardware security architecture does forcibly isolate critical data from the main operating system, but this isolation is achieved via ARM TrustZone.

Security Focus: Please refer to the remedy code in the attached diagram (point 5). The C++ implementation using if-else bounds checking. It uses std::array to prevent dynamic memory fragmentation on your IoT gateway.

Furthermore, it also do the remedy in below circumstances.

•               No try-catch: Fully compatible with embedded toolchains that use -fno-exceptions.

•               Stack Allocated: Uses std::array instead of std::vector, meaning zero heap allocation fragmentation.

•               Defensive Failure Mode: Instead of printing a generic error, it actively stops execution path processing and returns a failure code (-1).

Vulnerability details:

CVE ID – CVE-2026-25276

Title – Improper Validation of Array Index in Secure Processor

Description – Memory corruption while using Strongbox due to missing bounds check.

Technology Area – Secure Processor (Qualcomm)

Vulnerability Type – CWE-129 Improper Validation of Array Index

Official announcement: Please refer to the link for details – https://docs.qualcomm.com/securitybulletin/june-2026-bulletin.html

CVE-2025-29951: AMD R2000, R1000, and Athlon 3000 series staying alert! (28-05-2026)

Preface: You can find Ryzen inside:

  • Industrial IoT Gateways: Factory machines that handle massive amounts of real-time data.
  • Digital Signage & Kiosks: Large public screens and interactive maps in malls or airports.
  • Smart Medical Devices: High-end medical imaging and hospital machines.
  • Automotive AI: Modern digital car cockpits and self-driving machine systems.

AMD Ryzen Embedded R2000 Series Processors are highly capable, power-efficient System-on-Chips (SoCs) frequently leveraged in autonomous driving, mobile robotics, and ADAS (Advanced Driver Assistance Systems). They function primarily as the central compute brains for vehicle sensor data processing and digital cockpit controls.

Background: Normally, a chip doesn’t need to be desoldered to be updated. An administrator (or an attacker) can use a tool like flashrom inside Linux to talk directly to the motherboard’s built-in SPI controller to read or write to the BIOS chip.

Under normal conditions, hardware security rules called System Management Mode (SMM) ROM protections lock down the SPI controller. Even if you have root access in Linux, the hardware will block flashrom from rewriting critical, protected areas of the BIOS.

CVE-2022-23829 is the exact flaw that breaks this safety net:

  • It allows an attacker who already has Ring 0 (kernel-mode / root) access in Linux to bypass that hardware lock.
  • Because of this bypass, tools like flashrom or a custom driver can write untrusted or malicious data directly onto the soldered Flash SPI ROM chip.

Once the attacker uses flashrom method to place the malicious data on the chip, the chain reaction on the left side of your image begins:

1.             The Flash SPI ROM Memory Chip now holds the malicious data.

2.             The AMD Secure Processor (ASP) boots up early and automatically reads this data.

3.             Because of a missing size check (insufficient bounds check), the malicious data overflows the processor’s tiny 256-byte buffer, corrupting the memory.

4.             By the time the Main Host x86 Cores wake up to run the standard boot sequence, the system has already been compromised.

Vulnerability details: The Root Cause of CVE-2025-29951 – Official security analysis from AMD Security Bulletin SB-4013 confirms that CVE-2025-29951 lives inside the early AMD Secure Processor (ASP) bootloader.

When the system boots up, the ASP parses external configuration tables and firmware parameters passed from the SPI flash chip. The bootloader copies an input block into a fixed-size local stack variable but fails to perform a boundary length check. An attacker with local access can pass a malicious, oversized table that spills out of the stack variable, allowing them to hijack the execution flow and escalate system privileges.

Official announcement: Please refer to the link for details – https://nvd.nist.gov/vuln/detail/CVE-2025-29951

https://www.amd.com/en/resources/product-security/bulletin/amd-sb-4013.html

CVE-2026-8836: A vulnerability was found in lwIP up to 2.2.1. (20th May 2026)

Preface: IoT manufacturers are very willing to use lwIP (Lightweight IP) in firmware, and it is widely used in commercial IoT products. It is a dominant TCP/IP stack in the embedded space because it provides a full-featured networking stack (TCP, UDP, DHCP, DNS) while being highly optimized for resource-constrained, low-power devices.

Even though firmware allocate an lwIP pbuf to hold the payload in RAM

[// PBUF_TRANSPORT automatically reserves space for UDP/IP headers]

If your firmware explicitly uses SNMPv3 alongside your Wake-on-LAN feature, you must apply the patch.

Background: Inbound parsing and outbound allocation are two completely different memory directions (see below):

Outbound – When you call pbuf_alloc(PBUF_TRANSPORT, …), you are allocating memory for an outgoing packet. This works perfectly and securely for transmitting your Magic Packet.

Inbound – When an SNMPv3 management command comes into your device, lwIP allocates an incoming pbuf automatically to hold the raw network packet. The vulnerability happens after allocation, during the parsing phase inside snmp_msg[.]c.

Why CVE-2026-8836 Bypasses Pbuf Protection

The flaw is a stack-based buffer overflow, not a pbuf heap overflow.

i.When a remote user sends an SNMPv3 packet, the function snmp_parse_inbound_frame sets up a fixed-size array on the CPU stack called request->msg_authentication_parameters. This buffer is hardcoded to a maximum size of SNMP_V3_MAX_AUTH_PARAM_LENGTH (usually 32 bytes).

ii.The unpatched code uses the variable tlv.value_len (which comes directly from the untrusted incoming packet header) to decide how many bytes to decode into that stack array.

iii.An attacker can craft a malicious SNMPv3 packet stating that the authentication data is 100 bytes long. Because the check was commented out (/* IF_PARSE_ASSERT(…) */), lwIP blindly executes snmp_asn1_dec_raw and writes all 100 bytes into the 32-byte stack buffer, smashing the CPU stack, corrupting the return address, and crashing your chip or allowing remote code execution.

Vulnerability details: A vulnerability was found in lwIP up to 2.2.1. Affected is the function snmp_parse_inbound_frame of the file src/apps/snmp/snmp_msg.c of the component snmpv3 USM Handler. Performing a manipulation of the argument msgAuthenticationParameters results in stack-based buffer overflow. The attack may be initiated remotely.

Remedy: The patch is named 0c957ec03054eb6c8205e9c9d1d05d90ada3898c. It is suggested to install a patch to address this issue.

Official announcement: Please refer to link for details –

https://nvd.nist.gov/vuln/detail/CVE-2026-8836

CVE-2026-46300 (Fragnesia) is a Linux kernel privilege escalation in the XFRM ESP-in-TCP subsystem. Does it affect GX-grade supercomputers? (18th May 2026)

Preface: If BlueField DPU supports configuring IPsec rules using strongSwan 5.9.0bf, does it use kernel IPsec in ARM?

Yes, when using strongSwan 5.9.0bf on the BlueField DPU, it utilizes the Linux kernel IPsec stack (xfrm) running on the ARM cores to manage and configure security associations, which can then be offloaded to the hardware acceleration engines.

Background: The only scenario where a GPU or advanced SoC interacts with the Linux kernel’s XFRM subsystem is during IPsec Network Offloading (SmartNICs / DPUs).

If an enterprise SoC or Data Processing Unit (like an NVIDIA BlueField DPU) handles high-speed network traffic, the Linux XFRM subsystem can act as a control plane. It passes the encryption policies (SAs and SPIs) down to the chip’s network engine so that standard internet IPsec traffic can be encrypted at wire speed directly on the network interface card (NIC) hardware rather than taxing the main host CPU.

Vulnerability details: Fragnesia is a Linux local privilege escalation vulnerability that is a member of the Dirty Frag vulnerability class.

Are there any remedies available for CVE-2026-46300?

Patch Your Kernel:

Update your Linux kernel immediately. Patches were released by major distributions (AlmaLinux, Ubuntu, Red Hat, Debian, Amazon Linux) around May 14-16, 2026.

Apply Temporary Mitigation (If Patching is Delayed): Disable the vulnerable modules (esp4, esp6, and rxrpc) to block the exploit.Run: sudo rmmod esp4 esp6 rxrpcCreate blacklist file: echo -e “install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false” | sudo tee /etc/modprobe[.]d/fragnesia[.]conf

Clear Page Cache: If you suspect a machine was targeted before patching, run sync; echo 3 | sudo tee /proc/sys/vm/drop_caches to evict potentially corrupted cached pages.

Official announcement: Please refer to the link for details – https://github.com/v12-security/pocs/tree/main/fragnesia

CVE-2026-43284: Dirty Frag tricks the IPsec/TCP stack into doing the “dirty work”(13th May 2026)

Preface: The “Dirty Frag” attack chains two separate flaws in the Linux kernel’s networking stack: one in the ESP(Encapsulating Security Payload) protocol used by IPsec and another in the RxRPC protocol used for the AFS distributed file system. If you do not use IPsec, disabling its modules removes one of the major attack paths.

Background: The “Dirty Frag” vulnerability is deemed difficult to patch immediately due to its exploitation of a long-standing core Linux kernel optimization, which initially lacked official, widespread patches upon disclosure. While disabling ESP modules helps, effective mitigation requires blacklisting both ESP and RxRPC modules, or patching the kernel directly.

How to mitigate vulnerabilities:

Step 1:Block the ESP and RxRPC modules: Create a configuration file (e.g., /etc/modprobe.d/dirtyfrag.conf) to ensure the modules cannot be auto-loaded by an exploit:

bash

install esp4 /bin/false
install esp6 /bin/false
install rxrpc /bin/false

Step 2:Unload current modules: Remove the modules if they are currently active in memory:

bash

sudo modprobe -r esp4 esp6 rxrpc
 

Step 3:Clear the Page Cache: The exploit works by corrupting the page cache. After applying the blocks, clear the cache to ensure no malicious changes persist in RAM:

bash

sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches
 

Official announcement: Please refer to the link for details – https://nvd.nist.gov/vuln/detail/CVE-2026-43284

CVE-2026-25293 – Incorrect authorization in PLC FW (7th May 2026)

Preface: Qualcomm chipsets contain Powerline Communication (PLC) firmware features, particularly within their automotive and IoT-focused product lines designed for smart grid and electric vehicle (EV) charging.

Background: To implement write protection for SPI Flash, you generally need a combination of Hardware WP# pins and Software Status Register configurations.

The SPI Flash physical and software protection bits (BP bits / WP# pin) failed to provide a complete write-lock across the device lifecycle.

The threat model for CVE-2026-25293 usually assumes an attacker targets the PIB (Parameter Information Block):

•       Malicious PIB Modification: If WP is not active, an attacker can change MAC addresses or security keys in the PIB to conduct Man-in-the-Middle (MITM) attacks and steal charging credentials.

•       Persistent Backdoor: By overwriting sections of the NVM code (made possible because BP bits = 0), an attacker can implant a persistent backdoor that survives a reboot.

Vulnerability Details:

Title – Incorrect authorization in PLC FW

Description – Buffer overflow due to incorrect authorization in PLC FW

Technology Area – PLC FW

Vulnerability Type – CWE-863

Access Vector – Remote

Security Rating – Critical

Official announcement: Please refer to the link for details – https://docs.qualcomm.com/securitybulletin/may-2026-bulletin.html

Remedy: The primary remedy is to update the affected PLC firmware to the latest version supplied by the vendor that specifically addresses this CVE.

CVE-2026-25254: Improper authorization in Qualcomm Software Center (6th May 2026)

Preface: Even though QSC is installed on your Windows or Linux PC, its primary mission is to manage the Linux operating system that lives on your Target Development Board. QSC v1.21.0 knows exactly how to handle projects based on “Long Term Support Kernels” and provides the specific tools and patches required for them.

Background: To enable this within your qsc-cli workspace, follow these steps to modify your build configuration:

Step 1. Log in to the CLI
bash

qsc-cli login -u <your_email_address>

Step 2. In the context of the Qualcomm QRB4210 (RB2) and the Qualcomm Linux SDK, “enabling the SocketIO interface” typically refers to configuring a high-speed communication transport layer used in the Robot Operating System (ROS) or for high-speed sensor data between subsystems.

To enable this within your qsc-cli workspace, follow these steps to modify your build configuration:

Step 3. Identify the Required Metadata Layer

Socket-based transport optimizations, such as QRB ROS transport for zero-copy message passing, are often contained in the Qualcomm Intelligent Robotics (QIRP) SDK layers. Ensure you have the meta-qcom-qirp (or similar) layer in your workspace

Step 4. Update your bblayers.conf

Step 5. Enable via Kernel Menuconfig (If Hardware Socket/Interface)

If you are referring to a specific hardware-backed socket interface (like a virtualized socket for a DSP or NPU), you may need to enable it in the kernel:

Enter your build environment via qsc-cli.

Run the devtool to modify the kernel configuration:

Bash

devtool menuconfig linux-qcom-base

Search (using /) for SOCKET or the specific interface driver name (e.g., AF_QIPCRTR for Qualcomm IPC Router sockets).

Set it to <*>

Vulnerability details: Improper authorization in Qualcomm Software Center

Description : Improper authorization leads to Remote Code Execution via SocketIO interface.

Official announcement: Please refer to the link for details –

https://docs.qualcomm.com/securitybulletin/may-2026-bulletin.html

CVE-2025-47389: About Qualcomm – Buffer Copy Without Checking Size of Input in Automotive Platform (15th Apr 2026)

Preface: Qualcomm provides the Snapdragon Auto 5G Modem-RF (such as the Gen 2 platform) specifically for the automotive industry. For the automotive and EV sector, Qualcomm offers a dedicated platform called the Snapdragon Auto 5G Modem-RF Gen 2. Qualcomm developed the Snapdragon Auto 5G Modem-RF platform (specifically the Gen 2 version) to address the rigorous demands of safety, precise positioning, and integrated computing in the era of Software-Defined Vehicles (SDV).

Background: Snapdragon Auto 5G Modem-RF (Gen 2) supports mission-critical vehicle features such as:

  • C-V2X (Cellular Vehicle-to-Everything): Direct communication between vehicles and roadside infrastructure for safety.
  • Advanced Positioning: High-accuracy GNSS for autonomous driving and HD mapping.
  • Satellite Communications: Support for two-way messaging in remote areas.
  • Telematics Framework (TelAF): A specialized development environment for automakers to build connected services.

Ref: A Software-Defined Vehicle (SDV) is an automobile where core features—such as performance, safety, and infotainment—are primarily managed, upgraded, and enhanced through software rather than fixed hardware. By decoupling hardware from software, SDVs enable over-the-air (OTA) updates to add new features or improve functionality throughout the vehicle’s lifespan, functioning more like a smartphone on wheels than a traditional machine.

Vulnerability details: Memory corruption when buffer copy operation fails due to integer overflow during attestation report generation.

Official announcement: Please refer to link for details – https://nvd.nist.gov/vuln/detail/CVE-2025-47389

CVE-2025-47366: Qualcomm remediation – focuses on Memory Corruption during deinitialization. (5th Feb 2026)

Preface: The iframe (Inline Frame) is an HTML element used to embed another document or website within the current web page (e.g., embedding a YouTube video or a Google Map).

Background: High-bandwidth Digital Content Protection (HDCP) in a Trusted Execution Environment (TEE) refers to securing the handshake, authentication, and encryption keys of audio/video content within a secure, isolated area of a device’s processor.

  • When a HDCP session is deinitialized, the non-secure buffer allocated for communication with the TEE is freed.
  • However, if the cleanup sequence does not enforce strict ordering, “lingering references” (such as asynchronous callbacks or TEE drivers) might still attempt to access that memory.
  • This results in a memory corruption (Use-After-Free), allowing a local attacker with low privileges to potentially escalate their rights or cause a system crash. 

This is a memory integrity issue, not a cryptographic one.  Memory corruption during deinitialization. The vulnerability resides in the way the HLOS (Android kernel/drivers) and TrustZone interact, the fix must be applied at the Firmware/Kernel level via a system update from the manufacturer (OEM). 

Vulnerability details:

Title: Exposed Dangerous Method or Function in HLOS

Description: Cryptographic issue when a Trusted Zone with outdated code is triggered by a HLOS providing incorrect input.

Technology Area: HLOS

Vulnerability Type: CWE-749 Exposed Dangerous Method or Function.

Risk Level High (CVSS Score: 7.8)

Affected Platforms: Multiple Qualcomm Chipsets (including Snapdragon series)

Official announcement: Please refer to the link for more details –

https://docs.qualcomm.com/securitybulletin/february-2026-bulletin.html

CVE-2026-25142: If you are using SandboxJS [@nyariv/sandboxjs] for IoT (ESP32) development, please be cautious! (5 Feb 2026)

Preface: The ESP32 is a low-cost, low-power System on a Chip (SoC) microcontrollers with integrated Wi-Fi and dual-mode Bluetooth, making it a cornerstone for modern Internet of Things (IoT) applications. It offers direct, high-level control over hardware peripherals, including GPIOs, built-in Flash memory, and network interfaces, with extensive support for low-power operation.

Background: When using SandboxJS (@nyariv/sandboxjs) for ESP32 or any Internet of Things (IoT) development, caution is essential. While the tool is designed to provide a “secure eval runtime environment,” a major vulnerability recently discovered could put your embedded devices at risk.

Core Security Risks

  • Prototype Pollution: A critical vulnerability (CVE-2025-34146) exists in versions 0.8.23 and earlier. An attacker could inject malicious JavaScript code into `Object.prototype`, potentially leading to a denial-of-service (DoS) attack or escape from the sandbox environment to execute arbitrary code.
  • Sandbox Escape: In early 2026, a critical escape vulnerability (GHSA-wxhw-j4hc-fmq6) was disclosed again. The reason was that the AsyncFunction was not properly isolated, which allowed attackers to access the entire scope and execute native commands.
  • Specific threats to IoT devices: Because ESP32 typically has direct control over hardware (GPIO, Flash memory, network), once the sandbox is breached, attackers may directly manipulate the physical device, steal keys stored in Flash memory, or even perform malicious firmware updates.

Vulnerability details: SandboxJS is a JavaScript sandboxing library. Prior to 0.8.27, SanboxJS does not properly restrict __lookupGetter__ which can be used to obtain prototypes, which can be used for escaping the sandbox / remote code execution. This vulnerability is fixed in 0.8.27.

Official announcement: Please refer to the link for details –

https://nvd.nist.gov/vuln/detail/CVE-2026-25142

https://github.com/nyariv/SandboxJS/security/advisories/GHSA-9p4w-fq8m-2hp7

Recommendation:

Implement hardware isolation – Utilize ESP32’s hardware security features (such as Secure Boot, Flash encryption, and digital signature peripherals) to protect core keys, making it difficult for attackers to obtain sensitive credentials even if application-layer software is cracked. Consider alternatives – For embedded scenarios with extremely high security requirements, consider well-maintained JavaScript engines designed specifically for microcontrollers, such as Espruino or Moddable SDK.