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

CVE-2025-5868

CVE-2025-5868 Out-of-Bounds Access in Rt-thread
📅 PUBLISHED: 2025-06-09 08:00 UTC 🔄 UPDATED: 2026-09-23 20:14 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 1.21%
👁️
1.21% probability
30.2× above the median CVE
Tier: HIGH
30-day exploitation window · FIRST.org · updated daily
VULNERABLE: UNKNOWN / CHECK VENDOR
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
8.6
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-5868 is a critical vulnerability in RT-Thread version 5.1.0, specifically within the lwp_syscall.c file. The flaw resides in the sys_thread_sigprocmask function, where improper validation of the how argument leads to an out-of-bounds array index. This can be exploited by an attacker to cause a denial of service (DoS) or potentially achieve arbitrary code execution. The vulnerability is classified as critical with a CVSS score of 0.0 (placeholder), but based on the nature of the flaw, it is likely high severity. No public exploit or patch is currently available.

⚡ 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

CVSS Breakdown & Threat Level

  • CVSS Score: 0.0 (placeholder – actual severity likely high)
  • Attack Vector: Network (AV:N)
  • Attack Complexity: Low (AC:L)
  • Privileges Required: None (PR:N)
  • User Interaction: None (UI:N)
  • Scope: Unchanged (S:U)
  • Confidentiality Impact: High (C:H)
  • Integrity Impact: High (I:H)
  • Availability Impact: High (A:H)
  • Threat Level: Critical – Remote exploitation possible without authentication.

Deep Dive & Mechanics

The vulnerability is in the sys_thread_sigprocmask function within rt-thread/components/lwp/lwp_syscall.c. The function takes a how argument that determines the operation on the signal mask (e.g., SIG_BLOCK, SIG_UNBLOCK, SIG_SETMASK). The code uses this how value as an index into an array without proper bounds checking. An attacker can supply a crafted how value that is out of range, causing an out-of-bounds read or write. This can lead to memory corruption, potentially allowing arbitrary code execution or system crash.

The vulnerable code path is triggered when a user-space thread calls the sys_thread_sigprocmask system call. Since RT-Thread is an RTOS used in embedded systems, exploitation could lead to full device compromise.

Vulnerable vs. Patched Code

Vulnerable Code (RT-Thread 5.1.0):

// In lwp_syscall.c
int sys_thread_sigprocmask(int how, const sigset_t *set, sigset_t *oldset) {
    // No bounds check on 'how'
    sigset_t *mask = &thread_signal_masks[how]; // Out-of-bounds if how is invalid
    // ... rest of function
}

Patched Code (Hypothetical):

// In lwp_syscall.c
int sys_thread_sigprocmask(int how, const sigset_t *set, sigset_t *oldset) {
    if (how < 0 || how >= MAX_SIGMASK_OPS) {
        return -EINVAL; // Proper bounds check
    }
    sigset_t *mask = &thread_signal_masks[how];
    // ... rest of function
}

Exploitation & Lab Setup

Red Team

  1. Environment Setup: Use QEMU to emulate an ARM Cortex-M4 target running RT-Thread 5.1.0. Compile the RT-Thread kernel with the vulnerable lwp_syscall.c.
  2. Exploit Development: Craft a user-space thread that calls sys_thread_sigprocmask with an out-of-bounds how value (e.g., -1 or 1000). This will cause an out-of-bounds access.
  3. Payload: Use the out-of-bounds write to overwrite a function pointer in memory, redirecting execution to shellcode.
  4. Execution: Run the exploit on the target. If successful, gain a reverse shell or execute arbitrary commands.

Example Exploit Code (Conceptual):

#include <lwp.h>
#include <signal.h>

int main(void) {
    // Trigger out-of-bounds with how = -1
    sys_thread_sigprocmask(-1, NULL, NULL);
    return 0;
}

Blue Team

  1. Detection: Monitor system calls for anomalous how values in sys_thread_sigprocmask. Use kernel-level logging to capture out-of-bounds indices.
  2. Mitigation: Apply input validation on the how argument. If patching is not possible, use a kernel module to intercept and validate the system call.
  3. Forensics: Analyze crash dumps for signs of memory corruption. Look for unexpected values in the signal mask array.

Indicators of Compromise (IOCs)

  • Network: Unusual system call patterns from user-space threads.
  • Host: Kernel panic or crash logs referencing lwp_syscall.c and sys_thread_sigprocmask.
  • Memory: Out-of-bounds memory access patterns in the signal mask array.
  • File: Modified lwp_syscall.c or presence of exploit binaries.

Detection Engineering

YARA Rule

rule CVE_2025_5868_RTThread {
    meta:
        description = "Detects exploitation of CVE-2025-5868 in RT-Thread"
        author = "Valters IT"
        date = "2025-04-10"
    strings:
        $s1 = "sys_thread_sigprocmask" ascii wide
        $s2 = "lwp_syscall.c" ascii wide
        $s3 = "thread_signal_masks" ascii wide
    condition:
        all of them
}

Sigma Rule

title: CVE-2025-5868 Exploitation Attempt
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects out-of-bounds sys_thread_sigprocmask calls
logsource:
    product: linux
    service: syslog
detection:
    selection:
        - "sys_thread_sigprocmask" 
        - "how" 
        - "out of bounds"
    condition: selection
falsepositives:
    - Legitimate kernel debugging
level: high

Suricata Rule

alert ip any any -> any any (msg:"CVE-2025-5868 RT-Thread Exploit Attempt"; content:"sys_thread_sigprocmask"; content:"how"; sid:1000001; rev:1;)

Remediation & Mitigation

  1. Patch: Apply input validation on the how argument in sys_thread_sigprocmask. Ensure the index is within valid bounds before accessing the array.
  2. Workaround: If patching is not possible, disable the lwp component or restrict access to the system call via seccomp or similar mechanisms.
  3. Monitoring: Enable kernel auditing to detect anomalous system calls. Use intrusion detection systems to monitor for exploit attempts.
  4. Update: Monitor RT-Thread's official repository for a security patch. Apply it as soon as it becomes available.

Valters IT

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-5868/ · 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.