NVD has published CVE-2026-124079, a CVSS 9.8 (CRITICAL) remote code execution vulnerability in rConfig Core 8.0.0 through 8.2.18 and rConfig Pro before 8.4.1. The flaw is a classic deserialization of untrusted data weakness, but with a modern twist: attackers exploit the Redis-backed Laravel Horizon queue by pushing a crafted serialized job onto a queue that runs without authentication in affected deployments.
Because rConfig is a widely deployed network configuration management platform — often holding credentials and configs for routers, switches, firewalls, and other infrastructure — a successful exploit gives an attacker not just a shell on the management host, but a potential launchpad for lateral movement into the entire network fabric. The vulnerability is remotely exploitable over the network with no authentication required, which places it firmly in the "patch immediately" category.
Technical Analysis
Affected Products and Versions
- rConfig Core 8.0.0 and later, prior to 8.2.19
- rConfig Pro versions prior to 8.4.1
Both the open-source Core and commercial Pro editions are affected. The vulnerability exists in the default Laravel Horizon integration when it is backed by Redis and exposed to the network without authentication.
How the Vulnerability Works
The attack chain breaks down as follows:
- Unauthenticated Queue Access: In vulnerable deployments, the Redis instance backing Laravel Horizon is reachable over the network without authentication (default Redis behavior on many installations, or due to misconfiguration).
- Serialized Job Injection: The attacker connects to Redis and pushes a crafted serialized job payload onto the Horizon queue.
- Unsafe Deserialization: When Horizon workers pick up the job, Laravel's
CallQueuedHandlerunserializes the payload without class restrictions (unserialize()with noallowed_classeslimit). - Gadget Chain Execution: The attacker crafts the payload to instantiate the existing
App\Jobs\TaskDownloadRunclass. During unserialization, this triggers invocation of an attacker-controlled Artisan command. - Code Execution via Tinker: The attacker can leverage the bundled
laravel/tinkerpackage to execute arbitrary PHP code in the context of the web application, leading to full system compromise.
This is a network-exploitable, unauthenticated RCE — the worst-case combination for a vulnerability in a network management platform.
Exploitation Status
At the time of publication, no public proof-of-concept exploit has been released, and there are no confirmed reports of active in-the-wild exploitation. The vulnerability has been assigned CVE-2026-124079 and published by NVD, but it has not yet been added to CISA's Known Exploited Vulnerabilities (KEV) catalog.
However, given the trivial nature of queue poisoning when Redis is exposed, the low complexity of the attack, and the high value of rConfig targets, exploitation attempts are expected within days to weeks. Security teams should treat this as imminently exploitable and act accordingly.
Detection & Response
Detecting exploitation of CVE-2026-124079 requires visibility into Redis connections, Horizon worker activity, and the web server process spawning unexpected commands. The detections below are tuned to identify the specific behaviors described in the attack chain while minimizing false positives.
Sigma Rules
---
title: rConfig Laravel Horizon RCE - Web Server Process Spawning Shell
id: 9f3e1a82-5b7c-4d9e-a2f1-8c3d6e5b7a90
status: experimental
description: Detects suspicious child processes spawned by web server or PHP processes, consistent with post-exploitation activity from CVE-2026-124079.
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-124079
- https://attack.mitre.org/techniques/T1059/
author: Security Arsenal
date: 2026/02/10
tags:
- attack.execution
- attack.t1059.004
logsource:
category: process_creation
product: linux
detection:
selection_parent:
ParentImage|endswith:
- '/php'
- '/php-fpm'
- '/nginx'
- '/apache2'
- '/httpd'
selection_child:
Image|endswith:
- '/sh'
- '/bash'
- '/dash'
- '/zsh'
- '/python'
- '/python3'
- '/perl'
- '/nc'
- '/ncat'
- '/netcat'
- '/curl'
- '/wget'
condition: selection_parent and selection_child
falsepositives:
- Legitimate web application functionality that shells out to system commands
- Administrative scripts run via cron or manual execution
level: high
---
title: rConfig Redis Unauthenticated Access Attempt
id: 7b2c4d8e-1f6a-4e3b-9c5d-2a8e7f9b1c3d
status: experimental
description: Detects Redis connections from non-localhost sources, which may indicate an attacker attempting to push malicious jobs onto the Laravel Horizon queue.
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-124079
- https://attack.mitre.org/techniques/T1190/
author: Security Arsenal
date: 2026/02/10
tags:
- attack.initial_access
- attack.t1190
logsource:
category: network_connection
product: linux
detection:
selection:
DestinationPort: 6379
filter_localhost:
SourceIp|contains:
- '127.'
- '::1'
- 'localhost'
condition: selection and not filter_localhost
falsepositives:
- Legitimate distributed rConfig deployments where Redis is intentionally accessed from application servers
- Monitoring or health-check systems
level: medium
---
title: rConfig Laravel Horizon Suspicious Job Processing
id: 3e8f1a5c-9d4b-4c2e-8f7a-6b1c9d3e5a7f
status: experimental
description: Detects Laravel Horizon or queue worker processes executing unusual or high-risk commands, consistent with deserialization exploitation.
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-124079
- https://attack.mitre.org/techniques/T1059/
author: Security Arsenal
date: 2026/02/10
tags:
- attack.execution
- attack.t1059
logsource:
category: process_creation
product: linux
detection:
selection_parent:
ParentCommandLine|contains:
- 'horizon'
- 'queue:work'
- 'queue:listen'
selection_child:
CommandLine|contains:
- 'tinker'
- 'bash'
- 'sh'
- 'curl'
- 'wget'
- 'nc '
- 'python'
- 'base64'
condition: selection_parent and selection_child
falsepositives:
- Legitimate administrative tasks or maintenance scripts
level: high
KQL (Microsoft Sentinel / Defender)
For environments ingesting Linux syslog or CEF data into Microsoft Sentinel, the following KQL query hunts for the same behaviors:
// Hunt for web server processes spawning suspicious child processes
let suspicious_children = dynamic(["/bin/sh", "/bin/bash", "/bin/dash", "/usr/bin/python", "/usr/bin/python3", "/usr/bin/perl", "/usr/bin/nc", "/usr/bin/curl", "/usr/bin/wget"]);
let web_parents = dynamic(["php", "php-fpm", "nginx", "apache2", "httpd"]);
Syslog
| where TimeGenerated > ago(7d)
| where ProcessName in~ (web_parents)
| where SyslogMessage has_any (suspicious_children)
| project TimeGenerated, Computer, ProcessName, SyslogMessage, SourceIP
| order by TimeGenerated desc
// Alternative: Hunt for Redis connections from external sources
CommonSecurityLog
| where TimeGenerated > ago(7d)
| where DestinationPort == 6379
| where SourceIP !startswith "127." and SourceIP != "::1"
| where DeviceAction !in ("Allow", "Permit") // Focus on blocked or suspicious
| project TimeGenerated, SourceIP, DestinationIP, DestinationPort, DeviceAction, Message
| order by TimeGenerated desc
// Hunt for Horizon worker processes executing suspicious commands
SecurityEvent
| where TimeGenerated > ago(7d)
| where EventID == 4688
| where ParentProcessName has_any ("horizon", "queue:work", "queue:listen")
| where NewProcessName has_any ("sh", "bash", "curl", "wget", "nc", "python", "tinker")
| project TimeGenerated, Computer, Account, ParentProcessName, NewProcessName, CommandLine
| order by TimeGenerated desc
Velociraptor VQL
For endpoint forensics and threat hunting on rConfig servers, use Velociraptor to identify suspicious process execution and Redis connections:
-- Hunt for suspicious child processes of web server / PHP processes
SELECT Pid, Name, CommandLine, Exe, Username, CreateTime
FROM pslist()
WHERE (Name =~ 'php|nginx|apache|httpd' OR CommandLine =~ 'php|nginx|apache')
AND (CommandLine =~ '/bin/(sh|bash|dash)|/usr/bin/(python|perl|nc|curl|wget)|nc |bash|sh')
-- Alternative: Check for active Redis connections from non-localhost
SELECT Pid, Name, CommandLine, Exe, Username
FROM netstat()
WHERE Raddr != '127.0.0.1' AND Raddr != '::1' AND Rport == 6379
AND Status == 'ESTABLISHED'
Remediation Script (Bash)
Use the following Bash script to verify your rConfig version, check Redis exposure, and apply temporary mitigations if patching is not immediately possible. This script is designed for Ubuntu/Debian systems; adjust paths for other distributions.
#!/bin/bash
# CVE-2026-124079 Detection and Mitigation Script for rConfig
# Run as root or with sudo
echo "=== CVE-2026-124079 rConfig Vulnerability Assessment ==="
# Check rConfig version
if [ -d "/var/www/rconfig" ]; then
RCONFIG_PATH="/var/www/rconfig"
elif [ -d "/opt/rconfig" ]; then
RCONFIG_PATH="/opt/rconfig"
else
echo "[!] rConfig installation not found in standard paths."
exit 1
fi
if [ -f "$RCONFIG_PATH/composer.json" ]; then
VERSION=$(grep -oP '"version":\s*"\K[^"]+' "$RCONFIG_PATH/composer.json" 2>/dev/null || echo "unknown")
echo "[*] Detected rConfig version: $VERSION"
# Parse version for comparison
MAJOR=$(echo $VERSION | cut -d. -f1)
MINOR=$(echo $VERSION | cut -d. -f2)
PATCH=$(echo $VERSION | cut -d. -f3)
VULNERABLE=0
if [ "$MAJOR" -eq 8 ]; then
if [ "$MINOR" -eq 0 ] && [ "$PATCH" -lt 19 ]; then
VULNERABLE=1
elif [ "$MINOR" -eq 2 ] && [ "$PATCH" -lt 19 ]; then
VULNERABLE=1
elif [ "$MINOR" -eq 4 ] && [ "$PATCH" -lt 1 ]; then
VULNERABLE=1
fi
fi
if [ $VULNERABLE -eq 1 ]; then
echo "[!] VULNERABLE: This version is affected by CVE-2026-124079"
else
echo "[+] PATCHED: This version appears to be patched or not vulnerable"
fi
else
echo "[!] Could not determine rConfig version"
fi
# Check Redis exposure
echo ""
echo "=== Checking Redis Configuration ==="
if command -v redis-cli &> /dev/null; then
# Check if Redis is listening on all interfaces
REDIS_BIND=$(netstat -tlnp 2>/dev/null | grep :6379 | grep -oP '(?<=:6379\s).*' | awk '{print $1}' | head -1)
if [[ "$REDIS_BIND" == "0.0.0.0" || "$REDIS_BIND" == "::" ]]; then
echo "[!] WARNING: Redis is listening on all interfaces (0.0.0.0)"
echo "[!] This allows unauthenticated remote access if no password is set"
else
echo "[+] Redis appears to be bound to localhost only"
fi
# Check for Redis authentication
if redis-cli ping 2>/dev/null | grep -q PONG; then
echo "[!] WARNING: Redis accepts unauthenticated connections"
else
echo "[+] Redis appears to require authentication"
fi
else
echo "[!] redis-cli not found. Cannot assess Redis configuration."
fi
# Check Laravel Horizon configuration
echo ""
echo "=== Checking Laravel Horizon Configuration ==="
HORIZON_CONFIG="$RCONFIG_PATH/config/horizon.php"
if [ -f "$HORIZON_CONFIG" ]; then
if grep -q "'environments'" "$HORIZON_CONFIG"; then
echo "[*] Horizon configuration found"
fi
else
echo "[!] Horizon config not found at expected path"
fi
# Temporary mitigation: Bind Redis to localhost and enable auth
echo ""
echo "=== Applying Temporary Mitigations ==="
echo "[!] The following mitigations will be applied:"
echo " 1. Bind Redis to localhost only"
echo " 2. Enable Redis authentication with a strong password"
echo " 3. Restart Redis and Horizon services"
read -p "Continue? (y/n) " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
# Backup Redis config
cp /etc/redis/redis.conf /etc/redis/redis.conf.bak.$(date +%Y%m%d%H%M%S) 2>/dev/null || echo "Could not backup redis.conf"
# Bind to localhost
sed -i 's/^bind .*/bind 127.0.0.1 ::1/' /etc/redis/redis.conf 2>/dev/null || echo "Could not modify bind directive"
# Generate and set password
REDIS_PASS=$(openssl rand -base64 32 2>/dev/null || head /dev/urandom | tr -dc A-Za-z0-9 | head -c 32)
sed -i "s/^# requirepass .*/requirepass $REDIS_PASS/" /etc/redis/redis.conf 2>/dev/null || echo "Could not set requirepass"
echo "[+] Redis password set to: $REDIS_PASS"
echo "[!] UPDATE your rConfig .env file with: REDIS_PASSWORD=$REDIS_PASS"
# Restart services
systemctl restart redis 2>/dev/null || service redis restart 2>/dev/null || echo "Could not restart Redis"
systemctl restart horizon 2>/dev/null || supervisorctl restart all 2>/dev/null || echo "Could not restart Horizon"
echo "[+] Mitigations applied. Update .env and restart rConfig services."
else
echo "Mitigation skipped."
fi
echo ""
echo "=== Next Steps ==="
echo "1. PATCH IMMEDIATELY: Upgrade to rConfig Core 8.2.19+ or rConfig Pro 8.4.1+"
echo "2. Review firewall rules to ensure Redis (6379/tcp) is not exposed to the network"
echo "3. Implement network segmentation to isolate rConfig servers"
echo "4. Monitor for suspicious processes and Redis connections using provided detection rules"
echo ""
echo "Vendor Advisory: https://www.rconfig.com/ (check for security updates)"
Remediation
Immediate Actions (Within 24 Hours)
- Patch rConfig: Upgrade to rConfig Core 8.2.19 or rConfig Pro 8.4.1 or later. These versions contain the fix for the deserialization vulnerability.
- Restrict Redis Access: If patching is not immediately possible, ensure Redis is not exposed to the network. Bind Redis to
127.0.0.1and enable strong authentication (requirepass). - Firewall Rules: Block inbound traffic to Redis port 6379/tcp from any non-localhost source at the host and network firewall level.
- Review Horizon Configuration: Ensure Laravel Horizon is not configured to use a Redis instance that accepts unauthenticated remote connections.
Short-Term Actions (Within 7 Days)
- Network Segmentation: Isolate rConfig servers in a dedicated management VLAN with strict ACLs limiting access to authorized administrators only.
- Credential Rotation: If compromise is suspected, rotate all credentials stored in rConfig, including device credentials, SNMP strings, and API keys.
- Log Review: Audit Redis logs (
/var/log/redis/), Horizon logs (storage/logs/horizon.log), and web server logs for signs of exploitation. - Deploy Detection Rules: Implement the Sigma, KQL, and VQL rules provided in this post across your SOC monitoring platforms.
Long-Term Actions (Within 30 Days)
- Vulnerability Scanning: Add CVE-2026-124079 to your vulnerability scanner's signature database and scan all rConfig instances to confirm remediation.
- Configuration Management: Use configuration management tools (Ansible, Puppet, Chef) to enforce secure Redis and Horizon configurations across all deployments.
- Penetration Testing: Engage a qualified penetration testing firm to validate that the vulnerability is remediated and no other deserialization or queue-poisoning vectors exist.
- Incident Response Plan: Update your IR playbooks to include procedures for handling queue-based deserialization attacks and Redis compromise.
Vendor Advisory and Resources
- NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2026-124079
- rConfig Website: https://www.rconfig.com/ (check for security advisories and patch downloads)
- CISA KEV: Monitor for addition to the Known Exploited Vulnerabilities catalog
Workarounds (If Patching is Delayed)
If you cannot patch immediately, apply the following workarounds in addition to the mitigations above:
- Disable Horizon Workers: Temporarily stop Horizon workers (
php artisan horizon:terminate) and process queues manually during maintenance windows. - Implement WAF Rules: If rConfig is behind a web application firewall, deploy rules to detect and block serialized PHP objects in HTTP requests.
- Enhanced Monitoring: Enable verbose logging for Redis (
loglevel verbose) and forward logs to your SIEM for real-time analysis.
CISA Deadline
As of publication, CVE-2026-124079 has not been added to CISA's KEV catalog and no federal remediation deadline has been issued. However, given the critical severity and network-exploitable nature of this vulnerability, all organizations should treat this as a 24-48 hour emergency patch.
Conclusion
CVE-2026-124079 represents a critical, unauthenticated remote code execution vulnerability in rConfig that is trivial to exploit when Redis is exposed. Network configuration management platforms are high-value targets for threat actors seeking to compromise entire network infrastructures. Do not wait for public exploit code or confirmed in-the-wild exploitation — patch immediately.
If you need assistance assessing your exposure, deploying detection rules, or responding to a potential compromise, contact Security Arsenal's incident response team.
Related Resources
Security Arsenal Penetration Testing Services AlertMonitor Platform Book a SOC Assessment vulnerability-management Intel Hub
Is your security operations ready?
Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.