Recent Cisco Switch & Firewall Vulnerabilities
If you manage Cisco gear like switches, routers, firewalls; this one’s serious. Multiple critical vulnerabilities in Cisco IOS XE have been actively exploited, allowing attackers to gain full admin control over network devices without authentication.
We’re not talking about lab PoCs or script-kiddy exploits here. Cisco has confirmed real-world compromises where attackers implanted persistent malware directly on production devices.
If you haven’t patched or locked down your management interfaces yet, stop reading this on your production network and go check. Here’s exactly what’s going on -
Before diving into configs and CVEs, let’s understand some things first
So, what’s new? Attackers found a way to create admin users and install custom implants through the web UI. No creds. No MFA. Just one HTTP request and boom - full control.
Two major vulnerabilities kicked this off:
In plain terms: If your management web interface is reachable from the internet and running an unpatched IOS XE version, attackers can send a crafted HTTP request, create a new admin account, then upload and execute code that lives inside your system.
Here’s what Cisco confirmed they found in the wild:
cisco_tac_admin, cisco_support, or random usernamesrunning-configThese implants can run arbitrary commands, intercept traffic, and even hide their presence. It’s a nightmare scenario for network admins.
If any of these are true, assume you’re vulnerable and act immediately:
show running-config | include httpLook for:
ip http server
ip http secure-serverIf either is present, the web UI is active.
To check if it’s bound to public interfaces:
show ip interface briefCompare with NAT or firewall rules - if external users can hit port 80 or 443, you’re exposed.
show version | include VersionCompare this against Cisco’s Official advisory. Find your exact model and see if your version is affected or fixed.
show running-config | include usernameIf you see something like:
username cisco_tac_admin privilege 15 secret <hash>and you didn’t create it - you’ve likely been compromised.
show running-config | include lua
dir harddisk:/ | include lua
dir flash:/ | include luaAny Lua script references are a red flag. Some confirmed implant filenames:
/usr/binos/conf/nginx-conf/cisco_service.lua
/usr/binos/scripts/sys_report.luashow logging | include HTTP|user|authLook for unknown IPs accessing the web UI or creating new users.
psYou may see unfamiliar processes tied to Lua or nginx serving custom scripts.
If you spot any of these - isolate the device immediately from the network and escalate.
show running-config | include usernameRemove any unknown accounts:
no username cisco_tac_admin
write memoryshow startup-config | include usernameIf rogue users appear here too, the system was compromised and the implant persisted.
dir /all nvram: | include .conf
more system:running-configLook for unusual ip http path or reverse proxy directives.
show logging | include POST|GET|configExternal IPs performing config actions are a big warning sign.
dir harddisk:/ | include lua
dir flash:/ | include luaIf found: - Copy files for forensic review - Delete them - Reboot into clean image after patching
This needs immediate attention, no debates there Here’s the checklist for containment, mitigation, and prevention.
conf t
no ip http server
no ip http secure-server
end
write memoryIf you need GUI management, restrict it to a management VLAN or out-of-band network only.
Check Cisco’s official advisory (search for “Cisco IOS XE Web UI privilege escalation vulnerability”). Update to the fixed IOS XE versions for your devices.
request platform software package install switch all file flash:cat9k_iosxe.BLDVERSION.binThen reload.
conf t
no username <malicious_user>
end
write memoryReset all local user passwords and any TACACS+/RADIUS secrets:
conf t
username admin secret <NewStrongPassword>
tacacs-server key <NewKey>
end
write memoryAllow management from trusted hosts only:
ip access-list standard MGMT_ONLY
permit 10.0.0.0 0.0.0.255
deny any
!
ip http access-class MGMT_ONLY
line vty 0 4
access-class MGMT_ONLY in
transport input ssh
end
write memorySet up Syslog, SNMP traps, and config change alerts:
logging host <SIEM_IP>
snmp-server enable traps syslog
archive
log config
notify syslogAnd make show running-config | include username part of your weekly hygiene routine.
Cisco will patch this. Attackers will pivot. The cycle continues. But the root cause? Misplaced convenience.
Thing is to Never expose management interfaces directly to the internet. Period.
Set up out-of-band management networks, or VPN-gated access for admins. Deploy config compliance checks via Ansible, Cisco DNA Center, or your NMS of choice.
And automate your patch management workflow - waiting for a breach to test upgrades is a bad habit.
Every Cisco breach post-mortem has the same line: “HTTP/HTTPS server was accessible from the internet.”