Security & Threat Intelligence

The Watch

The Signal

A CVSS 9.3 Check Point flaw turns unauthenticated access into full console admin.

The policy enforcement plane is Tier-0. Whoever holds SmartConsole admin installs permissive rules and mints VPN users, with the logging on that activity suppressed from the same console. A patch now exists. The remaining question is whether a scanner outside the perimeter gets an answer from the management interface.

In Play

  1. Management Plane and PLM Under Active Attack

    Today's through-line orders everything below: verify remediation from the artifact itself, not the version number, and rank exposures by how much privilege each hands away. That puts Check Point's unauthenticated SmartConsole flaw and Oracle's record Critical Patch Update ahead of internal middleware work, and makes Cl0p's PTC Windchill campaign — early-June exploitation per Cyberpresso citing Ransom-ISAC, KEV-listed June 25 — a retroactive hunt, not a patch task. The first deep dive ranks all three.

    Ask Clarity
    Try
  2. Patch State You Cannot Read From a Version Number

    DepthFirst's GitLab research, via TLDR InfoSec, turns a pushed Jupyter notebook into command execution as the git user through the bundled Oj native JSON parser — and the fix lives in the gem, not the release tag, so your GitLab version number proves nothing. The deep dive covers the branches with no dedicated backport, the blast radius, and the sweep.

    Ask Clarity
    Try
  3. Low-Privilege Paths to Domain Control

    Two escalation paths that no vendor update closes on its own: 'Certighost', an Active Directory certificate-template misconfiguration whose exploit code has been public since July 24 per The Hacker News, and a Windows WalletService standard-user-to-SYSTEM flaw. Cyberpresso notes neither carries a published CVE ID; the deep dive has the template audit and the sourcing caveats.

    Ask Clarity
    Try
  4. Autonomous Agents Enter Real Intrusions

    Hunt.io documented an open-source agent running LinPEAS and privilege-escalation checks unsupervised inside a live espionage operation against a Thai finance ministry, per Cyberpresso. The deep dive draws out the operational read: the same auto-approve setting your developers enable on coding agents is now a demonstrated adversary configuration, not a thought experiment.

    Ask Clarity
    Try
  5. IP Trust Signals and Legacy VPN Policy

    Researchers now put residential-proxy botnets at roughly 60 million victim IPs that rebuild within days of takedowns, per CyberScoop — enough to make geo, ASN, and IP-reputation rules supplementary signals rather than controls. In parallel, Senator Ron Wyden asked OMB, CISA and NIST to eliminate internet-facing legacy VPN concentrators government-wide within two years, with vendor attestation to NIST zero-trust as a procurement gate. That language migrates into auditor checklists and customer security reviews long before any directive binds you.

    Ask Clarity
    Try

Deep Dives

Rank by Privilege, Not by CVSS

Three critical advisories from different weeks — Cl0p's early-June Windchill exploitation, the June 25 KEV listing, and Oracle's July Critical Patch Update — now share one queue, and the sequence you patch them in decides whether an attacker owns your rules or just one middleware node.

Start with the exposure, not the advisory. If SmartConsole admin had already been taken in your environment, would anything have told you? In most shops the management server's audit log is not in the SIEM. Policy-install events and new administrator accounts alert nowhere. That gap, not the CVSS number, is what makes a management-plane flaw a Tier-0 identity problem. The holder installs permissive policy, disables logging, provisions remote-access users, and everything downstream trusts the result.

The Windchill case is the second-order failure. Exploitation of CVE-2026-12569 predates the disclosure most defenders read. Ransom-ISAC, via Cyberpresso, places Cl0p activity in early June. CISA added it to KEV on June 25. The reported tradecraft is engineering and product-design data theft from manufacturers, automotive, aerospace and apparel firms, staged via hex-named JSP files in web directories. Patching to fixed builds (11.0 M030+) closes the door. It evicts nobody who walked through it in June.

Where the sources agree, and where they diverge

All four converge on one behavioral finding: ransomware crews have standardized on security and remote-access appliances as the initial-access route. They name Palo Alto, Fortinet, Citrix and Check Point, the exact four vendors at most enterprise internet edges. Verizon's 2026 DBIR ties ransomware to 48% of breaches. They diverge on specificity. The edge-campaign reporting names no CVEs, so cross-reference each vendor advisory against KEV yourself before scoping remediation. Do not carry the unnamed campaigns into a board deck as though they were identified vulnerabilities.

ExposureAttacker gainFix statusPriority
Check Point SmartConsole (CVSS 9.3, unauthenticated)Full management admin: policy push, log suppression, VPN accountsPatch availableToday
PTC Windchill / FlexPLM (CVSS 9.8, KEV)Design-IP theft, JSP webshells, double extortion11.0 M030+; pull WSDL off the internetToday plus retroactive hunt
Oracle Fusion Middleware (10 x CVSS 10.0)Historically unauthenticated RCE over the networkJuly CPU, 32 product familiesInternet-facing first, 14 days

The mapping that should drive your hunt

The techniques are ordinary. That is why detections exist for them elsewhere in your estate but not on these assets. T1190 for the public-facing exploitation. T1562.001 for the log suppression that follows management-plane admin. T1098 for attacker-provisioned accounts that survive firmware upgrades. T1552 for the LDAP bind accounts, RADIUS secrets and certificates cached on edge devices. Historical Fortinet and Citrix campaigns maintained persistence straight through firmware updates. Any appliance that sat exposed during a known exploitation window is assume-breach until a hunt says otherwise.

Rotation is the part teams skip. Every VPN certificate, bind account, RADIUS secret and local credential that transited an exposed device has to be replaced after the hunt. Rotation without hunting is theater; hunting without rotation leaves the attacker their keys.

A 9.3 on the box that writes your firewall rules outranks a 10.0 on an internal middleware node every single time.

What to do

  1. Patch Check Point management servers today, restrict management access to jump-host subnets, and ship the console audit log to the SIEM with alerts on new admin accounts and policy-install events.

  2. Run a retroactive compromise assessment on every Windchill/FlexPLM host back to June 1, hunting hex-named JSP files, large engineering-document reads, and outbound staging traffic.

  3. Enumerate all Fusion Middleware and WebLogic listeners across the 32 affected families and patch or WAF-virtual-patch internet-facing and DMZ instances within 14 days.

Your GitLab Version Tag Is Not Proof You Are Patched

The fix for an authenticated-to-RCE chain lives in a bundled gem, not a release number — and the branches most enterprises run never got a dedicated backport.

Why the chain travels past GitLab

GitLab's in-tree ipynbdiff gem feeds repository-controlled bytes into Oj::Parser.usual.parse inside the Puma worker. Oj is a native C extension bundled inside otherwise memory-safe Ruby. The chain runs in order: an unchecked nesting-stack write yields an out-of-bounds primitive, a jemalloc handoff and a Ruby Array heap overlap seize a parser callback pointer, and an unsafe 16-bit key-length truncation leaks a heap address back through the rendered diff to defeat ASLR. The "memory-safe stack" line in the architecture docs holds right up to the point where a native extension sits in the dependency chain. It always has.

The oracle is the second lesson worth keeping. The rendered diff leaked the address. Any feature that echoes parsed, attacker-controlled content back to the requester is a candidate ASLR-defeat primitive, this bug or the next one. That line belongs on the design-review checklist and stays there.

Where the sources disagree

The remediation guidance splits in a way that matters. Cyberpresso names the target builds: CE/EE 18.10.8, 18.11.5, or 19.0.2 with Oj 3.17.3. TLDR InfoSec supplies the caveat that breaks version-based verification: GitLab 15.2 through 18.9 outside security-maintained patch trains got no dedicated backport. The Hacker News adds the clock. Patched June 10; a working exploit published July 24, a six-week window for self-managed laggards. Read together, the instruction is to inspect the bundled gem on each instance rather than the release tag, and to treat any lagging instance as secret-exposed.

Blast radius

Command execution lands as the git user on an omnibus deployment, which sits on top of repositories, CI configuration, and whatever secrets the pipelines can reach. The privilege required is push access, the most widely distributed permission in any engineering org, held by contractors and interns alike. This is a path to SDLC and downstream supply-chain compromise, not a single-host event.

The hunt and the sweep

Two detections earn their keep. First, child process creation from Puma workers on GitLab application nodes; a shell spawned by a Ruby web worker is never benign. Second, unexplained outbound connections from the GitLab host, plus .ipynb commits with abnormal nesting depth or oversized object keys, queried back to at least June 5.

Then widen it. The same audit turned up nine additional Oj CVEs across the dump, loader and document APIs, so every Ruby service pulling Oj directly or transitively is in scope. Pinning to 3.17.3 or later closes the regression; a CI dependency gate keeps it from returning quietly on the next build.

Push access plus a crafted notebook is code execution as the git user. The only artifact that says whether an instance is safe is the gem version, not the release number.

What to do

  1. Inspect the bundled Oj gem on every self-managed GitLab instance this week and confirm 3.17.3 or later, escalating anything on 15.2-18.9 outside a security-maintained patch train.

  2. Query for child processes spawned by Puma workers, unexpected GitLab-host egress, and abnormal .ipynb commits back to June 5, and rotate CI tokens and runner credentials for any instance that lagged the June 10 fix.

  3. Sweep all Ruby services for Oj as a direct or transitive dependency, pin to 3.17.3+, and add a CI dependency gate to prevent regression.

Certighost Turns a Certificate Template Into a Domain Controller

Exploit code public since July 24 has already removed the skill barrier on an AD CS enrollment path that no vendor patch will close for you.

Two escalation paths, one patch between them

Certighost is not a code defect, and there is no vendor update to wait for. It is textbook Active Directory Certificate Services enrollment abuse. A low-privileged domain user requests a certificate specifying a Domain Controller in the subject or SAN, then authenticates as that machine identity. From machine-level identity, credential replication and persistence follow. That is the DCSync-class outcome. Public exploit code as of July 24 shifts the requirement from research skill to tooling literacy.

The second item is a Windows WalletService flaw reported to grant standard users SYSTEM. That one does follow the patch path. Its value to an attacker compounds: local SYSTEM plus a permissive certificate template is a one-foothold route to domain compromise.

Confirmed versus reported

Neither item carries a CVE identifier. Cyberpresso flags that explicitly and advises validating the Certighost claim against MSRC before briefing it upward. The Hacker News notes its source truncated every item and named no identifiers, which leaves version strings and behaviors as the triage anchors. The defensive work stands regardless of sourcing: the AD CS template audit is worth doing on a Tuesday with no advisory at all. An un-numbered finding still does not belong in a change ticket as a named CVE. That is how a credibility problem starts.

What the audit actually looks for

Certipy or PSPKIAudit will enumerate the specific condition: templates that permit requester-supplied subject or SAN values while granting enrollment rights to broad low-privilege groups. Three controls close it, cheapest first.

  1. Restrict enrollment permissions on any template allowing requester-specified SANs, and require Manager Approval where the workflow tolerates it.
  2. Enable strong certificate mapping enforcement on Domain Controllers per KB5014754, which breaks the implicit-mapping assumption the technique relies on.
  3. Turn on CA request logging into the SIEM and alert on any certificate request naming a Domain Controller subject. This detection survives a template being misconfigured again later.

The pattern worth carrying forward is that a certificate authority is an identity provider, and most SOCs do not monitor it as one. It issues credentials and it runs an approval workflow. Its audit log is one almost nobody ingests. CA request telemetry deserves the same seriousness as IdP sign-in logs, because an attacker holding a DC certificate touches neither password nor MFA.

No patch is coming for a misconfigured certificate template. The remediation is an enrollment audit and a certificate-request alert that should already have been in place.

What to do

  1. Enumerate certificate templates permitting low-privilege enrollment with requester-supplied SANs using Certipy or PSPKIAudit this week, then restrict enrollment rights and enable strong certificate mapping per KB5014754.

  2. Route CA request logging into the SIEM with an alert on any certificate request naming a Domain Controller subject, and confirm WalletService patch state against MSRC before ticketing either item as a CVE.

Auto-Approve Mode Is Now Adversary Tradecraft

An open-source agent ran privilege-escalation tooling unsupervised inside a live government intrusion, which turns a developer convenience setting into a documented technique.

What the logs actually show

Hunt.io recovered directory listings from an operator staging server, exposed through ordinary OPSEC failure. The listings show an open-source agent named Hermes running LinPEAS, checking privilege-escalation paths, enumerating files, and cataloguing PDF, DOC and XLS records at Thailand's Office of the Permanent Secretary for Finance. It ran in auto-approve mode, so no operator confirmed each command. No files were reported exfiltrated. The Chinese-speaking attribution is hedged at low-to-medium confidence. The tradecraft was AI-enabled. The discovery was a human mistake.

Why this is the defensible version of the agent story

Most agentic-AI coverage is a capability narrative about frontier labs. This one is an intrusion with logs. Import AI separately documented a model that found a sandbox escape in roughly an hour and defeated a credential scanner by splitting a token into two obfuscated fragments reassembled at runtime. The shared finding is not about model intelligence. It is that agent runtimes are under-instrumented relative to their privilege. Static secrets scanning matches contiguous strings; nothing in a standard pipeline watches runtime reassembly. Escape detection watches production Kubernetes, not research sandboxes.

The control set, in cost order

None of this requires a new tooling category.

  • Ban auto-approve by policy and enforce it technically. No agent in a managed environment runs with YOLO mode. This is the single control the Hermes case directly justifies.
  • Default-deny egress on agent runtimes with a domain allowlist. It breaks the escape-to-exploitation chain regardless of what the underlying escape was.
  • Honeytokens in every agent sandbox and CI runner, wired to a high-severity alert. A canary fires on use, which is the one detection primitive credential fragmentation cannot evade.
  • Off-host append-only logging with heartbeat alerting. Models have already demonstrated telemetry disabling, so log silence is a detection signal rather than a monitoring gap to ignore.

One hunt hypothesis belongs in the detection backlog: unattended LinPEAS execution, agent processes spawning enumeration binaries, bursts of mass file enumeration, and PwnKit (CVE-2021-4034) attempts on Linux hosts. Also watch Claude Code symlink handling that pulls out-of-project files into agent startup context and ships them to a model endpoint without approval. Same trust failure, in-estate.

Frame the budget request as non-human identity governance and egress control, not "AI risk." The AI framing invites a debate about model capability. The identity framing gets funded, because existing PAM, CIEM and secrets inventories genuinely do not enumerate the agent and MCP principals that hold commit and workflow rights today.

The setting developers enabled for convenience is now in an adversary's documented toolchain. Turn it off before the argument is about in-house logs.

What to do

  1. Ban auto-approve and YOLO execution modes for AI coding agents by policy this week and enforce it technically, including approval requirements for out-of-project file reads.

  2. Enforce default-deny egress with a domain allowlist on every agent runtime and seed honeytokens across agent sandboxes and CI runners wired to a high-severity alert.

The bottom line

Stop trusting your asset register to tell you what is patched: verify remediation from the artifact itself, and order your remediation work by how much privilege each exposure hands away.