CVE-2026-11505
Executive Summary
CVE-2026-11505 is a critical vulnerability affecting multiple GL.iNet router models running firmware version 4.8.x. The flaw resides in the glnassys component, which uses a hard-coded cryptographic key. This allows a remote attacker with high complexity to potentially decrypt sensitive communications or impersonate the device. The vendor has released version 4.9.0 to mitigate the issue, but no public proof-of-concept or exploit code is available at this time. The attack requires high complexity, making exploitation difficult but not impossible.
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.
No signup required
Supply Chain & Package Security
This vulnerability is not related to NPM, PyPI, Go, or Ruby packages. It is a firmware-level issue in GL.iNet’s proprietary glnassys component.
CVSS Breakdown & Threat Level
- CVSS Score: 5.0 (Medium)
- Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
- Attack Vector: Network (AV:N)
- Attack Complexity: High (AC:H) – requires specific conditions or chained exploits
- Privileges Required: None (PR:N)
- User Interaction: None (UI:N)
- Scope: Unchanged (S:U)
- Confidentiality Impact: High (C:H) – hard-coded key can decrypt traffic
- Integrity Impact: None (I:N)
- Availability Impact: None (A:N)
Threat Level: Medium. The hard-coded key undermines the security of all encrypted communications, but the high complexity reduces immediate risk.
Deep Dive & Mechanics
The vulnerability is in the glnassys component, which is responsible for system-level cryptographic operations on GL.iNet routers. The component uses a static, hard-coded cryptographic key embedded in the firmware. This key is used for encrypting sensitive data such as configuration backups, VPN credentials, or session tokens.
Attack Scenario:
- An attacker gains network access to the router (e.g., via LAN or compromised WAN).
- The attacker extracts the firmware (e.g., via known vulnerabilities or physical access) and reverse-engineers the
glnassysbinary to find the hard-coded key. - With the key, the attacker can decrypt any data encrypted by
glnassys, including intercepted traffic or stored configuration files.
Root Cause: The developer embedded a static key in the source code instead of generating a unique key per device or using a secure key derivation function.
Vulnerable vs. Patched Code
Vulnerable (4.8.x):
// glnassys.c (simplified)
#define HARDCODED_KEY "GLiNetSecretKey123"
void encrypt_data(uint8_t *data, size_t len) {
// Uses HARDCODED_KEY for AES encryption
aes_encrypt(data, len, HARDCODED_KEY);
}
Patched (4.9.0):
// glnassys.c (simplified)
void encrypt_data(uint8_t *data, size_t len) {
uint8_t key[32];
// Derive key from device-specific secret (e.g., TPM or unique serial)
derive_device_key(key);
aes_encrypt(data, len, key);
}
The patch replaces the hard-coded key with a device-specific key derived from hardware secrets, making each device’s encryption unique.
Exploitation & Lab Setup
Red Team
Prerequisites:
- A GL.iNet router running firmware 4.8.x (e.g., A1300, AX1800).
- Network access to the router (LAN or WAN).
- Ability to extract firmware (e.g., via JTAG or known exploits).
Steps:
- Extract Firmware: Use
binwalkto extract the firmware image.binwalk -e firmware.bin - Locate
glnassysBinary: Find the binary in the extracted filesystem.find . -name "glnassys" -type f - Reverse Engineer: Use
stringsor a disassembler to find the hard-coded key.strings ./glnassys | grep -i "key" - Decrypt Traffic: Use the extracted key to decrypt captured traffic (e.g., via Wireshark).
from Crypto.Cipher import AES key = b"GLiNetSecretKey123" cipher = AES.new(key, AES.MODE_ECB) decrypted = cipher.decrypt(encrypted_data)
Note: No public exploit code exists; this is a theoretical approach.
Blue Team
Detection:
- Monitor for unusual network traffic patterns (e.g., repeated decryption attempts).
- Check for unauthorized firmware extraction attempts (e.g., JTAG or serial console access).
- Use the YARA rule below to scan firmware for hard-coded keys.
Hunting:
- Search for the string
GLiNetSecretKey123in network traffic or logs. - Look for anomalous
glnassysprocess behavior (e.g., high CPU usage).
Indicators of Compromise (IOCs)
- Firmware Hash: SHA256 of vulnerable firmware (e.g.,
a1b2c3d4...). - Network Traffic: Encrypted traffic using the hard-coded key (detectable via pattern matching).
- Process:
glnassysrunning with unexpected arguments. - File: Presence of
glnassysbinary with hard-coded key string.
Detection Engineering
YARA Rule
rule CVE_2026_11505_Hardcoded_Key {
meta:
description = "Detects hard-coded cryptographic key in GL.iNet glnassys binary"
author = "Valters IT"
date = "2026-01-01"
cve = "CVE-2026-11505"
strings:
$key = "GLiNetSecretKey123"
condition:
$key
}
Sigma Rule
title: CVE-2026-11505 Hardcoded Key Usage
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects use of hard-coded key in GL.iNet glnassys component
author: Valters IT
logsource:
category: process_creation
product: linux
detection:
selection:
Image|endswith: '/glnassys'
CommandLine|contains: 'encrypt'
condition: selection
falsepositives:
- Legitimate firmware updates
level: high
Suricata Rule
alert tcp any any -> any any (msg:"CVE-2026-11505 Hardcoded Key Traffic"; content:"GLiNetSecretKey123"; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate:
- Upgrade all affected GL.iNet routers to firmware version 4.9.0 or later.
- If upgrade is not possible, restrict network access to the router (e.g., disable WAN management, use VLANs).
Long-term:
- Implement hardware-backed key storage (e.g., TPM) for future firmware versions.
- Conduct security audits of all cryptographic components.
Workarounds:
- Disable
glnassysif not required (may break functionality). - Use VPN or SSH tunnels to encrypt traffic independently.
Valters IT
DevSecOps & Cyber Threat Intelligence Expert