← Back to Feed CACHED · 2026-10-14 16:54:39 · CACHE_KEY CVE-2026-0322
CVE-2026-0322 · CWE-94 · Disclosed 2026-10-14

PAN-OS Management Interface Authenticated Remote Code Execution

ASSESSED — NOISGATE
Vendor
—
—
—
Reassessed
—
—
—
Verdict: —
Do you agree?
01 · The Real Story

Someone with keys to your firewall's front door can now own the entire house, foundation included

CVE-2026-0322 is an authenticated remote code execution vulnerability in the Palo Alto Networks PAN-OS management web interface, classified as CWE-94 (Code Injection). An attacker who already holds high-privilege admin credentials can send a crafted request to the management interface and execute arbitrary commands as root on the underlying Linux OS — not merely PAN-OS admin-level, but full OS root. Affected branches span PAN-OS 10.2.x through 12.2.x: specifically 10.2.0–10.2.18-h10, 11.1.0–11.1.16-h2, 11.2.0–11.2.15, 12.1.2–12.1.10-h1, and 12.2.0–12.2.3. Cloud NGFW and Prisma Access are unaffected. Patches landed October 14, 2026, with fixes at 12.2.4, 12.1.10-h2, 11.2.16, 11.1.16-h3, and 10.2.18-h12.

The vendor's CVSSv4.0 score of 8.6 (HIGH) with their maximum urgency rating ('Red') is honest — they're not downplaying this. But it's important to read the PR:H in the vector: you need admin-level credentials *before* exploitation begins. That gate prevents mass spray-and-pray attacks. The vendor's 'very limited exploitation' language confirms targeted, credential-dependent campaigns rather than wormable or drive-by exploitation. For a fleet manager, the severity is real because PAN-OS *is* your perimeter — root on it means traffic interception, implant persistence that survives config resets, and a pivot point into every routed segment — but the attack requires a prior credential compromise, which meaningfully narrows exposure.

"Admin-to-root on your perimeter firewall with active exploitation. Restrict management access and patch now."
02 · The Attack Path

5 steps from start to impact.

STEP 01

Obtain PAN-OS admin credentials

The attacker acquires valid high-privilege credentials to the PAN-OS management interface. Common vectors include credential phishing targeting firewall admins, password reuse from a previously breached credential dump, brute-forcing weak local accounts, or insider access. This is the hardest step in the chain and the primary friction point.
Conditions required:
  • Valid admin-level PAN-OS credentials (PR:H)
Where this breaks in practice:
  • PAN-OS admin accounts are typically tightly controlled and limited to a small team
  • Environments with SAML/RADIUS + MFA make credential theft significantly harder
  • Palo Alto best practice guides recommend unique, rotated credentials
Detection/coverage: Failed login attempts visible in PAN-OS System logs; SIEM correlation on auth failures to management interface; anomalous admin login from unexpected source IPs
STEP 02

Reach the management interface

The attacker must have network-level access to the PAN-OS management web interface (typically HTTPS on port 443 of the MGT interface or configured data-plane interface). If the management interface follows best practices and sits on an isolated out-of-band VLAN, the attacker needs prior internal network access — meaning this step implies a post-initial-access position. Shadowserver and Shodan data from prior PAN-OS campaigns show ~8,700–15,000 management interfaces directly exposed to the internet, though this number has been declining.
Conditions required:
  • Network path to PAN-OS management interface (HTTPS)
Where this breaks in practice:
  • Best practice deploys management on isolated OOB VLAN behind jump servers
  • Roughly 8,700–15,000 of an estimated 300,000+ PAN-OS devices expose management to the internet (~3-5%)
  • Enterprises with mature network segmentation require VPN + jump box to reach management plane
Detection/coverage: Shodan/Censys dork: http.title:"Palo Alto Networks" or ssl.cert.subject.CN:"PAN-OS" on management ports; network flow anomalies to management interface from non-management subnets
STEP 03

Send code injection payload

With valid admin credentials and management interface access, the attacker sends a crafted HTTP request exploiting the CWE-94 code injection flaw in the management web interface. The vulnerability requires no special configuration or user interaction (AT:N, UI:N in the CVSS vector). Attack complexity is low (AC:L), meaning no race conditions or timing dependencies. No public PoC exists as of October 15, 2026, but threat actors with access to the vulnerability details have weaponized it privately.
Conditions required:
  • Authenticated session on management interface
  • Knowledge of the code injection vector (no public PoC yet)
Where this breaks in practice:
  • No public PoC reduces the attacker population to advanced groups or internal discoverers
  • Threat Prevention IDs 510046/510047 can detect known exploitation patterns if SSL decryption is enabled on management traffic
Detection/coverage: Threat Prevention signatures 510046 and 510047 (content version ≥ 9159-10287); WAF/reverse-proxy inspection if management traffic routes through one; anomalous POST patterns to management API endpoints
STEP 04

Achieve root-level execution

The injected code executes with root privileges on the underlying PAN-OS Linux OS. This exceeds normal PAN-OS admin capabilities — admin can configure the firewall, but root can modify the OS, install persistent backdoors, intercept packets below PAN-OS application layer, access stored credentials and certificates, and tamper with logging. Recovery from root compromise requires full device reimaging, not just a config restore.
Conditions required:
  • Successful code injection from Step 3
Where this breaks in practice:
  • None — once the injection succeeds, root is immediate
Detection/coverage: Host-based integrity monitoring (if deployed); unexpected processes or files in PAN-OS filesystem; anomalous outbound connections from the firewall management interface itself
STEP 05

Establish persistence and pivot

With root on the perimeter firewall, the attacker can install implants that survive PAN-OS software upgrades (writing to persistent storage areas), intercept all traffic flowing through the device, harvest VPN credentials and certificates, disable or modify security policies silently, and use the firewall's network position to pivot into every segment it routes — DMZ, internal, management. On a Panorama appliance, root access grants management-plane control over the entire managed firewall fleet.
Conditions required:
  • Root shell from Step 4
Where this breaks in practice:
  • Advanced attackers only — requires operational tradecraft to maintain access without detection
  • Firmware integrity checks in newer PAN-OS versions may detect some persistence mechanisms
Detection/coverage: Palo Alto Cortex XDR/XSIAM telemetry on managed devices; firmware integrity validation; unexpected configuration changes in Panorama; network traffic anomalies from firewall egress
03 · Compensating Control

1
HIGH 8.0→LOW 3.5
SEVERITY REDUCED
Restrict management interface to isolated OOB VLAN with jump-box-only access — This is the single highest-impact control. Move the PAN-OS management interface to a dedicated out-of-band management VLAN accessible only through hardened jump servers with MFA. Block all direct internet and user-network access to management ports. This breaks Step 2 of the attack path for any attacker who doesn't already control the management network. Palo Alto's own best practices guide (deploy-administrative-access-best-practices) prescribes this architecture. Given active exploitation, deploy within 3 days (overriding the standard 30-day HIGH mitigation SLA due to confirmed in-the-wild activity).
2
HIGH 8.0→MEDIUM 6.5
SEVERITY REDUCED
Enable Threat Prevention IDs 510046 and 510047 — These IPS signatures detect known exploitation patterns for CVE-2026-0322. Requires content version ≥ 9159-10287 and, critically, SSL decryption on management traffic if management flows through a data-plane interface. If using the dedicated MGT port (OOB), these signatures only apply if management traffic is routed through another PAN-OS device's data plane. Limited coverage — signatures match known payloads and can be bypassed by novel variants. Deploy within 3 days.
3
HIGH 8.0→MEDIUM 5.5
SEVERITY REDUCED
Enforce MFA on all PAN-OS admin accounts via SAML/RADIUS — Adding MFA to admin authentication significantly raises the bar for Step 1 (credential acquisition). Even if an attacker phishes or brute-forces the password, they cannot authenticate without the second factor. Configure PAN-OS to authenticate against your IdP (Okta, Azure AD, Ping) with enforced MFA. This doesn't prevent exploitation by a legitimate admin who is coerced or by an attacker who compromises the MFA flow, but it eliminates the most common credential theft vectors. Deploy within 3 days.
4
HIGH 8.0→HIGH 7.0
Audit and rotate all PAN-OS local admin credentials immediately — Change all local admin passwords on every PAN-OS device and Panorama instance. Disable any shared or default admin accounts. Review admin account inventory for accounts that should not exist. This limits the window of exposure for any previously compromised credentials. Perform within 24 hours given active exploitation.
5
HIGH 8.0→IGNORE 0.0
SEVERITY REDUCED
Apply the vendor patch (PAN-OS upgrade to fixed version) — This is the definitive remediation. Upgrade each PAN-OS branch to its fixed version: 12.2.4, 12.1.10-h2, 11.2.16, 11.1.16-h3, or 10.2.18-h12 (multiple hotfix trains available per branch). Test in a lab/staging environment first, then roll to production. Given active exploitation, accelerate the standard 180-day HIGH remediation SLA — target 30 days for full fleet coverage, with internet-exposed and Panorama instances patched within 72 hours.
What doesn't work
  • Data-plane IPS/IDS rules alone — the vulnerability is in the management plane web interface, which does not traverse the data-plane inspection engine unless management traffic is deliberately routed through another firewall's data plane with SSL decryption. Most deployments use the dedicated MGT port, bypassing all data-plane security processing.
  • Panorama-level access restrictions without device-level controls — Panorama itself runs PAN-OS and is affected. Locking down Panorama access does not protect the individual managed firewalls, each of which has its own management interface. Both must be secured independently.
  • GlobalProtect or VPN-only access to the network — while VPN restricts who can reach the internal network, if the management interface is reachable from any internal subnet (common in flat management networks), a VPN-connected attacker with stolen admin creds can still reach it. OOB VLAN isolation with jump-box enforcement is required, not just VPN.
04 · Intelligence Metadata

The supporting signals.

In-the-Wild ExploitationActive — very limited. Palo Alto Networks confirms 'very limited exploitation has been observed targeting the management interface.' No named threat actor or campaign attributed yet. Vendor urgency: Red (highest).
Proof of ConceptNo public PoC. As of 2026-10-15, no exploit code has been published on GitHub, ExploitDB, pocindex.io, or Nuclei templates. No repos named CVE-2026-0322 found on GitHub. The vulnerability was internally discovered, and weaponization appears limited to private actors.
EPSS ScoreNot yet scored. The FIRST EPSS API returns no data for CVE-2026-0322 as of 2026-10-15 (advisory published 2026-10-14, EPSS typically populates within 1–7 days of NVD ingestion).
CISA KEV StatusNot listed. CVE-2026-0322 is not in the CISA Known Exploited Vulnerabilities catalog as of 2026-10-15. Given confirmed active exploitation, KEV addition is likely imminent.
CVSS VectorCVSSv4.0: 8.6 (HIGH) — CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:A. Key read: network-reachable, low complexity, but high privileges required (PR:H). The E:A (Attacked) modifier confirms active exploitation. No CVSSv3.1 vector published; a v3.1 equivalent with AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H would score 7.2.
Affected VersionsPAN-OS 10.2.0–10.2.18-h10, 11.1.0–11.1.16-h2, 11.2.0–11.2.15, 12.1.2–12.1.10-h1, 12.2.0–12.2.3. Affects PA-Series, VM-Series, and Panorama (virtual and M-Series). Cloud NGFW and Prisma Access are not affected.
Fixed Versions12.2.4, 12.1.10-h2 (also 12.1.7-h8, 12.1.4-h12), 11.2.16 (also 11.2.13-h3, 11.2.10-h15, 11.2.7-h21, 11.2.4-h22), 11.1.16-h3 (also 11.1.13-h15, 11.1.10-h35, 11.1.7-h11, 11.1.6-h39, 11.1.4-h37), 10.2.18-h12 (also 10.2.16-h11, 10.2.13-h26, 10.2.10-h41, 10.2.7-h38). Multiple hotfix trains available per branch.
Internet ExposureShadowserver tracked ~8,726 IPs with exposed PAN-OS management interfaces (2024 data, declining). Shodan found ~15,429 globally with 11,180 active. Against an estimated 300,000+ PAN-OS deployments worldwide, this is ~3–5% direct internet exposure of the management plane.
Disclosure Date2026-10-14 — published by Palo Alto Networks. Internally discovered; no prior public disclosure or coordinated disclosure timeline.
ReporterSuraj Siddharudh (Palo Alto Networks internal). No external researcher credit.

Sources.

  1. Palo Alto Networks Security Advisory
  2. SecurityOnline — PAN-OS RCE CVE-2026-0322 Actively Exploited
  3. CERT-EU Security Advisory 2026-006
  4. Palo Alto Administrative Access Best Practices
  5. GreyNoise — Surge in Palo Alto Networks Scanner Activity
  6. CISA Vulnerability Bulletin Week of Sept 14, 2026
  7. Shodan PAN-OS Vulnerability Dashboard
05 · The Call

Final Verdict
= UNCHANGED to HIGH (8.0/10)

Why this verdict

  • Network edge appliance role floor: PAN-OS is *canonically* a perimeter firewall — effectively 100% of installs occupy the high-value network edge role. Root compromise on a perimeter firewall enables traffic interception, VPN credential harvesting, security policy tampering, and lateral pivot into every routed segment. Per the deployment-role blast radius rule, the verdict floor is HIGH at minimum.
  • Role multiplier: Panorama = fleet-scale blast radius. The advisory explicitly lists Panorama (virtual and M-Series) as affected. Root on a Panorama appliance grants management-plane control over the entire managed firewall fleet — potentially hundreds of devices. On a standalone PA-Series firewall, the blast radius is host → network segments; on Panorama, it's host → fleet → enterprise. This outcome is plausible for any organization running Panorama with the same admin credential surface.
  • Active exploitation confirms viability. Palo Alto Networks confirms 'very limited exploitation' in the wild with their highest urgency rating (Red). This eliminates any argument that the PR:H gate makes the bug merely theoretical — adversaries are clearing that hurdle in real campaigns.
  • PR:H is genuine friction — holds the verdict at HIGH, not CRITICAL. The attacker must already possess admin-level credentials to the PAN-OS management interface before the code injection is reachable. This is not a low-bar requirement — PAN-OS admin accounts are typically limited to a small team, and environments with SAML/RADIUS + MFA make credential acquisition significantly harder. This prevents mass exploitation and limits the attacker population to advanced, targeted operators.
  • No public PoC constrains attacker population further. Without published exploit code, only threat actors with independent vulnerability research capability or access to private exploit markets can weaponize this. This will change if a PoC drops — reassess immediately if one surfaces.
  • ~3–5% internet exposure of management plane. Only a fraction of PAN-OS management interfaces are directly internet-reachable. For the remaining ~95%, the attacker needs prior internal network access (post-initial-access position), compounding the prerequisite chain. This is meaningful downward pressure but does not break the HIGH floor because (a) the 3–5% still represents thousands of devices, and (b) internal attackers with admin creds are a real threat model.

Why not higher?

CRITICAL would require either unauthenticated exploitation or a reliable credential-bypass chain that makes PR:H moot. The high-privilege requirement is genuine — the attacker must already possess admin credentials to the firewall management interface, which is among the most tightly controlled credential sets in any enterprise. While admin credentials *do* get compromised, requiring them as a precondition meaningfully narrows the attacker population and prevents wormable or mass-spray exploitation. The absence of a public PoC further constrains the current threat to advanced operators only.

Why not lower?

MEDIUM would catastrophically undercount the blast radius of root access on a perimeter firewall — the single device that sees and controls all north-south traffic. PAN-OS is categorically a high-value network edge appliance; the HIGH floor is binding. Active exploitation, even described as 'very limited,' confirms real-world viability and operator interest. The escalation from admin to OS root is not trivial — it grants capabilities (persistent implants, packet-level interception, log tampering, certificate theft) that admin-level PAN-OS access cannot provide. Panorama exposure amplifies this to fleet-scale impact.

06 · Verification

Crowdsourced verification payload.

Run this script from any workstation with network access to the PAN-OS management interface and a valid API key (read-only is sufficient). Invoke with: python3 check_cve_2026_0322.py <firewall_host> <api_key>. No root/admin privileges needed on the workstation — only a PAN-OS API key with operational read access. For fleet-wide checks, loop over your device inventory.

noisgate-verify.py
PYTHONREAD-ONLYSAFE
#!/usr/bin/env python3
"""CVE-2026-0322 PAN-OS Version Checker
Checks if a Palo Alto Networks firewall is running a vulnerable PAN-OS version.
Usage: python3 check_cve_2026_0322.py <firewall_host> <api_key>
Exit codes: 0=PATCHED, 1=VULNERABLE, 3=UNKNOWN
"""
import sys
import re
import xml.etree.ElementTree as ET

try:
    import requests
    requests.packages.urllib3.disable_warnings()
except ImportError:
    print("UNKNOWN - 'requests' library required: pip install requests")
    sys.exit(3)

# Latest fixed version per branch (conservative check)
FIXED = {
    "12.2": (12, 2, 4, 0),
    "12.1": (12, 1, 10, 2),
    "11.2": (11, 2, 16, 0),
    "11.1": (11, 1, 16, 3),
    "10.2": (10, 2, 18, 12),
}

def parse_version(v):
    """Parse '11.2.13-h3' into (11, 2, 13, 3) or '11.2.16' into (11, 2, 16, 0)."""
    m = re.match(r'^(\d+)\.(\d+)\.(\d+)(?:-h(\d+))?', v)
    if not m:
        return None
    return (int(m.group(1)), int(m.group(2)), int(m.group(3)), int(m.group(4) or 0))

def main():
    if len(sys.argv) != 3:
        print("Usage: python3 check_cve_2026_0322.py <host> <api_key>")
        sys.exit(3)
    host, api_key = sys.argv[1], sys.argv[2]
    url = f"https://{host}/api/?type=version&key={api_key}"
    try:
        r = requests.get(url, verify=False, timeout=15)
        r.raise_for_status()
    except Exception as e:
        print(f"UNKNOWN - Connection failed: {e}")
        sys.exit(3)
    try:
        root = ET.fromstring(r.text)
        sw_elem = root.find('.//sw-version')
        if sw_elem is None or not sw_elem.text:
            print("UNKNOWN - No <sw-version> in API response")
            sys.exit(3)
        running_str = sw_elem.text.strip()
    except ET.ParseError:
        print("UNKNOWN - Could not parse XML response")
        sys.exit(3)
    running = parse_version(running_str)
    if running is None:
        print(f"UNKNOWN - Unrecognized version format: {running_str}")
        sys.exit(3)
    branch = f"{running[0]}.{running[1]}"
    if branch not in FIXED:
        branch_num = running[0] * 10 + running[1]
        if branch_num < 102:  # older than 10.2
            print(f"VULNERABLE - PAN-OS {running_str} is EOL, no patch available for CVE-2026-0322")
            sys.exit(1)
        else:
            print(f"UNKNOWN - Branch {branch} not in known affected range")
            sys.exit(3)
    fixed = FIXED[branch]
    if running >= fixed:
        print(f"PATCHED - PAN-OS {running_str} >= {fixed[0]}.{fixed[1]}.{fixed[2]}-h{fixed[3] if fixed[3] else '0'}")
        sys.exit(0)
    else:
        print(f"VULNERABLE - PAN-OS {running_str} is below fixed version for branch {branch}")
        sys.exit(1)

if __name__ == "__main__":
    main()