ctipilot.ch

CTI Daily Brief — 2026-05-11

Typedaily
Date2026-05-11
GeneratorClaude Opus 4.7 (`claude-opus-4-7`)
ClassificationTLP:CLEAR
LanguageEnglish
Promptv2.48
Items20
CVEs11
On this page

0. TL;DR

  • PHP SOAP extension use-after-free patched in all 8.x branches — CVSS 9.5, no in-the-wild exploitation reported. CVE-2026-6722 in the SOAP_GLOBAL(ref_map) object-deduplication hash exposes any PHP application that instantiates a SoapServer against untrusted input — fixes shipped in 8.2.31 / 8.3.31 / 8.4.21 / 8.5.6 on 2026-05-07 (PHP GHSA-85c2-q967-79q5, 2026-05-07; php.watch — PHP 8.5.6 release, 2026-05-07). Two companion SOAP memory-management CVEs (CVE-2026-7261, CVE-2026-7262) are fixed in the same releases. See § 5 for the bug class.
  • Dirty Frag Linux LPE now confirmed exploited in the wild — Microsoft Threat Intelligence reports "limited in-the-wild activity" involving su privilege escalation after SSH initial access (Microsoft Security Blog, 2026-05-08). Red Hat published RHSB-2026-003 with backports rolling out (Red Hat, updated 2026-05-09); NCSC.ch issued a Swiss federal advisory (NCSC-CH Security Hub post 12547, 2026-05-08). See § 4 UPDATE.
  • BSI flags Netgate pfSense Community Edition as critical-unpatched. Netgate refuses to patch two authenticated root-RCE CVEs (CVE-2025-69690 / CVE-2025-69691) on the grounds that admins are expected to have shell privilege — BSI's WID-SEC-2026-1435 advisory (2026-05-08) explicitly rates the unpatched state "kritisch" (Full Disclosure, 2026-02-16). Relevant for DACH cantonal / municipal / SME deployments using the free CE build.
  • SMS-blaster smishing fraud establishing itself in Switzerland. ebas.ch (Swiss banking + HSLU) reports portable IMSI-catcher devices broadcasting as rogue base stations and forcing nearby smartphones within several hundred metres to attach and downgrade from 4G/5G to 2G, then delivering smishing payloads that bypass operator SMS filtering (ebas.ch, 2026-05-07). Banking and credit-card credentials are the primary target — relevant for federal mobile-security policy guidance.

3. Research & Investigative Reporting

No new research with operational defender impact this run — section intentionally left empty. The 36 h window opened immediately after the Sunday post-Patch-Tuesday research lull; every flagship research item discovered by the S3 sweep (Talos UAT-8302 follow-up, Kaspersky DAEMON Tools deep dive, Mandiant BRICKSTORM defender's guide, Sekoia APT28 RePythonNET analysis) was published 2026-05-04 through 2026-05-08 — outside the 36 h window and already covered by prior briefs where relevant. Verizon DBIR 2026 (PD-9 annual-report candidate) remained indexed but with no confirmed in-window press release; flagged for next run.

4. Updates to Prior Coverage

UPDATE: Dirty Frag — Microsoft confirms limited in-the-wild exploitation; Red Hat, NCSC.ch, CCB Belgium publish coordinated advisories

UPDATE (originally covered 2026-05-09): Microsoft Threat Intelligence published Active attack: Dirty Frag Linux vulnerability expands post-compromise risk on 2026-05-08 reporting "limited in-the-wild activity where privilege escalation involving su is observed." The attack chain observed: SSH initial access → shell spawn → execution of an ELF binary that triggers the LPE primitive in either CVE-2026-43284 (xfrm-ESP page-cache write) or CVE-2026-43500 (RxRPC page-cache write). This is the first formal "exploited in the wild" attribution since the V4bel write-up published on 2026-05-07.

Red Hat published RHSB-2026-003 covering both CVEs on 2026-05-07 and updated it on 2026-05-09, with backported errata rolling out to RHEL 8/9/10 and OpenShift 4 (Red Hat RHSB-2026-003). NCSC.ch issued Security Hub post 12547 on 2026-05-08 noting "Proof of Concept Available" and advising temporary blacklisting of the esp4, esp6 and rxrpc kernel modules pending distribution backports. Belgium's CCB issued a parallel advisory (CCB Belgium, 2026-05-08).

The upstream xfrm-ESP fix merged on 2026-05-07 (kernel commit referenced by V4bel and corroborated by Red Hat); the RxRPC fix was still pending in the netdev tree at time of writing. AlmaLinux backported kernels on 2026-05-08; Ubuntu noted fixes will arrive via the kernel image package. Defender hunt focus: outbound SSH-to-unprivileged-shell-to-ELF-execution chains immediately followed by setuid(0) or su invocations, plus suspicious setsockopt(AF_ALG) patterns on the esp4/esp6/rxrpc modules followed by splice() syscalls into the page cache of read-only files. The Microsoft post emphasises that the page-cache write primitive bypasses on-disk file integrity monitoring (AIDE / IMA-EVM / auditd watch rules) — post-incident forensics must compare in-memory page contents against on-disk checksums, not just md5sum of the file.

Mitigation note (carried from 2026-05-09): on Ubuntu where unprivileged user namespaces are blocked by default, the esp4/esp6 path is harder to reach because CAP_NET_ADMIN is required — but the RxRPC path remains exploitable without user-namespaces; the two CVEs are designed to complement each other. Where IPsec is in use, Red Hat suggests kernel.unprivileged_userns_clone=0 (sysctl) as a less disruptive mitigation than full esp4/esp6 module blacklisting. AFS users cannot blacklist rxrpc without losing AFS — wait for the distribution backport.

Changes since first coverage(2 prior appearances)
  1. 2026-05-112026-W19
  2. 2026-05-112026-05-09

5. Deep Dive — CVE-2026-6722 PHP SOAP Use-After-Free in `SOAP_GLOBAL(ref_map)`

Vulnerability class and primitive

The PHP SOAP extension (ext-soap) maintains per-request global state, including SOAP_GLOBAL(ref_map) — a libxml2-node-keyed hash mapping XML node addresses to PHP object pointers. Its purpose is object deduplication: when a SOAP envelope references the same logical object more than once (via SOAP multiRef / href), the extension parses the object once and re-uses the PHP object for every subsequent reference. The bug is in how soap_add_xml_ref() and adjacent helpers populate the map — the PHP object pointer is stored without taking an additional reference (no Z_TRY_ADDREF_P / zend_objects_store_add_ref). When a SOAP envelope contains an apache:Map node carrying duplicate keys, the second insertion overwrites the first, and the overwrite path frees the original PHP object via zval_ptr_dtor while a stale pointer to it remains in the map. Subsequent href resolutions in the same envelope retrieve that freed memory address; the PHP allocator may have already filled the freed slot with attacker-controlled bytes coming from later parts of the SOAP body. The result is a CWE-416 use-after-free with attacker-controlled overwrite of the freed object's vtable / properties, leading to arbitrary code execution as the PHP worker — same process privilege as the PHP-FPM pool (PHP GHSA-85c2-q967-79q5; php.watch — PHP 8.5.6 release).

CVE-2026-7261 (UAF in SOAP_PERSISTENCE_SESSION header parsing — GHSA-m33r-qmcv-p97q) and CVE-2026-7262 (NULL dereference in Apache map NULL-check — GHSA-hmxp-6pc4-f3vv) are companion defects in the same extension fixed in the same point releases (both Moderate, CVSS 4.0 6.3). The companion bugs are lower-impact — CVE-2026-7261 needs a session-pinned SOAP server (less commonly deployed), CVE-2026-7262 reaches NULL deref rather than UAF — but they share the same memory-management bug class and the same patch set, suggesting the upstream review pass that produced GHSA-85c2-q967-79q5 covered the whole apache-map handling surface (PHP 8 ChangeLog).

Exploitation prerequisites and attack surface

A SoapServer reachable on a public HTTP endpoint, configured to accept arbitrary <SOAP-ENV:Envelope> bodies, is sufficient. No authentication is required — SOAP servers typically do not check session cookies because SOAP itself carries authentication in headers if needed, and many SOAP services are integration endpoints reachable by any client that knows the URL. The attacker only needs to POST a SOAP envelope to the endpoint URL. The PHP application's own code does not have to call SoapServer explicitly for the bug to trigger — any framework or library that mounts a SOAP endpoint (legacy WSDL-described integration handlers, the SoapClient/Server pair used for reverse-direction RPC, mod_php applications with SOAP exposed via the routing layer) is in scope.

Where SOAP commonly lingers in EU public-sector estates: legacy integration endpoints retained for backwards compatibility with partner systems long after the customer-facing UI has moved to REST; framework-internal SOAP receivers exposed unintentionally on public ingress paths because the routing default did not exclude them. The GHSA does not enumerate product impact — any PHP application built against the affected 8.x branches with ext-soap enabled and a SoapServer instantiated against attacker-reachable input is in scope.

Detection concepts

  • WAF rule class: alert on SOAP envelopes whose body contains an apache:Map element with duplicate key children, or whose href attribute count exceeds the number of distinct id attributes by more than the structurally expected amount. The published GHSA gives enough description to derive a structural detection rule without IOCs.
  • PHP process crash monitoring: SIGSEGV / SIGABRT in php-fpm worker processes correlated with SOAP-handling URLs is a high-fidelity signal of attempted exploitation, since the UAF primitive is fragile under unfamiliar heap layouts and unsuccessful attempts typically segfault the worker rather than execute clean.
  • Linux audit / EDR: hunt for unexpected child processes spawned from php-fpm, php, or apache2 parent-process trees — particularly shell binaries (/bin/sh, /bin/bash), interpreter binaries (perl, python3, node), and outbound TCP connections from the PHP worker UID to non-standard ports. Behavioural patterns are the same as historical PHP-deserialisation RCE incidents.
  • Web access logs: POST requests with Content-Type: text/xml or application/soap+xml to endpoints not previously logged as SOAP receivers; unusually large SOAP bodies (UAF triggers often need significant heap manipulation); rapid sequential POSTs to the same endpoint with identical or near-identical bodies (heap-spray fingerprint).
  • PHP error logs: increased Notice: Trying to access array offset on null or Fatal error: Uncaught Error: Call to a member function ... on null clustered around SOAP request handlers — failed exploitation attempts.

Hardening and mitigation

  • Patch is the primary mitigation: upgrade to PHP 8.2.31, 8.3.31, 8.4.21 or 8.5.6 (all released 2026-05-07). Inventory PHP versions across web-facing infrastructure, including container base images that may have pinned older PHP minors.
  • If patching is delayed: disable the SOAP extension where unused — phpdismod soap (Debian/Ubuntu), remove extension=soap from php.ini (RHEL family), or rebuild custom Docker images without the extension. Restart PHP-FPM after the change.
  • Where SOAP must remain available: front the SoapServer endpoint with a WAF rule blocking duplicate-key apache:Map patterns and unusually deep XML nesting, restrict the endpoint to known consumer IP ranges via firewall, and require mutual-TLS for the SOAP endpoint where the integration partner supports it.
  • Defence-in-depth: PHP-FPM workers should run with the minimum filesystem privileges needed; open_basedir restrictions; disable_functions should include exec, system, shell_exec, passthru, proc_open, popen; SELinux or AppArmor confinement of the PHP worker process limits the blast radius of any successful RCE.
  • Audit your SoapServer instantiations: grep -rn 'new SoapServer' /var/www/ to enumerate every endpoint; document which are exposed publicly versus internally; remove or restrict the publicly-exposed ones unless business-justified.

6. Action Items

Patch PHP across all web-facing infrastructure

Upgrade every PHP 8.x installation to 8.2.31 / 8.3.31 / 8.4.21 / 8.5.6 (released 2026-05-07). Highest priority on Internet-exposed SoapServer endpoints — integration handlers, legacy ERP middleware, e-government forms-processing services. Inventory container base images (php:8.x-fpm, php:8.x-apache) and rebuild against patched minors. Where the patch cannot be applied immediately, phpdismod soap (or equivalent) on hosts that do not need SOAP, and front any remaining SoapServer with a WAF rule against duplicate-key apache:Map envelopes. See § 5 for the full detection and hardening playbook.

Apply Dirty Frag kernel backports — Microsoft now confirms in-the-wild

Pull Red Hat / AlmaLinux / openSUSE / Ubuntu kernel updates for CVE-2026-43284 (xfrm-ESP) and CVE-2026-43500 (RxRPC) as they land; Red Hat RHSB-2026-003 was updated 2026-05-09 and errata are rolling to RHEL 8/9/10. Where patches are not yet available, blacklist the esp4 / esp6 / rxrpc modules via /etc/modprobe.d/ after assessing IPsec / AFS dependencies — or, less disruptive on Ubuntu-style estates with default-blocked user namespaces, set kernel.unprivileged_userns_clone=0 via sysctl. Post-incident forensics on suspected Dirty Frag compromise cannot rely on md5sum of files (the primitive writes to page cache, not disk) — compare in-memory page contents against authoritative checksums.

Changes since first coverage(2 prior appearances)
  1. 2026-05-112026-W19
  2. 2026-05-112026-05-09

Restrict pfSense CE management interfaces; assume no patch is coming

For pfSense Community Edition deployments at the perimeter of cantonal, municipal, healthcare, education or SME networks: place the web GUI and SSH on a management VLAN reachable only from authorised admin workstations; block /xmlrpc.php at the network level if the XMLRPC API is not actively used by automation; rotate any admin password that ever traversed a management interface exposed beyond the management VLAN; audit system.xml for unexplained post_reboot_commands entries. Plan migration to pfSense+ (commercial), OPNsense, or an alternative supported firewall platform for any deployment that cannot be locked down. Treat Netgate's "expected behaviour for administrators" position as a permanent posture, not a temporary delay.

Brief mobile-device-policy owners on SMS-blaster smishing in CH

Add SMS-blaster awareness to federal-employee mobile-security guidance: if a handset briefly drops to 2G and immediately receives an SMS purporting to be from authorities, banks or courier services, treat the SMS as hostile regardless of carrier-side filtering. Where MDM supports it (Android 12+ Enterprise restrictions), disable 2G fallback on managed devices that do not need it. Add the smishing-lure language patterns the ebas.ch article describes to the IR runbook for staff-reported smishing. Coordinate with the federal mobile operator account team to obtain any SMS-blaster sightings the carrier has correlated against handset RAT (radio access technology) downgrade telemetry.

7. Verification Notes

Items dropped or held back

  • Ivanti EPMM May 2026 update (CVE-2026-6973 + CVE-2026-5787 / 5786 / 5788 / 7821) — both S1 and S2 surfaced this as candidate. Already covered as the 2026-05-08 deep dive and updated on 2026-05-09 (KEV deadline, 508 EU instances, victim list) and 2026-05-10 (KEV deadline expired, 850 internet-exposed instances, full May 2026 patch set, companion CVE numbering). Per PD-8 long-running-campaign rule (≤1 consolidated UPDATE per week unless something critical changes) and PD-13 (KEV deadline alone is not material new development), no qualifying delta in this window. The Help Net Security 2026-05-08 victim list (European Commission, Dutch Data Protection Authority, Dutch Council for the Judiciary, Finnish Valtori) was already cited in the 2026-05-09 UPDATE.
  • Apache CloudStack CVE-2026-25077 — surfaced by S1 with BSI WID-SEC-2026-1438 and Apache advisory 2026-05-05. Already logged in state/cves_seen.json (first_seen 2026-05-09) as dropped from § 2 — gate not cleared: command injection requires a CloudStack account, no KEV listing, no in-the-wild exploitation reported, not pre-auth on widely-deployed Internet-exposed software. Original decision stands.
  • ConnectWise ScreenConnect CVE-2024-1708 KEV-deadline 2026-05-12 — surfaced by S1 with Kimsuky/ToddlerShark and Storm-1175/Medusa attribution. The KEV addition was 2026-04-28; the actor-attribution article (The Hacker News) is dated 2026-04-29 — outside both the 36 h recency window and the 72 h developing-window. Per PD-13, a KEV deadline approaching is not in itself material new development. No in-window delta found, dropped.
  • Verizon DBIR 2026 — page is live; release date not confirmed inside the 36 h window. S3 flagged as next-run target if a May 9–10 press release is confirmed; would qualify as PD-9 annual-report deep-dive then.

Single-source / reduced-confidence items

  • pfSense BSI advisory[REDUCED-CONFIDENCE]. Three distinct sources are cited: BSI WID-SEC-2026-1435 (the canonical national-CERT advisory URL — page body is an Angular SPA, but the entry is confirmed in the BSI RSS feed with title "Netgate pfSense" and category "kritisch"); the original researcher disclosure on Full Disclosure (2026-02-16); cve.news 2026-05-08 third-party analysis citing Netgate's "expected behaviour" stance. The "kritisch / UNGEPATCHT" rating is taken from the BSI RSS-feed category and description fields fetched via the bsi-rss bridge subcommand — the linked WID URL is the canonical primary even though its body is JS-rendered. Confidence MEDIUM. If the BSI WID portal is replaced with a server-rendered fallback (or a per-advisory CSAF JSON endpoint), this item's confidence becomes HIGH.
  • SMS Blaster CH[SINGLE-SOURCE-OTHER]. ebas.ch is operated by the Swiss banking sector and HSLU (Lucerne University of Applied Sciences) and is a HIGH-reliability source for Swiss e-banking security awareness — but it is the only source for the "establishing itself in Switzerland" claim. No corroborating coverage from NCSC.ch, Swiss Federal Office of Communications (BAKOM), or major Swiss / Liechtenstein news outlets was found in the 36 h window. Confidence MEDIUM. The article also does not literally claim "first time in Switzerland" — it describes the technique as "establishing itself" — so the brief mirrors that softer phrasing.

Contradictions / ambiguities

  • Dirty Frag in-the-wild exploitation status — Microsoft vs CCB Belgium framing. Microsoft Threat Intelligence's 2026-05-08 post reports "limited in-the-wild activity" involving su privilege escalation after SSH initial access. CCB Belgium's 2026-05-08 advisory — published the same calendar day — states "no in-the-wild exploitation has been reported yet." The most likely explanation is publication timing within the same day (CCB published earlier than Microsoft's blog went live, or CCB's editorial cut-off pre-dated Microsoft's detection); operationally the conservative posture is to treat Dirty Frag as exploited in the wild per Microsoft, since Microsoft has the broader endpoint-telemetry surface and would be the first to surface emerging activity.

Sub-agents

  • S1 (Sonnet 4.6, 736 s): returned 4 items + CVE summary table. 2 items overlapped with S2 (Ivanti EPMM duplicate, dropped); 1 item already in dedup baseline (CloudStack); 1 item out-of-window (ScreenConnect); 1 item kept (PHP SOAP UAF). Telemetry: webfetch=16, websearch=22, bridge=6.
  • S2 (Sonnet 4.6, 629 s): returned 4 items. 2 items kept (Dirty Frag UPDATE, pfSense BSI); 1 duplicate of S1 (Ivanti EPMM); 1 item kept (SMS Blaster CH). Telemetry: webfetch=21, websearch=18, bridge=5.
  • S3 (Sonnet 4.6, 766 s): returned no in-window items. Discovery sweep confirmed every flagship research item was published 2026-05-04 through 2026-05-08 — outside the window. Annotated near-misses (Talos UAT-8302, Kaspersky DAEMON Tools follow-up, Verizon DBIR 2026 unconfirmed-window).
  • S4 (Sonnet 4.6, 959 s): returned no in-window items. SEC EDGAR weekend-quiet pattern confirmed (zero Item 1.05 filings 2026-05-09 / 2026-05-11). Canvas/Instructure long-running incident: no qualifying material delta beyond 2026-05-09 / 2026-05-10 coverage; Instructure status pages show no new incidents. Trellix / RansomHouse breach (all coverage 2026-05-01 → 2026-05-08, outside window) dropped.

Tool issues observed

  • tools/fetch_source.py ncsc-nl csaf raised NameError: name 're' is not defined on every call in S1, S2 returns — bug in the CSAF fetch function's import statement. Reported to backlog; NCSC-NL coverage relied on Techzine.eu (NL) and Help Net Security in S1.
  • tools/fetch_source.py enisa-euvd recent returned empty body on criticals, lastvulnerabilities, and exploited subcommands — ENISA EUVD API appears to be intermittently empty rather than returning a non-200 status. Persistent across S1 and S2; verify whether the EUVD service or the bridge subcommand is at fault.
  • BSI WID per-advisory pages (wid.cert-bund.de/portal/wid/securityadvisory?name=WID-SEC-2026-NNNN) remain Angular SPA shells unreadable by every available tool. Bridge bsi-rss returns the entries list with title + summary but not the full advisory body. This is a structural gap that surfaces every time a BSI advisory is the only EU national-CERT signal on a vulnerability.

Recency window

  • gap_hours = 24 (prior brief briefs/2026-05-10.md).
  • window_hours = 36; developing_window_hours = 72.

Coverage gaps

Coverage gaps: cisa-kev (no new KEV additions 2026-05-09 / 2026-05-11 weekend gap, bridge fetched 200 OK); ncsc-ch-security-hub (most recent post 12551 on 2026-05-08; no new posts 2026-05-09 / 2026-05-11 weekend gap; bridge OK); enisa-euvd (bridge recent criticals/lastvulnerabilities/exploited returned empty bodies — ENISA EUVD API or bridge subcommand fault); bsi-de (WID per-advisory pages Angular SPA — content corroborated via RSS title/summary only); advisories-ncsc-nl (bridge ncsc-nl csaf raises NameError: name 're' is not defined — fetch function bug); cisco-psirt (Angular SPA on listing — individual advisory URLs work directly); cert.ssi.gouv.fr (RSS works; per-advisory pages need bridge url); databreaches-net (403 across UA spoofs — persistent failure mode for this source); ico-uk (JS-rendered listing — no May 2026 enforcement actions found via WebSearch); cnil-fr, edpb, aepd, garante (no in-window enforcement / breach decisions); bleepingcomputer (article-page 403 — discovery via listing OK); rts.ch, 20min.ch (paywall / 403); inside-it-ch (transport 403 on bridge attempt); prodaft (Next.js SPA shell, blog-post content unreadable); sec-edgar (zero Item 1.05 filings in window — weekend gap, expected); ccn-cert-es, cert-pl, govcert-ch, csirt-acn-it — not fetched in this run.

Editorial choices — 1 item considered and not included (the editor's drop reasoning, normally only in § 7)

Items dropped or held back

  • Ivanti EPMM May 2026 update (CVE-2026-6973 + CVE-2026-5787 / 5786 / 5788 / 7821) — both S1 and S2 surfaced this as candidate. Already covered as the 2026-05-08 deep dive and updated on 2026-05-09 (KEV deadline, 508 EU instances, victim list) and 2026-05-10 (KEV deadline expired, 850 internet-exposed instances, full May 2026 patch set, companion CVE numbering). Per PD-8 long-running-campaign rule (≤1 consolidated UPDATE per week unless something critical changes) and PD-13 (KEV deadline alone is not material new development), no qualifying delta in this window. The Help Net Security 2026-05-08 victim list (European Commission, Dutch Data Protection Authority, Dutch Council for the Judiciary, Finnish Valtori) was already cited in the 2026-05-09 UPDATE.
  • Apache CloudStack CVE-2026-25077 — surfaced by S1 with BSI WID-SEC-2026-1438 and Apache advisory 2026-05-05. Already logged in state/cves_seen.json (first_seen 2026-05-09) as dropped from § 2 — gate not cleared: command injection requires a CloudStack account, no KEV listing, no in-the-wild exploitation reported, not pre-auth on widely-deployed Internet-exposed software. Original decision stands.
  • ConnectWise ScreenConnect CVE-2024-1708 KEV-deadline 2026-05-12 — surfaced by S1 with Kimsuky/ToddlerShark and Storm-1175/Medusa attribution. The KEV addition was 2026-04-28; the actor-attribution article (The Hacker News) is dated 2026-04-29 — outside both the 36 h recency window and the 72 h developing-window. Per PD-13, a KEV deadline approaching is not in itself material new development. No in-window delta found, dropped.
  • Verizon DBIR 2026 — page is live; release date not confirmed inside the 36 h window. S3 flagged as next-run target if a May 9–10 press release is confirmed; would qualify as PD-9 annual-report deep-dive then.