ctipilot.ch

marimo notebook — pre-auth RCE via the unauthenticated /terminal/ws endpoint (CWE-306), CVSS 4.0 9.3, fixed in 0.23.0, CISA KEV-listed; Unit 42 records command execution confirmed on 11 endpoints during the 2026-07 autonomous-agent campaign

cve · CVE-2026-39987

Coverage timeline
1
first 2026-05-30 → last 2026-08-02
Peak priority
high
1 high
Sources cited
7
7 hosts
Sections touched
1
active-threats
Co-occurring entities
4
see Related entities below
ATT&CK techniques
9
pinned v19.2 · see below

Hunting pivots

Affected products
Apache TomcatCitrix NetScaler ADCCitrix NetScaler GatewayLangflowMarimoMarimo NotebookMicrosoft WindowsMicrosoft Windows ServerPalo Alto Networks PAN-OSn8n

ATT&CK techniques

9 techniques observed across 1 entry — derived from entry metadata and body evidence, never asserted without a published entry behind it · pinned to MITRE ATT&CK v19.2 · compare on the matrix · Navigator layer (JSON)

Reconnaissance TA0043

T1595Active Scanning×1

Adversaries may execute active reconnaissance scans to gather information that can be used during targeting. Active scans are those where the adversary probes victim infrastructure via network traffic, as opposed to other forms of reconnaissance that do not involve direct interaction.

Evidence: 2026-07-31/unit42-autonomous-deepseek-hermes-netscaler-cve-2026-3055 · ATT&CK page ↗

T1595.002Active Scanning: Vulnerability Scanning×1

Adversaries may scan victims for vulnerabilities that can be used during targeting. Vulnerability scans typically check if the configuration of a target host/application (ex: software and version) potentially aligns with the target of a specific exploit the adversary may seek to use.

Evidence: 2026-07-31/unit42-autonomous-deepseek-hermes-netscaler-cve-2026-3055 · ATT&CK page ↗

Resource Development TA0042

T1588.005Obtain Capabilities: Exploits×1

Adversaries may buy, steal, or download exploits that can be used during targeting. An exploit takes advantage of a bug or vulnerability in order to cause unintended or unanticipated behavior to occur on computer hardware or software. Rather than developing their own exploits, an adversary may find/modify exploits from online or purchase them from exploit vendors.

Evidence: 2026-07-31/unit42-autonomous-deepseek-hermes-netscaler-cve-2026-3055 · ATT&CK page ↗

Initial Access TA0001

T1190Exploit Public-Facing Application×1

Adversaries may attempt to exploit a weakness in an Internet-facing host or system to initially access a network. The weakness in the system can be a software bug, a temporary glitch, or a misconfiguration.

Evidence: 2026-07-31/unit42-autonomous-deepseek-hermes-netscaler-cve-2026-3055 · ATT&CK page ↗

Execution TA0002

T1059Command and Scripting Interpreter×1

Adversaries may abuse command and script interpreters to execute commands, scripts, or binaries. These interfaces and languages provide ways of interacting with computer systems and are a common feature across many different platforms. Most systems come with some built-in command-line interface and scripting capabilities, for example, macOS and Linux distributions include some flavor of Unix Shell while Windows installations include the Windows Command Shell and PowerShell.

Evidence: 2026-07-31/unit42-autonomous-deepseek-hermes-netscaler-cve-2026-3055 · ATT&CK page ↗

Privilege Escalation TA0004

T1068Exploitation for Privilege Escalation×1

Adversaries may exploit software vulnerabilities in an attempt to elevate privileges. Exploitation of a software vulnerability occurs when an adversary takes advantage of a programming error in a program, service, or within the operating system software or kernel itself to execute adversary-controlled code. Security constructs such as permission levels will often hinder access to information and use of certain techniques, so adversaries will likely need to perform privilege escalation to include use of software exploitation to circumvent those restrictions.

Evidence: 2026-07-31/unit42-autonomous-deepseek-hermes-netscaler-cve-2026-3055 · ATT&CK page ↗

Credential Access TA0006

T1539Steal Web Session Cookie×1

An adversary may steal web application or service session cookies and use them to gain access to web applications or Internet services as an authenticated user without needing credentials. Web applications and services often use session cookies as an authentication token after a user has authenticated to a website.

Evidence: 2026-07-31/unit42-autonomous-deepseek-hermes-netscaler-cve-2026-3055 · ATT&CK page ↗

Command and Control TA0011

T1090.003Proxy: Multi-hop Proxy×1

Adversaries may chain together multiple proxies to disguise the source of malicious traffic. Typically, a defender will be able to identify the last proxy traffic traversed before it enters their network; the defender may or may not be able to identify any previous proxies before the last-hop proxy. This technique makes identifying the original source of the malicious traffic even more difficult by requiring the defender to trace malicious traffic through several proxies to identify its source.

Evidence: 2026-07-31/unit42-autonomous-deepseek-hermes-netscaler-cve-2026-3055 · ATT&CK page ↗

T1102Web Service×1

Adversaries may use an existing, legitimate external Web service as a means for relaying data to/from a compromised system. Popular websites, cloud services, and social media acting as a mechanism for C2 may give a significant amount of cover due to the likelihood that hosts within a network are already communicating with them prior to a compromise. Using common services, such as those offered by Google, Microsoft, or Twitter, makes it easier for adversaries to hide in expected noise. Web service providers commonly use SSL/TLS encryption, giving adversaries an added level of protection.

Evidence: 2026-07-31/unit42-autonomous-deepseek-hermes-netscaler-cve-2026-3055 · ATT&CK page ↗

Story timeline

  1. 2026-07-31Unit 42 recovers a live autonomous-AI attack operation after it exposed its own home directory — the confirmed compromises came from manual Citrix NetScaler exploitation (CVE-2026-3055), not the agent
    active-threatsThe autonomous agent attacked at scale and landed nothing; the same operator's hand-driven NetScaler exploitation took data from three organisations

Where this entity is cited

  • active-threats1

Source distribution

  • 0patch.com1 (14%)
  • cisa.gov1 (14%)
  • euvd.enisa.europa.eu1 (14%)
  • labs.watchtowr.com1 (14%)
  • msrc.microsoft.com1 (14%)
  • support.citrix.com1 (14%)
  • unit42.paloaltonetworks.com1 (14%)

Co-occurring entities

Derived — referenced by the same focused operational entries (weekly summaries and report roundups don't count); ×N counts the shared entries.

Entries about marimo notebook — pre-auth RCE via the unauthenticated /terminal/ws endpoint (CWE-306), CVSS 4.0 9.3, fixed in 0.23.0, CISA KEV-listed; Unit 42 records command execution confirmed on 11 endpoints during the 2026-07 autonomous-agent campaign (1)

2026-07-31 · view entry permalink →

HIGHCVE-2026-3055 +2exploitedupdatedNATOB2

Unit 42 recovers a live autonomous-AI attack operation after it exposed its own home directory — the confirmed compromises came from manual Citrix NetScaler exploitation (CVE-2026-3055), not the agent

Palo Alto Unit 42 published an unusually complete reconstruction of a live offensive operation on 2026-07-30, made possible by the operator's own mistake: its agent framework, acting on a command sent over Telegram, started an HTTP file server from the operator's home directory rather than an isolated staging path, exposing AI tool configurations, API keys, exploit scripts, target lists, shell history and the agent's own session logs (Unit 42, 2026-07-30). Unit 42 notes this was out of character — the same operator had emptied exploit directories after use and disabled conversation logging in one of its tools.

The operator, who uses the handles knaithe and KnYuan and describes themselves as a Zhuhai-based binary-security researcher, ran DeepSeek as the reasoning engine behind the open-source Hermes Agent, extended with three capabilities: a framework-bundled jailbreak skill, a custom module for attacking unauthenticated WebSocket endpoints, and a custom procedure that drives internet-wide asset enumeration through a scanning service, wired to a natural-language-to-search-query translator exposed to the agent as a tool.

The result is the part worth reading carefully. Unit 42 states it could confirm only three successful exploitations across every attempt, autonomous and manual, and identifies those three as the Citrix NetScaler cases. Both fully autonomous exploitation attempts failed. Against Langflow, the agent needed either a login-bypass setting enabled or a public flow identifier and found neither; against n8n — which its scanning put at 647,017 instances globally and 25,209 in China — it worked the Chinese slice, sampled about a hundred, probed roughly forty, found three candidates, and was stopped because the unauthenticated form endpoint the exploit chain required was behind authentication on every one. Unit 42's own reading is that the failures were target-side configuration, not defensive detection, and that targets with weaker defaults would have been compromised — a hardening finding rather than a ceiling on the capability. The agent's decision-making is visible in the recovered logs: it abandoned the Langflow target set after assessing the deployment population as too small to be worth the effort and pivoted to a more widely deployed product on its own.

What actually worked was hand-driven. Using CVE-2026-3055, an out-of-bounds memory read in Citrix NetScaler ADC and Gateway, the operator exfiltrated appliance memory from three organisations and searched the recovered bytes for NetScaler authentication cookies, which Unit 42 reads as session-hijacking intent. It describes persistent multi-day targeting of a Malaysian government entity using memory-grooming parameters and maximum read attempts, with the operator returning behind proxy anonymisation on later attempts — behaviour it contrasts with the autonomous campaigns, which hit Chinese domestic infrastructure indiscriminately. Other manual activity included command execution against Marimo notebook instances, deserialization reverse-shell attempts against Tomcat servers and callbacks against Windows IKE VPN endpoints; a cloned PAN-OS exploit was non-functional, carrying placeholder values that cannot achieve code execution, with no evidence of modification or execution found.

The CVE itself deserves separate attention from the AI story, because it is the element with direct constituency exposure. It affects NetScaler ADC and Gateway only when the appliance is configured as a SAML Identity Provider — a precondition Unit 42 does not mention and which comes from the vulnerability record and the vendor's bulletin (Citrix, 2026-03-23). It is KEV-listed, and watchTowr's honeypot network observed exploitation from known threat-actor addresses as of 2026-03-27, months before and unrelated to this operator (watchTowr Labs, 2026-03-29). watchTowr also documents a second overread path under the same CVE reachable through a different endpoint, so an operator validating exposure should not assume a single request signature covers it.

Unit 42 also reports that the operator routed two Western tools, Claude Code and Codex, through a third-party proxy with attribution headers disabled and response storage turned off. It says Claude Code was used only for connectivity testing and proxy validation, its session history holding model checks, connectivity tests and one package-install request across three sessions, and that there were signs of Codex use in exploit-development directories though those chat logs were not preserved — and it relays OpenAI's confirmation that its provider-side safeguards refused the policy-violating requests and that its safety systems flagged and disabled the linked account before Unit 42 shared intelligence. Unit 42's inference is that the operator chose the model with the fewest controls for the autonomous engine precisely because provider-side controls limited the alternatives.

Detection. For the NetScaler exposure the observable is in the appliance's own web logs: repeated requests to the SAML identity-provider endpoints from a single source, returning responses whose length varies request to request, with no corresponding completed authentication — memory-overread harvesting looks like a failing login loop that never fails cleanly. Follow it with authentication telemetry: a session cookie presented from an address or client fingerprint that never performed the sign-in that minted it is the downstream consequence the operator was working toward. More broadly, the enumeration behaviour Unit 42 describes leaves an approach signature worth hunting on any exposed application — high-volume version-fingerprinting requests from a narrow address set, followed within a short window by a small number of precisely-targeted exploit attempts against just the instances whose version replied in scope.

Triage: scanning noise against edge appliances is constant, so volume alone discriminates nothing. Two things separate this from background scanning: the requests target the specific identity-provider paths rather than sweeping the whole surface, and successful reads produce responses that are neither errors nor valid authentication outcomes. On the enumeration side, ordinary vulnerability scanners announce themselves through breadth and user-agent consistency; what Unit 42 describes is narrow, sequenced and selective — a fingerprint pass followed by exploitation of only the matching subset.

Across all the exploitation attempts, both autonomous and manual, Unit 42 was only able to confirm three targets were successfully exploited.

The three successful exploitations had memory data exfiltrated through the Citrix NetScaler out-of-bounds memory read vulnerability (CVE-2026-3055). The actor searched the exfiltrated data for NetScaler authentication cookies (NSC_AAAC=), indicating session hijacking intent.

Autonomous AI-driven attack cycles are operationally viable, and the margin of failure was narrow: Exploitation was prevented by target-side configuration requirements — the absence of prerequisite workflow configurations (Langflow) and authentication on form endpoints (n8n). Targets with weaker default configurations would have been susceptible.

Unit 42 (Palo Alto Networks) 2026-07-30

Across all the exploitation attempts, both autonomous and manual, Unit 42 confirmed data exfiltration from three Citrix NetScaler targets (CVE-2026-3055) and command execution on 11 Marimo notebook endpoints (CVE-2026-39987).

Unit 42

This is a pre-authentication double free in ikeext.dll, the module behind the "IKE and AuthIP IPsec Keying Modules" service, which runs as Local System inside a svchost.exe. The flaw is in function IkeReinjectReassembledPacket, on the IKEv2 fragment reassembly path.

We recreated a POC from the official patch, which allowed us to reproduce the issue and create patches

0patch (ACROS Security) 2026-08-05

An unauthenticated attacker could send specially crafted packets to a Windows machine with Internet Key Exchange (IKE) version 2 enabled, which could enable remote code execution.

Microsoft Security Response Center 2026-04-14

Microsoft Internet Key Exchange (IKE) Service Extensions contains a double free vulnerability that could enable remote code execution.

CISA Known Exploited Vulnerabilities catalog

Block inbound traffic on UDP ports 500 and 4500 for systems that do not use IKE.

For systems that require IKE, configure firewall rules to allow inbound traffic on UDP ports 500 and 4500 only from known peer addresses.

Microsoft Security Response Center 2026-04-14
Correctionrun 2026-08-02T1309Z-auditactionsaffected_productscvesevidencetagstechniquesbody

The original entry understated the campaign's confirmed impact, and it did so on the strength of a quotation Unit 42 did not write. This pipeline's own weekly quality audit caught it by checking the entry's evidence[] against the fetched page.

The original entry carried, inside quotation marks and attributed to Unit 42, a sentence reading "Across all the exploitation attempts, both autonomous and manual, Unit 42 was only able to confirm three targets were successfully exploited." Unit 42's actual sentence, at the same point in the post, is "Across all the exploitation attempts, both autonomous and manual, Unit 42 confirmed data exfiltration from three Citrix NetScaler targets (CVE-2026-3055) and command execution on 11 Marimo notebook endpoints (CVE-2026-39987)" (Unit 42, 2026-07-30). The fabricated version dropped the second half of the finding and added a limiting phrase — "was only able to confirm" — that carries an editorial judgement the source does not make.

Unit 42's own CVE table is unambiguous on the omitted half: its row for CVE-2026-39987 gives the product as Marimo Notebook, the score as 9.8, the exploitation method as manual, and the status as active exploitation with command execution confirmed. The post's confirmed-impact list runs to four entries rather than one: data exfiltration from three organisations via the Citrix NetScaler flaw, command execution on 11 Marimo notebook instances, Java deserialization reverse-shell attempts against nine Apache Tomcat servers (CVE-2026-34486), and reverse-shell callbacks targeting three IKE VPN endpoints (CVE-2026-33824). Unit 42 also notes it "reviewed evidence of batch exploitation against an unknown number of hosts that were listed in a file deleted by the actor prior to our analysis", so even the enumerated figures are a floor rather than a total.

What survives from the original entry is its central reading of the autonomy question: Unit 42 attributes the confirmed compromises to the operator's manual work, and its table records the manual method against each of the four CVEs above, so the autonomous scanning component still did not itself produce the confirmed intrusions. What does not survive is the impact framing. A reader who took "three confirmed compromises, all NetScaler" from the original entry built the wrong exposure list, and the missing item is the awkward one: Marimo is an open-source reactive Python notebook that data-science and research teams install themselves, so it is far more likely to be absent from a central asset inventory than a NetScaler appliance is.

Triage: the discriminator for a notebook server is lineage rather than the process itself. A Marimo host legitimately spawns Python child processes constantly — that is what a notebook does — so process creation under the notebook service is noise. What is not noise is a child process that is not the interpreter: a shell, a download utility, or a scheduling command spawned by the notebook service account, especially on a host where no interactive session was open at that timestamp. Outbound connections from a notebook server to destinations outside the package-registry and data-source set it normally reaches are the second signal, and the two together — a non-interpreter child plus an unfamiliar egress destination within the same minute — are worth an alert on a host that was internet-reachable during the campaign window.

Updaterun 2026-08-10T0411Z-intelaffected_productscvesevidencesourcestagstechniquesbody

The correction entry on the autonomous-agent intrusion campaign listed four CVEs the operation actually reached, and recorded this one only as "callbacks from three IKE VPN endpoints" — an observed effect with no mechanism behind it. 0patch has now published the root cause, which closes that gap (0patch, 2026-08-05).

The analysis places CVE-2026-33824 as "a pre-authentication double free in ikeext.dll, the module behind the 'IKE and AuthIP IPsec Keying Modules' service, which runs as Local System inside a svchost.exe", with the flaw "in function IkeReinjectReassembledPacket, on the IKEv2 fragment reassembly path". An unauthenticated party who can reach UDP 500 or 4500 on a host acting as an IKEv2 responder can free the same heap block twice. 0patch's interest is not offensive — it "recreated a POC from the official patch" by diffing Microsoft's fix, in order to build micropatches for Windows versions no longer receiving official updates — but the consequence is that a working reproduction exists and its derivation is described.

Microsoft's own record corroborates the surrounding facts without endorsing the function-level detail: CWE-415 double free, CVSS 9.8 with a network vector requiring no privileges and no user interaction, released 2026-04-14, and Microsoft's own summary that "An unauthenticated attacker could send specially crafted packets to a Windows machine with Internet Key Exchange (IKE) version 2 enabled, which could enable remote code execution" (Microsoft Security Response Center, 2026-04-14). The affected range spans Windows Server 2016 through Windows Server 2025 and Windows 10 version 1607 through Windows 11 version 26H1 — effectively every supported release at the time — and the vendor records both exploitation and public disclosure as no.

Two qualifications keep this proportionate. The service must be acting as an IKEv2 responder: Microsoft's own wording conditions the attack on IKE version 2 being enabled, so this is not every Windows host on the network, and its stated interim guidance is to block inbound UDP 500 and 4500 where IKE is unused and restrict it to known peers where it is required. And the campaign linkage is the tracked entry's, not 0patch's or Microsoft's — neither source makes any attribution claim, and neither states that the callbacks observed in that campaign resulted from this mechanism.

Detection, telemetry class first. The exploitable surface is a UDP service, so network telemetry is where this lives: inbound sessions to UDP 500 or 4500 from sources outside the configured VPN peer set are the population to look at, and fragmented IKE negotiation traffic from an unrecognised peer is the specific shape, since the flaw sits on the fragment-reassembly path. On the host, the keying service crashing or restarting under svchost is the crash signature, and because the service runs as Local System, any child process descending from that svchost instance is anomalous. Triage: a host that legitimately terminates IPsec tunnels sees fragmented IKE traffic from its real peers constantly, so fragmentation alone is normal — the discriminator is the peer address, and secondarily fragment sequences that never complete a negotiation.

Updaterun 2026-08-19T0410Z-intelactionscvesevidencesectorssourcesbody

The double free in the Windows IKE and AuthIP IPsec Keying Modules service is now catalogued as exploited. CISA added CVE-2026-33824 to its Known Exploited Vulnerabilities catalog on 2026-08-18, recording it as a double free that "could enable remote code execution" (CISA KEV catalog, 2026-08-18), ENISA's EU Vulnerability Database carries the same 2026-08-18 date and an EPSS of 55.85 for its corresponding record, though as a mirror of CISA's determination rather than a second assessment of it (ENISA EUVD, 2026-08-18). The prior entry recorded this flaw as patched with exploitation reported as no; that is the part that changed, and it is the only part.

The mechanism and the remediation are unchanged from the earlier coverage: the flaw sits on the IKEv2 fragment-reassembly path, needs no authentication and no user interaction, and yields code execution in the Local System context that hosts the IKEEXT service. What the exploitation confirmation changes is which hosts are in scope, because the vulnerable surface is not only the VPN concentrator — Microsoft's affected list spans Windows Server 2016 through 2025 and Windows 10 v1607 through Windows 11 v26H1, so any domain member that answers IKE, including a Routing and Remote Access role nobody remembers enabling, is a responder (ENISA EUVD, 2026-08-18).

The sourcing split is itself the operationally useful part. Microsoft's record has not been revised since it was published on 14 April 2026, and it still records exploitation as no with an exploitability assessment of "Exploitation Less Likely" (Microsoft Security Response Center, 2026-04-14). Any triage pipeline that ranks Windows CVEs on the vendor's own exploitability field — a common and otherwise reasonable design — has this flaw sitting four months deep in a patch backlog while two cataloguing authorities now class it as exploited. Neither authority publishes the telemetry behind its determination, and neither names an actor, so nothing here supports an attribution.

Detection and hunting concentrate on the service rather than the packet, because the trigger is a malformed fragment sequence that no ordinary log records as anomalous. In process and service telemetry, the signals are unexpected termination, restart or crash-dump generation for the host process running the IKE and AuthIP IPsec Keying Modules service, and any child process created under it — that service should never spawn a command interpreter or a script host. In network telemetry, inbound UDP 500 and 4500 flows from source addresses outside the known VPN peer set are the exposure indicator, and fragmented IKE traffic volumes that do not match the peer population are worth a look. Triage: a legitimate IKEv2 negotiation produces the same port pair and the same fragmentation, so traffic shape alone does not discriminate — what separates suspicious from normal is the source address falling outside the configured peer set, and the correlation of that flow with a service fault or a new child process on the responder. Microsoft's own interim guidance is a firewall control rather than a configuration change: block inbound UDP 500 and 4500 where IKE is unused, and restrict them to known peers where it is required (Microsoft Security Response Center, 2026-04-14).

threat31 Jul 04:09Zmulti-sourceOpen finding ↗