CVE-2026-48907 — Joomla Content Editor (JCE) Unauthenticated RCE

Chained authorization + file-validation failure in the JCE profile-import workflow → webshell upload → arbitrary PHP execution on Linux web servers. Actively exploited; CISA KEV.
Threat
CVE-2026-48907 (JCE ≤ 2.9.99.4)
Severity
EXPLOITED ITW · CVSS 10.0
Type
Public-facing app exploit → Web Shell
Access
Unauthenticated, remote
Version
v0.1 · 2026-06-18
Author
HuntPack
Confidence
High (CISA KEV + vendor advisory)
01

Executive Summary

CVE-2026-48907 is a maximum-severity (CVSS v4 10.0) unauthenticated remote code execution flaw in the Joomla Content Editor (JCE) extension, present in all versions up to and including 2.9.99.4. The root cause is a chained design failure in JCE's profile import workflow: a missing authorization check lets an unauthenticated attacker create a fake editor profile, insufficient file validation lets that profile re-enable uploads of .php and .txt files, and disabled upload safety controls then permit a webshell to be uploaded and executed.

Attackers drop a PHP webshell into world-writable web directories such as /images/, /media/, or /tmp/, yielding a persistent, unauthenticated backdoor on the Linux web server (Apache/nginx + PHP-FPM). From there the typical objective is command execution, ingress tool transfer, and lateral movement. CISA added CVE-2026-48907 to the Known Exploited Vulnerabilities catalog on 2026-06-16, citing active, automated exploitation, and ordered FCEB agencies to patch by Friday. Fixed in JCE 2.9.99.5 (early June 2026), with additional hardening in 2.9.99.6.

The highest-value defensive angle is behavioral, not signature-based: a web-server process (httpd / apache2 / nginx / php-fpm) is not supposed to spawn an interactive shell or write a new .php file into an upload directory. Those two telemetry events are the spine of this hunt and survive payload/IP rotation that automated exploitation churns through.

Defender priority: Patch JCE to ≥ 2.9.99.5 immediately. In parallel, hunt for httpd/apache2/nginx/php-fpm → sh/bash/python/perl process lineage and for new .php files written under web-writable directories. A single confirmed hit on either is a probable live webshell — treat as active intrusion.

02

Source Review & Web Hunter Notes

TierSourceKey FindingCarry Forward
1 · GovCISA KEV CatalogAdded 2026-06-16; active automated exploitation; FCEB patch-by-Friday directive.Yes
1 · VendorYesWeHack RCE disclosure (JCE)Chained authz + file-validation + upload-control failure in profile import; fix in 2.9.99.5.Yes
2 · PressBleepingComputerCISA orders feds to patch max-severity Joomla plugin flaw by Friday; CVSS 10.0.Yes
2 · PressThe Hacker NewsCISA warns of actively exploited Joomla extension flaw; webshell drops in writable dirs.Yes
2 · PressSC World / SC MediaMax-severity JCE flaw targeted in automated attacks; affects sites running JCE.Partial

Web-hunter note: Atomic IOCs (specific webshell hashes, C2 IPs) are not consistently published because exploitation is automated and payloads/infrastructure rotate. The pack therefore leads with behavioral detection and treats published file/IP indicators as perishable hunt/enrich values rather than durable blocks.

03

Hunt Brief & Attack Chain

Hypotheses (ordered by fidelity)

  1. H1 (high): A web-server process (httpd/apache2/nginx/php-fpm) spawned an interactive shell or scripting interpreter (sh/bash/dash/python/perl) → webshell command execution. Lowest FP, highest fidelity.
  2. H2 (high): A new .php file was written into a web-writable, non-code directory (/images/, /media/, /tmp/) by a web-server-owned process → dropped webshell.
  3. H3 (medium): The web-server process tree spawned recon/network utilities (whoami/id/uname/curl/wget) shortly after a shell, indicating hands-on-keyboard or scripted post-exploitation.
  4. H4 (medium): A web-server process made outbound connections to new/rare external IPs (ingress tool transfer or reverse shell), i.e. server-initiated egress that is atypical for a content site.
  5. H5 (medium): Local web/access logs show unauthenticated POSTs to JCE profile-import / file-upload endpoints (com_jce controller, profile import, upload tasks) — the exploitation request itself.
  6. H6 (low): A web-server-owned ELF or interpreter executed from a writable upload/temp path (second-stage tooling staged via the webshell).

Attack chain

StepTelemetryHunt Angle
1 · Unauth profile creation + import (CVE-2026-48907)Web/access logs (POST to com_jce profile import)H5 — native log review of upload endpoints
2 · Re-enable .php/.txt uploads via imported profileApp/config writes; access logsH5 — anomalous profile-config change
3 · Upload webshell to writable dirFileCreateInfo / NewExecutableWritten (TargetFileName)H2 — .php write into /images, /media, /tmp
4 · Execute webshell → spawn shellProcessRollup2 (ParentBaseFileName + ImageFileName)H1 — web-server → shell lineage
5 · Post-exploitation reconProcessRollup2 (CommandLine)H3 — recon utils under web-server tree
6 · Ingress tool transfer / C2NetworkConnectIP4 / DnsRequestH4 — server-initiated egress to new IPs
04

Consolidated IOC Table

Exploitation is automated and payloads/infrastructure rotate; few durable atomic IOCs are published. The values below are behavioral and contextual. Replace REPLACE_WITH_* placeholders with indicators confirmed in your own telemetry before promoting to a block.

TypeValueConfidenceActionContext
behaviorhttpd/apache2/nginx/php-fpm spawns sh/bash/python/perlhighdetectWebshell command execution (H1)
behaviorNew .php written to /images/, /media/, /tmp/ by web-server uidhighdetectWebshell drop (H2)
path/images/*.php, /media/*.php, /tmp/*.phpmediumhuntWebshell staging locations
uriindex.php?option=com_jce&task=...profile/import / uploadmediumhuntExploitation request pattern (H5)
sha256REPLACE_WITH_WEBSHELL_SHA256mediumhuntConfirmed webshell file hash (perishable)
ipv4REPLACE_WITH_SCANNER_OR_C2_IPlowenrichSource of exploit POST / reverse-shell peer
05

Affected Surface & Telemetry Matrix

SurfaceRequired TelemetryPriorityGap Risk
Linux web servers running Joomla + JCE (Apache/nginx + PHP-FPM)Falcon sensor for Linux — ProcessRollup2CriticalLow
Web-writable upload dirs (/images, /media, /tmp)FileCreateInfo / NewExecutableWritten / ElfFileWrittenHighMed — file telemetry coverage varies
Server-initiated egressNetworkConnectIP4, DnsRequestMediumLow
Joomla / web-server access logsHTTP logs forwarded to NGSIEM (non-sensor)MediumHigh — only if logs are shipped
06

ATT&CK Mapping

TacticTechniqueObserved BehaviorQuery / Control
Initial AccessT1190 — Exploit Public-Facing ApplicationUnauth profile-import RCE in JCEQ5 · Patch (S12)
PersistenceT1505.003 — Server Software Component: Web ShellPHP webshell in writable dirQ2 · Q6
ExecutionT1059 — Command and Scripting InterpreterWeb server spawns sh/bash/python/perlQ1 · Q3
DiscoveryT1059 / T1082 — recon utilitieswhoami/id/uname under web-server treeQ3
Command & ControlT1105 — Ingress Tool Transfercurl/wget pull; outbound to new IPQ4
07

Native Audit-Log Hunts (non-CQL)

Checks that do not require Falcon process telemetry — run these directly on the host or against shipped logs:

  • JCE version inventory: In Joomla admin → Extensions → Manage, confirm JCE is ≥ 2.9.99.5 (ideally 2.9.99.6). Any host ≤ 2.9.99.4 is presumed exposed.
  • Webshell sweep: On each web root, list .php files under non-code upload dirs and sort by mtime:
    find /var/www -path '*/images/*' -o -path '*/media/*' -name '*.php' -newermt '2026-06-01' -printf '%TY-%Tm-%Td %p\n'
  • Access-log review: grep web/access logs for POSTs to com_jce profile-import / upload tasks, especially from single source IPs hitting many sites or with non-browser user agents.
  • Profile-config diff: Review JCE editor profiles for unexpected/unknown profiles or profiles that allow .php/.txt uploads.
  • Auth correlation: Webshell activity is unauthenticated — there will be no corresponding admin login. Absence of an auth event before a config change is itself suspicious.
08

CrowdStrike LogScale CQL Hunt Queries

Pick your tenant's cloud first — every "Open in Falcon" button below uses this selection.
Q1 · Web server spawns a shell / interpreter
CONF HIGHFP LOWCOST LOW

Looks for: a web-server parent process (httpd/apache2/nginx/php-fpm) directly spawning an interactive shell or scripting interpreter — the core webshell-execution signal (H1). FP: rare; legitimate maintenance crons or PHP exec() in plugins can fire — baseline per host and exclude known scripts.

// HUNT: Web-server process spawns shell/interpreter (webshell execution)
// MITRE: T1059, T1505.003
// CONF: high  FP: low  COST: low | REQUIRES: Falcon for Linux ProcessRollup2
// FALSE POSITIVES: maintenance scripts, plugin exec() of helper binaries
// TUNING: exclude known CommandLine helpers (e.g. /usr/bin/convert, sendmail) after baselining
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| ParentBaseFileName=/^(httpd|apache2|nginx|php-fpm|php-fpm\d.*)$/i
| ImageFileName=/\/(sh|bash|dash|zsh|ksh|python\d?|perl|ruby|nc|ncat)$/i
| table([@timestamp, ComputerName, aid, ParentBaseFileName, ImageFileName, CommandLine, UserName], limit=200)
Q2 · New .php written to a web-writable directory
CONF HIGHFP MEDCOST LOW

Looks for: a .php file created under an upload/temp directory that should only hold media or scratch data (H2) — the dropped webshell. FP: some cache/plugin frameworks write generated .php into /media/ or cache paths; exclude known cache directories and legitimate writer processes.

// HUNT: PHP file dropped into web-writable upload/temp directory (webshell)
// MITRE: T1505.003
// CONF: high  FP: medium  COST: low | REQUIRES: FileCreateInfo / NewExecutableWritten
// FALSE POSITIVES: cache frameworks generating .php under /media or cache dirs
// TUNING: exclude TargetFileName paths under known cache dirs (e.g. /cache/, /administrator/cache/)
#event_simpleName=/NewExecutableWritten/
| TargetFileName=/\/(images|media|tmp|files|attachments)\/.*\.(php|phtml|php\d|phar)$/i
| TargetFileName!=/\/(cache|administrator\/cache)\//i
| table([@timestamp, ComputerName, aid, TargetFileName, ImageFileName, UserName], limit=200)
Q3 · Recon utilities under the web-server process tree
CONF MEDFP MEDCOST LOW

Looks for: discovery commands (whoami/id/uname/hostname/ip/netstat) whose parent is a web-server process — hands-on or scripted post-exploitation recon (H3). FP: health-check and monitoring scripts run by the web user; baseline and exclude the monitoring agent's command lines.

// HUNT: Discovery commands spawned by a web-server process
// MITRE: T1059, T1082
// CONF: medium  FP: medium  COST: low | REQUIRES: ProcessRollup2
// FALSE POSITIVES: monitoring/health-check scripts run as the web-server user
// TUNING: exclude CommandLine of the known monitoring agent; scope to JCE/Joomla hosts
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| ParentBaseFileName=/^(httpd|apache2|nginx|php-fpm.*|sh|bash|dash)$/i
| ImageFileName=/\/(whoami|id|uname|hostname|ip|ifconfig|netstat|ss|cat|crontab)$/i
| table([@timestamp, ComputerName, aid, ParentBaseFileName, ImageFileName, CommandLine, UserName], limit=200)
Q4 · Ingress tool transfer / outbound from web server
CONF MEDFP MEDCOST MED

Looks for: download utilities (curl/wget/fetch) executed under the web-server tree, used to pull second-stage tooling (H4/T1105). FP: package updates, plugin update checks, and legitimate API calls; exclude known update endpoints and scope to JCE hosts.

// HUNT: Download tooling executed by web-server tree (ingress tool transfer)
// MITRE: T1105
// CONF: medium  FP: medium  COST: medium | REQUIRES: ProcessRollup2
// FALSE POSITIVES: OS/plugin update checks, legitimate outbound API calls
// TUNING: exclude CommandLine matching known update/CDN hosts; restrict to Joomla/JCE servers
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| ParentBaseFileName=/^(httpd|apache2|nginx|php-fpm.*|sh|bash|dash|python\d?)$/i
| ImageFileName=/\/(curl|wget|fetch|tftp)$/i
| CommandLine=/https?:\/\//i
| table([@timestamp, ComputerName, aid, ParentBaseFileName, ImageFileName, CommandLine, UserName], limit=200)
Q5 · JCE profile-import / upload POST in access logs
CONF MEDFP MEDCOST MED

Looks for: HTTP POSTs to JCE com_jce profile-import / upload endpoints in web access logs shipped to NGSIEM — the exploitation request itself (H5). FP: legitimate admin profile management; correlate with an authenticated admin session and source IP reputation. Requires web/access logs forwarded to NGSIEM (adjust field names to your parser).

// HUNT: Unauthenticated POST to JCE profile-import / upload endpoint
// MITRE: T1190, T1505.003
// CONF: medium  FP: medium  COST: medium | REQUIRES: web/access logs in NGSIEM
// FALSE POSITIVES: legitimate admin profile management from a known admin IP/session
// TUNING: exclude requests from known admin source IPs; adjust field names to your HTTP parser
#repo=*
| method=/POST/i
| url=/option=com_jce/i
| url=/(task=.*profile.*import|task=.*upload|controller=profiles)/i
| table([@timestamp, src_ip, host, method, url, status, http_user_agent], limit=200)
Q6 · Process executes from a web-writable path
CONF MEDFP LOWCOST LOW

Looks for: any binary or interpreter executing with an ImageFileName under a web-writable upload/temp directory (H6) — second-stage tooling staged through the webshell. FP: low; legitimate apps rarely execute from /tmp or /images. Investigate every hit.

// HUNT: Process executing from a web-writable upload/temp directory
// MITRE: T1059, T1105
// CONF: medium  FP: low  COST: low | REQUIRES: ProcessRollup2
// FALSE POSITIVES: rare; some installers stage to /tmp briefly
// TUNING: exclude package-manager temp build paths if your distro uses them
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| ImageFileName=/^\/(tmp|var\/tmp|dev\/shm)\/|\/(images|media|files)\//i
| table([@timestamp, ComputerName, aid, ImageFileName, ParentBaseFileName, CommandLine, UserName], limit=200)
09

CrowdStrike Custom IOA Recommendations

Promotion candidates from the hunt queries above (Linux platform, Process Create rule type):

IOA NamePatternExclusionsAction / Deployment
WebServer Spawns Shell (JCE RCE)Parent ImageFileName httpd|apache2|nginx|php-fpm → Child sh|bash|dash|python|perlKnown maintenance/health-check command linesDetect → Block after 1–2 wk baseline (from Q1)
Exec From Web-Writable PathGrandparent/parent web-server; ImageFileName under /tmp, /images, /mediaDistro package-build temp pathsDetect (from Q6)
WebServer Downloads ToolingWeb-server tree → curl|wget with http(s):// in command lineKnown update/CDN endpointsDetect (from Q4)

Q2 (PHP file write) is best deployed as a scheduled-search detection rather than a Process-Create IOA, since it keys on file telemetry, not process creation.

10

Machine-Readable IOC Appendix

One-click copy blocks for ingestion. Atomic indicators are perishable for this automated campaign — use placeholders until you confirm values in your own telemetry.

Falcon IOC Management CSVbulk import
type,value,action,severity,expiration,description,tags
sha256,REPLACE_WITH_WEBSHELL_SHA256,detect,critical,2026-12-18,JCE CVE-2026-48907 webshell,campaign:JoomlaJCE
ipv4,REPLACE_WITH_SCANNER_OR_C2_IP,detect,high,2026-09-18,JCE exploit source or C2,campaign:JoomlaJCE
domain,REPLACE_WITH_C2_DOMAIN,detect,high,2026-09-18,JCE second-stage C2,campaign:JoomlaJCE
Behavioral Signatureshunt logic
parent_proc IN (httpd, apache2, nginx, php-fpm)
  AND child_proc IN (sh, bash, dash, python, perl)   # webshell exec
file_write: *.php INTO (/images/, /media/, /tmp/, /files/)  # webshell drop
proc_exec FROM (/tmp/, /var/tmp/, /dev/shm/, /images/)      # staged tooling
http_post: option=com_jce & (profile import | upload)      # exploit request
Named Tooling / Artifactsreference
CVE-2026-48907 — Joomla Content Editor (JCE) unauth RCE
Affected: JCE <= 2.9.99.4   Fixed: 2.9.99.5 (hardening in 2.9.99.6)
Mechanism: profile-import authz bypass + .php/.txt upload re-enable
Webshell drop dirs: /images/  /media/  /tmp/  /files/
Server: Linux, Apache/nginx + PHP-FPM
Patch / Exposure Auditverify
# Find JCE version across web roots (XML manifest)
grep -rl --include=jce.xml -m1 'version' /var/www 2>/dev/null \
  | xargs -r grep -H '<version>'
# Webshell sweep: new .php in upload dirs since campaign start
find /var/www \( -path '*/images/*' -o -path '*/media/*' \) \
  -name '*.php' -newermt '2026-06-01' -printf '%TY-%Tm-%Td %p\n'
11

Detection Validation Gates

GateCheckPass Criteria
1 · Telemetry readyFalcon for Linux deployed on all Joomla/JCE hosts; ProcessRollup2 and file events flowingEvents seen from every web host in last 24h
2 · Benign baselineRun Q1–Q4 over 7–14 days; catalog legitimate web-server→shell/curl activity (crons, monitoring)Known-good command lines enumerated & excluded
3 · Positive testIn a lab Joomla host, drop a benign .php into /images/ and have the web user run idQ1 and Q2 both fire on the test action
4 · PromotionQ1/Q6 FP rate acceptable after tuningPromote Q1 to blocking IOA; keep Q3–Q5 as investigate-only
12

Hardening — Tiered

Immediate (this week — no compat risk)
  • Patch JCE to ≥ 2.9.99.5 (prefer 2.9.99.6) on every Joomla site. This closes CVE-2026-48907. (T1190 / MITRE M1051 — Update Software; vendor advisory.)
  • Webshell sweep + eradication: run the audit block (S10) and remove any unexplained .php under upload dirs; treat hits as confirmed compromise → containment runbook (S14).
  • Deploy Q1 as a detection on all Joomla hosts immediately, even before patching completes — it catches live exploitation. (M1040 — Behavior Prevention.)
Near term (1–4 weeks — pilot first)
  • Disable code execution in upload dirs: configure Apache/nginx so /images/, /media/, /tmp/ cannot execute PHP (deny .php handler in those locations). Defangs the webshell even if dropped. (M1042 — Disable or Remove Feature; CIS Apache/nginx Benchmark.)
  • Least-privilege web user + read-only code: run PHP-FPM as a low-priv user; make the Joomla code tree read-only to the web user; keep writable dirs on a noexec mount. (M1026 — Privileged Account Management; CIS Linux Benchmark §1.1 mount options.)
  • WAF / virtual patch: add a rule blocking unauthenticated POSTs to com_jce profile-import/upload endpoints. (M1050 — Exploit Protection.)
Strategic (1–3 months)
  • Egress filtering: default-deny outbound from web servers; allow only known update/CDN hosts. Breaks ingress tool transfer and reverse shells. (M1037 — Filter Network Traffic.)
  • Extension governance: inventory all Joomla extensions, subscribe to vendor advisories, and establish an SLA to patch internet-facing CMS plugins within 48h of a KEV listing. (M1051.)
13

Deployable Playbooks

A · Block PHP execution in upload dirs (Apache)

Drop into the vhost / .htaccess of each web-writable directory:

# /var/www/<site>/images/.htaccess  (repeat for media, tmp, files)
<FilesMatch "\.(php|phtml|php[0-9]|phar)$">
    Require all denied
</FilesMatch>
php_admin_flag engine off

B · Block PHP execution in upload dirs (nginx)

# in the server { } block, before the generic php location
location ~* ^/(images|media|tmp|files)/.*\.(php|phtml|php[0-9]|phar)$ {
    deny all;
    return 403;
}

C · Harden writable mount + web-user privileges (Linux)

# mount the upload/tmp volume noexec,nosuid,nodev (then remount)
# /etc/fstab:  /var/www/<site>/tmp  ext4  defaults,noexec,nosuid,nodev  0 0
mount -o remount /var/www/<site>/tmp
# make the Joomla code tree read-only to the PHP-FPM user (www-data)
chown -R root:www-data /var/www/<site>
find /var/www/<site> -type d -exec chmod 750 {} \;
find /var/www/<site> -type f -exec chmod 640 {} \;
systemctl restart php-fpm

D · Patch verification

# confirm JCE manifest reports a fixed version (>= 2.9.99.5)
grep -rH '<version>' /var/www --include=jce.xml 2>/dev/null
14

Containment Runbook

PhaseActionsOwnerEvidence
IsolateNetwork-contain the host in Falcon; preserve memory + disk; do not reboot. Snapshot if virtual.SOC / IRFalcon containment record; snapshot ID
EradicateIdentify & remove all webshell .php files (S10 sweep); kill web-server child shells; rotate any secrets readable by the web user (DB creds in configuration.php).IR / Web adminFile hashes, process tree, removed-file inventory
PatchUpgrade JCE to ≥ 2.9.99.5; apply upload-dir exec-deny + noexec mount (S13) before returning to service.Web adminJCE version readout; config diff
RecoverRestore from known-clean backup predating compromise if integrity uncertain; lift containment; monitor Q1/Q2/Q4 for 14 days.SOC / Web adminBackup restore log; post-restore hunt results
ReportFor FCEB: document remediation against the CISA KEV directive. Log root cause, dwell time, data accessed.IR leadTimeline; KEV remediation record
15

Detection Coverage Map

TechniqueBehaviorCQLIOACoverage
T1190Exploit JCE profile-import endpointQ5 (log-dependent)Partial — needs shipped access logs
T1505.003Webshell file dropQ2, Q6Q6 pathGood
T1059Web server spawns shell/interpreterQ1, Q3Q1 (block candidate)Good
T1082Post-exploitation reconQ3Partial — FP tuning required
T1105Ingress tool transfer / outboundQ4Q4Good
Privilege escalation / lateralPost-foothold movementGAP — out of scope; use core EDR detections

Validation: Coverage of the webshell-execution spine (Q1/Q2) is strong and low-FP. The exploitation request (Q5) is only covered where web/access logs are forwarded to NGSIEM — confirm log shipping or accept the partial gap. Post-foothold lateral movement is intentionally out of scope here and is covered by standard EDR detections. Validate Q2/Q6 path regexes and Q5 HTTP field names against your tenant before deploying.

16

Hunt Summary Ticket

TITLE:      Hunt — CVE-2026-48907 Joomla Content Editor (JCE) Unauth RCE → Webshell
SEVERITY:   Critical (CVSS 10.0, CISA KEV, exploited ITW)
SCOPE:      Linux web servers running Joomla + JCE (Apache/nginx + PHP-FPM)
HYPOTHESIS: Unauth profile-import RCE drops a PHP webshell into a web-writable dir;
            web-server process then spawns shells / pulls tooling / beacons out.
QUERIES:    Q1 webserver->shell | Q2 .php write to upload dir | Q3 recon | Q4 egress |
            Q5 com_jce POST (log) | Q6 exec from writable path
DO FIRST:   1) Inventory JCE version; patch any host <= 2.9.99.4 to >= 2.9.99.5
            2) Run Q1 + Q2 across all Joomla hosts; sweep /images /media /tmp for .php
            3) Any hit = treat as live webshell -> containment runbook (S14)
FINDINGS:   <fill: hosts, files, process trees, source IPs>
GAPS:       Q5 needs access logs in NGSIEM; lateral movement out of scope
ACTIONS:    Patch JCE; deny PHP exec in upload dirs; noexec mount; egress filter
OWNER:      HuntPack
VERSION:    v0.1 · 2026-06-18
17

Changelog

v0.32026-07-24CQL correctness pass. All table() calls now carry an explicit row limit: the default is 200 and truncation is silent, so a capped result was indistinguishable from a complete one. Atomic-IOC sweeps (filters over 5+ hashes or C2 IPs) use limit=max so a wide infection is never silently under-scoped; behavioural hunts use limit=200, where exceeding the cap indicates the query needs tuning. Where present, event names that do not exist in the Falcon data model were corrected (e.g. ServiceInstalled is a Sysmon concept, not a Falcon event; ElfFileWritten is ELFFileWritten) — such queries could never return a row. No detection logic, fields, or IOCs changed.
v0.22026-06-29CQL syntax review (crowdstrike-logscale-v3): removed invalid FileCreateInfo event (Q2).
v0.12026-06-18Initial HuntPack — 6 CQL hunts (Q1–Q6), 3 IOA candidates, tiered hardening, deployable playbooks, containment runbook, coverage map. Built from CISA KEV listing (2026-06-16) and vendor disclosure of CVE-2026-48907.
18

References

TierSourceUsed ForAccess Date
1 · GovCISA Known Exploited Vulnerabilities CatalogKEV listing (2026-06-16), FCEB directive2026-06-18
1 · VendorYesWeHack — RCE in Joomla Content Editor extensionRoot cause, chained profile-import flaw, fixed version2026-06-18
2 · PressBleepingComputer — CISA orders feds to patch max-severity Joomla plugin flawSeverity, directive, timeline2026-06-18
2 · PressThe Hacker News — CISA warns of actively exploited Joomla flawActive exploitation, webshell behavior2026-06-18
2 · PressSC World — Max-severity JCE flaw targeted in automated attacksAutomated exploitation context2026-06-18