2026 July(5) August(40) September(4) October(0) November(0) December(0) | STATISTICS (0) | H ARTICLES CONFERENCE MALWARE TRAFFICS
YARA-X's 1.20.0 Wireshark 4.6.8 Released
Linux Detection Engineering - Local Privilege Escalation
Seven of the thirteen Linux privilege escalation CVEs we tracked in 2026 turned out to be the same copy-on-write bug pointed at different kernel interfaces. We ran the public proof-of-concept for eleven exploits and two misconfigurations, and noted which rules fired.
Local privilege escalation (LPE) is the step that turns a foothold into full control of a host. An attacker who lands as an unprivileged user rarely stops there. They want root, and Linux keeps offering new ways to get it.
In this edition of our "Linux Detection Engineering" series, we’ll cover:
The default flow that a Linux LPE produces on the host and the general rules that detect it.
The recurring LPE patterns behind the most recent LPEs and how each works, along with how each looks through the lens of Elastic Defend.
The Elastic detection and endpoint rules that fire on each.
Over the past year, the pace of publicly disclosed Linux LPEs has picked up sharply, and the shape of those disclosures has changed with it.

For most of the last decade, escalations arrived steadily but from all over the map, including from trusted helpers like sudo, pkexec, and polkit; kernel bugs scattered across Executable and Linkable Format (ELF) loading, ptrace, eBPF, and packet sockets; and user namespaces widening what an ordinary account could reach. That variety kept the workload manageable. Each bug had its own subsystem and write-up, so reading each advisory as it landed and adding a rule for that technique worked.
Then came 2026.

Seven of the 13 disclosures that we track here share one bug class: a copy-on-write or zero-copy path that writes into data that it was supposed to copy first. Copy Fail opened in April 2026, and DirtyFrag, Fragnesia, DirtyDecrypt, and DirtyClone pushed the identical idea through ESP, RxRPC, and the socket-buffer fragment helpers within weeks. pedit COW moved it into traffic control. RefluXFS took it back to the filesystem in July 2026. Neither figure is a census, so read them as a picture of how the work changed rather than a count of every bug.
Qualys attributes RefluXFS to a research effort with Anthropic, pointing Claude Mythos Preview at the kernel's memory-management and filesystem code to hunt for a DirtyCOW-style race and then reproducing and verifying the result before disclosure. The author of OVSwrap credits a comparable large language model-assisted (LLM-assisted) workflow. Both teams kept humans on validation and disclosure, and LLMs are unlikely to be the only factor here. What the two write-ups show is the loop itself: hand a model a known bug class, ask for a new instance, repeat. When one idea can be aimed at a dozen kernel interfaces in a quarter, a detection rule written per Common Vulnerabilities and Exposures (CVE) keeps arriving late.
The good news is that most LPEs, however novel the trigger, share a single detectable flow, and beyond it, they fall into a small number of bug classes. So we detect in two layers: a general layer keyed on the flow every escalation produces (an unprivileged process becoming root), and a per-technique layer that adds signal specific to a bug class.
Setting up Elastic Defend and Auditd to detect Linux privilege escalation
To follow along and generate the telemetry shown here, enable the prebuilt rules
and reproduce the techniques in a lab:
In Kibana, navigate to Security -> Rules -> Detection rules (SIEM), and install the Elastic prebuilt rules. Enable the Linux privilege escalation rules (by filtering on tags OS: Linux and Tactic: Privilege Escalation).
Deploy Elastic Defend on a Linux test host for endpoint (behavioral) coverage.
For syscall-level visibility, enable the Auditd Manager integration. The page-cache class, in particular, relies on socket, splice, and bind auditing, as well as execve. The Copy Fail and DirtyFrag research lists the exact auditd rules to add.
Reproduce each technique safely in a disposable virtual machine (VM) using the relevant public proof of concept (PoC). Treat all exploit code as lab-only, and never run it against systems that you don’t own.
All of the rules mentioned in the blog are available as a detection and/or endpoint rule. Detection rules live in Elastic’s detection-rules repository, while endpoint rules live in Elastic’s protections-artifacts repository.
The limitations of this Linux privilege escalation detection framework
This post is built around the public PoC for each vulnerability. We’re aware
that a PoC can be modified: swap the targeted setuid binary, change paths, or
reshape the exploit to sidestep a specific match. That’s exactly why the
detection is layered and outcome-oriented rather than tied to any one
implementation. The goal is a general LPE detection framework that holds up
across reimplementations and covers the shared flow that every escalation
produces.
We aren’t claiming to detect 100% of Linux LPEs, and certainly not an LPE custom-built to evade these detections. What we aim for is broad, durable coverage of the way that escalations actually behave on a host, with LPE technique-specific rules covering the foundations and bug class-specific rules to catch those that were missed.
How Linux privilege escalation detection works: The flow that every exploit
produces
Almost every local privilege escalation, whatever the underlying bug, produces
the same skeleton of activity on the host:
An unprivileged user (uid != 0) runs something, usually a freshly dropped or compiled binary, a script, or a shell one-liner, from a location that they can write to (for example, /tmp, /dev/shm, /var/tmp, /home, or /run/user/).
Moments later, a process in that lineage is running as root: a uid_change to 0, an effective uid or guid of 0, or an interactive root shell.
In certain PoCs, the exploit then confirms success by running whoami, id, or logname.
That "exec from a writable path and become root" skeleton is the backbone of our general detection. Because these rules key on the outcome and its immediate context rather than on any exploit-specific artifact, they cover a broad class of LPEs, including ones that we’ve never seen. They’re also what catch the page-cache family and the no-userland-tell kernel bugs, where there’s nothing implementation-specific to match.
Detecting SUID and SGID helper abuse
Setuid-root binaries and helpers are the single most common final step in a
Linux LPE, because they’re the sanctioned way for an unprivileged user to run
something as root, so any slip in how one of them behaves hands over that
privilege. What ties the subcases together is the privilege shape: a process
running with effective uid 0 while the real user (and usually the parent) is
not, launched with minimal arguments from an interpreter, a shell one-liner, or
a writable path. We split the coverage by how the abused binary is chosen, from
the handful of helpers that appear in almost every write-up, out to the long
tail and the proxying tricks that a name-based rule misses. This category maps
to the Abuse Elevation Control Mechanism: Setuid and Setgid (T1548.001)
technique on the MITRE ATT&CK matrix.
Detecting abuse of su, sudo, pkexec, and passwd
A short list of setuid helpers (su, sudo, pkexec, passwd) accounts for the
overwhelming majority of real-world SUID abuse, whether as the finishing move of
a memory-corruption exploit or a plain misconfiguration. A dedicated, tightly
scoped rule for these keeps false positives near zero while covering the common
case, so it’s the first thing to reach for.
Let’s begin by covering the different building blocks relevant to building a strong yet general SUID LPE detector, one by one. The following logic looks for instances where either the user or group ID is 0, while the real user/group ID is not. This is a default and benign SUID behavior and would trigger on typical sudo usage by a user.
(
(process.user.id == 0 and process.real_user.id != 0) or
(process.group.id == 0 and process.real_group.id != 0)
)
This logic is followed by the execution of a commonly abused SUID helper with a low process argument count. This already cuts down the false positive rate drastically. For example, in a benign use case, the sudo command is generally used with additional arguments, making a sudo invocation with an argument count of 1 rare. However, just relying on these two building blocks isn’t strong enough to be a detection on its own, as this activity still happens too frequently in benign scenarios.
(
(process.name == "su" and process.args_count <= 2) or
(process.name == "sudo" and process.args_count == 1) or
(process.name == "pkexec" and process.args_count == 1) or
(process.name == "passwd" and process.args_count <= 2)
)
The euid-0 / non-root-real-user shape is paired with an interpreter, writable-path, or shell one-liner parent, which is what separates exploitation from a user legitimately typing sudo.
(
process.parent.name like (
".*", "python*", "perl*", "ruby*", "lua*", "php*", "node",
"deno", "bun", "java"
) or
process.parent.executable like (
"./*", "/tmp/*", "/var/tmp/*", "/dev/shm/*", "/run/user/*",
"/var/run/user/*", "/home/*/*"
) or
(
process.parent.name in (
"bash", "dash", "sh", "tcsh", "csh", "zsh", "ksh", "fish", "mksh"
) and
process.parent.args in ("-c", "-cl", "-lc", "--command", "-ic", "-ci") and
process.parent.args_count <= 4
)
)
And it’s followed by a bunch of known legitimate exclusion activity. Combining these three building blocks makes for a strong general SUID/SGID helper LPE detection. This logic maps to Suspicious SUID/SGID Utility Execution.
Detecting uncommon SUID binaries without a name list
Not every abused SUID binary is on that short list. This variant drops the hard-coded
names entirely and keys on the privilege shape plus a self-referential command
line (the process was invoked as itself), which is what a freshly abused, less
common setuid binary looks like on the wire. We still check beforehand to see
whether we’re dealing with a SUID binary:
(
(process.user.id == 0 and process.real_user.id != 0) or
(process.group.id == 0 and process.real_group.id != 0)
)
But this is quickly followed by the main logic differentiator between these different rules, which is displayed below:
(
stringcontains(process.executable, process.command_line) or
stringcontains(process.name, process.command_line)
)
Instead of relying on allowlisting a list of known SUID binaries, we use a clever stringcontains Event Query Language (EQL) trick. By using the stringcontains function, we can compare the process.executable to the process.command_line value (or process.name to process.command_line), effectively matching on instances where an unknown SUID binary (which we established through the user.id versus real_user.id comparison) is executed directly. The gap it fills is the long tail: because there’s no name list, there’s no blind spot for whichever setuid binary a given system happens to ship, at the cost of a broader exclusion list for legitimate helpers.
We follow this rule with an exclusion of known SUID helpers, to minimize coverage overlap with the previous (and other) rules. This maps to Potential Privilege Escalation via a SUID/SGID Binary.
Detecting SUID helper proxy execution via process arguments
Some abuse doesn’t run the helper as the process itself; it hands the helper as
an argument to another privileged binary, proxying the execution so a name-based
rule sees the wrong thing. The tell is a process whose command line starts with
its own executable, a single-argument parent, and a known setuid helper path
sitting in the arguments.
process.args in (
"/bin/su", "/usr/bin/su",
"/bin/umount", "/usr/bin/umount",
"/bin/chfn", "/usr/bin/chfn",
"/bin/chsh", "/usr/bin/chsh",
"/bin/gpasswd", "/usr/bin/gpasswd",
"/bin/newgrp", "/usr/bin/newgrp",
"/usr/bin/newuidmap", "/usr/bin/newgidmap",
"/usr/lib/dbus-1.0/dbus-daemon-launch-helper",
"/usr/libexec/dbus-daemon-launch-helper",
"/usr/lib/openssh/ssh-keysign", "/usr/libexec/openssh/ssh-keysign",
"/usr/bin/pkexec", "/usr/libexec/pkexec", "/usr/lib/polkit-1/pkexec",
"/usr/lib/snapd/snap-confine"
) and
process.args_count <= 2
The proxy execution rule differs from the two rules above by looking at the helper in process.args rather than process.name, so it catches the proxying pattern (binfmt_misc style and similar) that name-based matching would miss entirely. Although not exhaustive, the argument list does target the most commonly available SUID helpers on a default Linux system. This maps to Potential Privilege Escalation via SUID/SGID Proxy Execution.
Further SUID and SGID privilege escalation rules
We didn’t get into every SUID-based LPE rule that we created to cover this
attack vector. We encourage anyone interested in digging deeper to take a look
at our other public rules related to SUID/SGID LPE, which can be found here:
Potential Privilege Escalation via SUID/SGID Proxy Execution (and its Elastic Defend counterpart)
Self-elevation: Exec from a writable path and then a UID change to root
Many kernel and logic exploits never touch a helper; the exploit process, or
something in its lineage, simply becomes root. The observable is always the same
pair: a non-root process execs from a writable path (/tmp, /dev/shm, /var/tmp,
/home/*, /run/user/*), and shortly after, a process in that lineage emits a uid_change
to 0. The subcases differ only in how tightly we can tie the exec to the
elevation and in whether the exploit politely confirms its own success.
Detecting exec and then elevating by correlating on the parent process
The most general form correlates the two events by their shared parent: a non-root,
interactive exec from a writable path, followed by a uid_change to 0 under the
same parent, within a short window.
sequence by process.parent.entity_id with maxspan=15s
[process where event.type == "start" and event.action == "exec" and
user.id != 0 and process.parent.user.id != 0 and
process.parent.group.id != 0 and
(
process.executable like (
".*", "/tmp/*", "/dev/shm/*", "/var/tmp/*", "/run/user/*",
"/var/run/user/*", "/home/*/*"
) or
process.parent.executable like (
".*", "/tmp/*", "/dev/shm/*", "/var/tmp/*", "/run/user/*",
"/var/run/user/*", "/home/*/*"
)
)]
[process where event.type == "change" and event.action == "uid_change" and
user.id == 0 and process.parent.user.id != 0 and
process.parent.group.id != 0]
It needs no recon command and no known binary, just the exec-then-elevate pair from a world-writable location, so it fires on self-elevating exploits that give nothing else away. Given that this activity is also known to fire on false positives (edge cases where benign precompiled binaries in /tmp or /home directories elevate), this rule requires slightly more tuning to fit in well with your environment. For static server environments, the rule should generally be plug and play. This maps to Potential Privilege Escalation via a Parent Process Sequence.
Using descendant-of to catch root transitions several processes deep
The root transition doesn’t always land in the immediate child. When a web
server or interpreter running as a service account spawns a chain that ends in
an interactive root process several hops down, a direct parent/child correlation
breaks. To combat this, we added another layer, using the descendant of
functionality.
In this query, we target interactive executions where the user.id is 0, while the parent user is a nonsystem user (uid >= 1000).
process where event.type == "start" and event.action == "exec" and
process.interactive == true and user.id == 0 and (
process.parent.user.id >= 1000 or
process.parent.user.name in (
"apache", "www-data", "httpd", "nginx", "lighttpd", "tomcat",
"tomcat8", "tomcat9", "ftp", "ftpuser", "ftpd"
)
)
The interactive-root match is then followed by descendant of logic, where the descendant is an executable launched from a world-/user-writable location.
descendant of [
process where event.type == "start" and event.action == "exec" and
user.id != 0 and
process.executable like (
".*", "/tmp/*", "/dev/shm/*", "/var/tmp/*", "/home/*/*",
"/run/user/*", "/var/run/user/*"
)
]
sing descendant of instead of a fixed parent link accommodates any depth of intermediate processes, and folding in service accounts (uid >= 1000, or www-data, nginx, tomcat) covers the web-shell-to-root path that the sequence rules can miss. This maps to Potential Local Privilege Escalation via a Suspicious Descendant Process.
Detecting the exec, elevate, and confirm sequence
When the exploit verifies its own success (the near-universal habit of running
id, whoami, or logname right after getting root), we can require all three
stages: the writable-path exec, the uid_change to 0, and then the privilege
check as root.
sequence with maxspan=10s
[process where event.type == "start" and event.action == "exec" and
user.id != 0 and process.executable like (
".*", "/tmp/*", "/dev/shm/*", "/var/tmp/*", "/home/*/*",
"/run/user/*", "/var/run/user/*"
)] by process.entity_id
[process where event.type == "change" and event.action == "uid_change" and
user.id == 0] by process.entity_id
[process where event.type == "start" and event.action == "exec" and
process.name in ("whoami", "id", "logname") and
user.id == 0] by process.parent.entity_id
The confirm stage is what makes this the lowest-false-positive, highest-true-positive signal of the group for public PoCs, which frequently check their work, so it’s the rule to lead an investigation with. This maps to General Privilege Escalation Sequence Detected.
Detecting a Python interpreter escalating to root
A growing share of public PoCs finish with a one-line interpreter payload, and
Python is the workhorse. Rather than matching an exact one-liner, we key on a
uid_change to 0 where the responsible process is a Python interpreter running
from a world-/user-writable working directory with a non-root parent.
event.category:process and event.type:change and event.action:uid_change and
user.id:0 and not process.parent.user.id:0 and
not process.parent.group.id:0 and process.name:python* and
process.working_directory:(
/tmp* or /var/tmp* or /dev/shm* or /home/* or /run/user* or
/var/run/user* or /var/www*
) and
process.parent.working_directory:(
/tmp* or /var/tmp* or /dev/shm* or /home/* or /run/user* or
/var/run/user* or /var/www*
) and
process.command_line:*
As this activity is also known to hit on false positives, the new terms rule type was used to only alert on instances where the process.command_line hasn’t been seen on the host.id in the last five days.
With so many 2026 PoCs (Copy Fail, DirtyClone, CIFSwitch among them) shipped as Python, this catches the interpreter-driven finish generically, independent of the specific exploit. This maps to Suspicious UID Change to Root via Python and its Elastic Defend counterpart, which is slightly more restricted in terms of logic: Potential Privilege Escalation via Python Exploit.
More exec and elevate rules for Linux privilege escalation detection
We just described the most common exec and elevate relationships. However,
several LPEs don’t trigger on the parent/descendant relationship, but require
keying on parent → child or process → process relationships. You can find the
whole list of public detection and endpoint rules below:
Potential Privilege Escalation via a Parent Process Sequence
Potential Privilege Escalation via a Parent/Child Process Sequence
Potential Local Privilege Escalation via a Suspicious Descendant Process
The main difference between the detection and endpoint rule logic is the scope. Our endpoint detection and response (EDR) ruleset is generally optimized for a low false positive rate, over a high true positive rate. Because this can lead to false negatives, we “duplicate” the endpoint rule logic to detection rules with fewer to zero exclusions.
Detecting unshare and user namespace privilege escalation
Not every escalation runs straight at a setuid binary or a kernel bug in the
host context. A large family of Linux LPEs first calls unshare(CLONE_NEWUSER) to
gain capabilities inside a new user namespace and then uses that borrowed power
to reach code paths (filesystems, mounts, networking) that were never meant to
take untrusted input. Because that unshare step is shared across CIFSwitch,
pedit COW, DirtyClone, and container escapes, we detect it independently of
whichever bug follows.
We detect two behavioral red flags: correlating the namespace creation to a root transition, and flagging anomalous unshare usage on its own.
Detecting unshare followed by a root transition
The high-confidence form correlates a non-root unshare that creates a user
namespace with a uid_change to 0 shortly after, under the same lineage.
sequence by process.parent.entity_id with maxspan=60s
[process where event.action == "exec" and event.type == "start" and
process.name == "unshare" and
process.args in ("-r", "-rm", "-m", "-U", "--user") and user.id != 0]
[process where event.action == "uid_change" and event.type == "change" and
user.id == 0 and process.parent.user.id != 0]
Match the namespace flags by substring rather than by exact token, so the combined short form is caught alongside the split -U -r -m form. This maps to Potential Local Privilege Escalation via Unshare.
The auditd variant additionally keys on the unshare syscall's namespace-flag argument, which is independent of how the flags were spelled on the command line.
sequence by host.id, process.parent.pid with maxspan=30s
[process where host.os.type == "linux" and
(
(
auditd.data.syscall == "unshare" and auditd.data.class == "namespace" and
auditd.data.a0 in (
"10000000", "50000000", "70000000", "10020000", "50020000", "70020000"
)
) or
(
process.name == "unshare" and
(
process.args in ("--user", "--map-root-user", "--map-current-user") or
process.args like ("-*U*", "-*r*")
)
)
) and user.id != "0" and user.id != null]
[process where host.os.type == "linux" and
user.id == "0" and user.id != null and
(
process.name in (
"su", "sudo", "pkexec", "passwd", "chsh", "newgrp", "doas", "run0",
"sg", "dash", "sh", "bash", "zsh", "fish", "ksh", "csh", "tcsh",
"ash", "mksh", "busybox", "rbash", "rzsh", "rksh", "tmux",
"screen", "node"
) or
process.name like ("python*", "perl*", "ruby*", "php*", "lua*")
)]
Tying the unshare to the subsequent uid_change keeps false positives low; sandboxing and container tooling call unshare constantly but rarely transition to root in the same lineage. This maps to Potential Privilege Escalation via unshare Followed by Root Process.
Detecting anomalous unshare usage without a root transition
Some namespace abuse is worth surfacing before any root transition, in
particular, container escapes, where the goal is the host rather than uid 0.
This form keys on unshare execution itself, filtered down to the parents that
don’t legitimately use it.
process where host.os.type == "linux" and event.type == "start" and
event.action in ("exec", "exec_event", "start", "executed") and
process.name: "unshare"
The standalone unshare rule differs from the sequence rules by needing no root transition at all, which makes it a broader hunting and triage signal (and a noisier one), useful for the escape-to-host case that the correlation rules would never see. This maps to Namespace Manipulation Using Unshare.
GTFOBins abuse: Privilege escalation from a misconfigured SUID bit
The last category is the plain misconfiguration end of the spectrum: a binary
that shouldn’t be setuid-root is, and dropping to a root shell is a one-liner
straight out of GTFOBins. There’s no CVE or exploit chain, just a privilege that
was granted and then abused.
Detecting known GTFOBins binaries running as root
A large, curated set of interactive-capable binaries (find, gdb, vim, dd, nmap,
and many more) can spawn a shell or run a command, and when any of them ships
setuid-root, that’s instant root. As this is a known list, we can use a large
allowlist to detect this activity. We again use the ID versus real ID
correlation to detect the execution of the SUID binary, in conjunction with a
known SUID binary and a set of known noisy exclusions. The process listing is
ordered from A-Z.
process where event.type == "start" and event.action == "exec" and (
(process.user.id == 0 and process.real_user.id != 0) or
(process.group.id == 0 and process.real_group.id != 0)
) and
process.name in (
"aa-exec", "ab", "agetty", "alpine", "ar", "arj", "arp", "as",
"ascii-xfr", "ash", "aspell", "atobm",
"base32", "base64", "basenc", "basez", "bc", "bridge", "busctl", "busybox",
[...]
"xdotool", "xmodmap", "xmore", "xxd", "xz",
"yash",
"zsh", "zsoelim"
)
This is the highest-volume, best-understood class, and a maintained name list keeps it cheap to run. It maps to Potential Privilege Escalation via SUID Binary.
Detecting GTFOBins edge cases: Capabilities and copied shells
While having this one allowlisted rule catches a lot of known bad behavior, it
doesn’t suffice in scenarios where a capability, such as cap_setuid bit, is set
instead of just a +s bit, or when a shell is copied to another directory and run
from there. To catch some of these edge cases, we have several other rules in
place:
Shell Privileged Mode from Non-Standard Path with Root Effective User
Potential Root Effective Shell from Non-Standard Path via Auditd
With this general layer in place, we’ll now take a look at some of 2026’s LPEs. For each showcased technique, we explain how it works, run and validate the detection of the public PoC, and note the rules that fire (the general-flow rules above, plus anything technique-specific).
Testing the framework against 11 public proof-of-concept exploits
To test whether this model survives changes in implementation, we ran 11 public
exploit PoCs and two SUID misconfiguration cases. The summary records the first
useful signal from each run, the privileged effect the test reached, and the
rules that best explain the chain.
“No distinct precursor alert” means that the run produced no alert identifying the kernel primitive before the privileged effect. It does not mean that the PoC generated no userland activity.
Page-cache and zero-copy corruption |
|---|
Copy Fail: CVE-2026-31431 · AF_ALG AEAD page-cache corruptionObserved path: AF_ALG socket() and splice() burst → cached /usr/bin/su corrupted → su executes with root effective UID. Key alerts: Potential Copy Fail (CVE-2026-31431) Exploitation via AF_ALG Socket; Suspicious SUID/SGID Utility Execution. |
DirtyFrag: CVE-2026-43284 / CVE-2026-43500 · ESP or RxRPC page-cache corruptionObserved path: No distinct primitive alert in this run → shared page-cache fragments reach in-place processing → /bin/su executes with root effective UID. Key alerts: Potential Privilege Escalation via a Parent/Child Process Sequence; Suspicious SUID Binary Execution; Suspicious SUID/SGID Utility Execution. |
Fragnesia skb_segment() variant: related to CVE-2026-46300 · GRO/GSO fragment-marker lossObserved path: Local compilation and network activity → skb_segment() loses the shared-fragment marker → ESP-in-TCP modifies cached /usr/bin/su and the corrupted image executes. Key alerts: Potential Privilege Escalation via Recently Compiled Executable; Network Connection via Recently Compiled Executable; UID Elevation from Previously Unknown Executable. |
DirtyDecrypt / DirtyCBC: CVE-2026-31635 · RxGK in-place decryptionObserved path: Local compilation; PoC creates user and network namespaces internally → AF_RXRPC and splice() place file-backed pages in the decrypt path → /usr/bin/su produces the privileged shell in this test. Key alerts: General Privilege Escalation Sequence Detected; Potential Privilege Escalation via Recently Compiled Executable; Potential Privilege Escalation via SUID/SGID Proxy Execution. |
pedit COW: CVE-2026-46331 · tc act_pedit partial COWObserved path: PoC calls unshare() internally and configures act_pedit through Netlink → write extends beyond the copied region → cached su entry point is replaced and execution yields a root shell. Key alerts: UID Elevation from Previously Unknown Executable; Potential Privilege Escalation via a Suspicious UID Change; Potential Privilege Escalation via SUID/SGID Proxy Execution. |
DirtyClone Python port: CVE-2026-43503 · TEE clone and ESP page-cache corruptionObserved path: Python PoC executes from a user-controlled directory → cloned socket buffer loses SKBFL_SHARED_FRAG → Python uid_change to 0 observed. Key alerts: Potential Privilege Escalation via Python Exploit; public SIEM counterpart: Suspicious UID Change to Root via Python. For DirtyClone, confirm whether the observed uid_change represented host root or namespace-mapped root before describing it as completed host escalation. |
Namespace and trusted-helper exploitation |
|---|
CIFSwitch: CVE-2026-46243 · CIFS origin validation and trusted helperObserved path: unshare creates a hostile mount namespace → forged cifs.spnego request launches root-owned cifs.upcall → helper loads attacker-controlled NSS code and writes a sudoers rule. Key alerts: Namespace Manipulation Using Unshare; Suspicious Path Mounted; Sudoers File Activity. |
OVSwrap: CVE-2026-64531 · OVS nested Netlink length truncationObserved path: unshare -Urn provides namespace-local CAP_NET_ADMIN → wrapped nla_len enables kernel read and decrement primitives → host writer creates a passwordless sudo rule and launches sudo -n bash. Key alerts: Namespace Manipulation Using Unshare; Passwordless Sudo Probing; Suspicious UID Change to Root via Python. |
Ptrace_may_dream: CVE-2026-46333 · Exit-time FD theft and AccountsService abuseObserved path: busctl --system call triggers AccountsService activity → pidfd_getfd() race duplicates a root-authenticated D-Bus socket → account shell, password, and administrator status are changed before su/sudo yields root. Key alerts: Potential Privilege Escalation via Busctl System Call; File Creation in World-Writable Directory by Unusual Process. |
Privileged file-descriptor theft |
|---|
Ssh-keysign-pwn: CVE-2026-46333 · Exit-time FD theftObserved path: Recently compiled PoC repeatedly starts SUID-root ssh-keysign → races pidfd_getfd() during process exit → duplicates and reads one SSH host private-key descriptor; no root shell. Key alerts: Suspicious SUID Binary Execution; Potential Privilege Escalation via a Parent/Child Process Sequence; Potential Privilege Escalation via Recently Compiled Executable. |
Chage_pwn: CVE-2026-46333 · Exit-time FD theftObserved path: PoC repeatedly starts chage -l → races pidfd_getfd() after privilege drop → duplicates the open /etc/shadow descriptor and reads the file; no root shell. Key alerts: Potential Shadow Read via Unprivileged User. |
SUID misconfiguration |
|---|
SUID find -exec: No CVE · SUID misconfigurationObserved path: Root-owned SUID find executes /bin/sh -p through -exec → shell retains root effective UID. Key alert: Privilege Escalation via SUID/SGID. |
Privileged Bash with -p: No CVE · SUID misconfigurationObserved path: System Bash is copied to a non-standard path and configured SUID-root → bash -p preserves the elevated effective UID → root-capable shell. Key alerts: System Binary Copied or Moved; Shell Privileged Mode from Non-Standard Path with Root Effective User. |
With the general layer in place, the public PoCs become a validation set. We don’t need every exploit to look the same. We need the alerts to tell the same story: an unprivileged process prepares the ground and crosses a trust boundary, and then a root process appears.
Sometimes the earliest signal is a kernel primitive, such as AF_ALG plus splice(), and other times it’s namespace setup with unshare. Sometimes the trigger is quiet, and the only clean signal is the finish: a SUID helper, a Python process, or a shell suddenly running with effective uid 0. That’s the point of layering. Each PoC enters through a different door, but the investigation keeps folding back into the same model: precursor, root transition, and privileged execution.
Kernel page-cache and zero-copy corruption: The Copy Fail bug class
The page-cache corruption variants are the clearest example of why per-CVE
detection is too narrow. Linux uses zero-copy paths, such as splice() and
sendfile(), to move file-backed page-cache pages through kernel subsystems
without copying them. When one of those subsystems writes in place without first
honoring copy-on-write, an unprivileged user can corrupt the in-memory image of
a privileged file. The file on disk may remain clean, but the cached version of
/usr/bin/su, /bin/su, or another privileged target is no longer the version that
the system administrator expects.
The lineage runs from DirtyCOW and Dirty Pipe into the 2026 wave: Copy Fail, DirtyFrag, DirtyClone, Fragnesia, pedit COW, and related variants. The interfaces differ, but the defender’s problem is the same. We want to catch the primitive where it’s stable, and we want to catch the privileged outcome when the primitive isn’t visible enough.
Copy Fail (CVE-2026-31431)
Copy Fail is the cleanest place to start because it gives us both sides of the
story. The public PoC chains an AF_ALG socket with splice() to land a controlled
write into a page-cache page and then uses that corruption against a privileged
file. Public technical write-ups describe the vulnerable path as the authencesn
AEAD implementation mishandling input manipulated through splice(), producing
page-cache corruption through the crypto API.
In Kibana, this gives us a rare luxury: detection of the primitive and of the finish. The auditd layer can catch the non-root process producing a burst of socket(AF_ALG) calls interleaved with splice(), while Elastic Defend catches the behavioral outcome when the corrupted privileged file is executed.

The screenshot shows the expected mix: Potential Copy Fail (CVE-2026-31431) Exploitation via AF_ALG Socket alongside multiple SUID/SGID detections spread across security information and event management (SIEM) and EDR, where Suspicious SUID/SGID Utility Execution is the main EDR rule that fires when su runs with elevated effective privileges. This is the ideal case for layered detection; the kernel-specific signal tells us which exploit family we’re probably looking at, and the general-flow rules confirm that the host actually crossed into root.
DirtyFrag (CVE-2026-43284)
DirtyFrag is a useful counterexample. It reaches the same page-cache corruption
outcome, but it doesn’t look like Copy Fail on the wire. Public research
describes DirtyFrag as chaining the xfrm-ESP Page-Cache Write issue (CVE-2026-43284),
with the RxRPC Page-Cache Write issue (CVE-2026-43500). The common failure is
that shared socket-buffer fragments can reach in-place writers without the
kernel first forcing a safe copy.
That changes the detection story. We shouldn’t expect the AF_ALG rule to fire, because this is no longer the Copy Fail primitive. What remains stable is the finish. In the lab run, the exploit process drives the corruption, and then /bin/su appears with root effective privileges, while the real user remains non-root.

The screenshot shows the general layer doing the work: Suspicious SUID Binary Execution, Potential Privilege Escalation via a Parent/Child Process Sequence, and the Elastic Defend Suspicious SUID/SGID Utility Execution alert. The trigger changed, but the host still had to execute a privileged binary in a suspicious lineage.
The full auditd configuration and queries for the AF_ALG and DirtyFrag primitive coverage are in the Copy Fail and DirtyFrag research. The next variants keep the same page-cache finish but move the trigger into different kernel interfaces.
Fragnesia (CVE-2026-46300)
Fragnesia is close enough to DirtyFrag that it belongs right next to it, but it
adds a useful detection angle because the public PoC leaves more endpoint
exhaust. The PoC targets skb_segment() in net/core/skbuff.c. During Generic
Segmentation Offload (GSO) segmentation, skb_segment() propagates SKBFL_SHARED_FRAG
from the head skb but not from a frag_list member that carries page-cache-backed
fragments. Once that marker is lost, the resulting skbs can pass the ESP skip_cow
guard and be decrypted in place over page-cache pages. The trigger is networking-heavy,
namespaces, veth pairs, send(), splice(), Generic Receive Offload (GRO)
coalescing, GSO segmentation, and an ESP-in-TCP receiver, but the primitive is
the same shape we keep seeing: a controlled page-cache write that’s iterated
until a SUID binary is corrupted and a root shell appears.

In Kibana, this one is louder than DirtyClone and more endpoint-friendly than a pure syscall primitive. The screenshot shows ./skb_segment_exploit driving the setup, followed by /usr/bin/su as the privileged finish. The alerts line up with that story. Two unique rules that triggered are related to the compilation of this exploit on the host, right before execution, and the fact that this exploit makes local network connections:
This is followed by similar SIEM and EDR rules triggering on the general LPE process:
Potential Privilege Escalation via SUID/SGID Proxy Execution (EDR and SIEM)
Potential Privilege Escalation via a Parent Process Sequence
File Creation in World-Writable Directory by Unusual Process
That’s the right detection outcome for this variant. We don’t need a narrow rule named after skb_segment() to get useful coverage. The kernel trigger is specialized and timing-sensitive, but the exploit still has to stage from a user-controlled context, exercise an unusual local networking path, corrupt a privileged target, and pivot through a SUID helper. The general-flow rules capture the root transition, while the recently compiled executable, world-writable file, network, and SUID/SGID alerts provide the analyst with sufficient context to recognize the Fragnesia-style path.
DirtyDecrypt / DirtyCBC (CVE-2026-31635)
DirtyDecrypt, also called DirtyCBC by the PoC authors, is another Copy Fail–style page-cache write, but the abused interface moves into RxRPC. The repository describes it as an rxgk page-cache write caused by a missing copy-on-write guard in rxgk_decrypt_skb(). The PoC comments spell out the failure mode: rxgk_decrypt_skb() builds an skb scatterlist and calls into Kerberos decryption without first forcing a safe copy, while the krb5enc AEAD template decrypts in place before the HMAC check. When the skb fragments are backed by page-cache pages, the failed decrypt still corrupts the cached file data.
In practice, this looks like a sibling of DirtyFrag rather than of Copy Fail. There’s no AF_ALG burst to lean on. The PoC sets up user and network namespaces, drives the RxRPC path over loopback, splices file-backed pages into the packet path, and repeatedly fires the decrypt primitive until the target bytes land. The checked PoC then targets a readable SUID-root binary, such as /usr/bin/su, backs it up under /tmp, corrupts the in-memory image with a tiny setuid(0) plus /bin/sh payload, and executes the target.

The screenshot shows the same layered outcome that we’ve seen across the page-cache family. The exploit process is ./dirtydecrypt, launched from a user-controlled working directory, and the privileged finish is /usr/bin/su. Coverage comes from the general-flow and SUID layers:
Potential Privilege Escalation via SUID/SGID Proxy Execution (EDR and SIEM)
Potential Privilege Escalation via Recently Compiled Executable
File Creation in World-Writable Directory by Unusual Process
Potential Privilege Escalation via a Parent Process Sequence
DirtyDecrypt moves the primitive into RxRPC and Kerberos-style in-place decrypt, but the endpoint story is still familiar: a recently compiled local PoC stages from a writable path, corrupts a privileged file-backed page, and pivots through a SUID helper.
pedit COW (CVE-2026-46331)
pedit COW moves the same failure mode into traffic control. Instead of crypto sockets or ESP/RxRPC paths, the abused interface is the tc packet-editing action, act_pedit. The kernel computes a copy-on-write range before the edit loop, but that calculation can miss the runtime offset used by typed keys, leaving part of the write region outside the copied area. The result is another page-cache corruption path. NVD describes the issue as net/sched: fix pedit partial COW leading to page cache corruption, where tcf_pedit_act() computes the COW range once before the key loop and can leave part of the write region un-COW’d.
pedit COW looks nothing like Copy Fail in telemetry. There’s no AF_ALG burst. The PoC needs the traffic-control path and typically begins by obtaining namespace-local networking capability, such as CAP_NET_ADMIN, through unshare. From the detection side, that means we lean on the namespace precursor and the root outcome.

The screenshot shows this clearly. Some of the interesting alerts are the broader signals: file creation in a world-writable directory, UID elevation from a previously unknown executable, suspicious UID change, parent-process escalation, and SUID/SGID proxy execution. There’s currently no per-CVE tc rule, but the layered model still catches the behavior that matters: a user-controlled process sets up the path, corrupts the privileged image, and pivots into root execution.
DirtyClone (CVE-2026-43503)
DirtyClone is the quietest of the page-cache examples in the endpoint view. The bug sits in the Linux networking stack, where socket-buffer fragment transfer helpers fail to preserve the SKBFL_SHARED_FRAG marker. When that marker is lost, later in-place writers can treat shared, file-backed memory as private and write into page-cache-backed data. NVD describes CVE-2026-43503 as missing propagation of SKBFL_SHARED_FRAG through helpers such as __pskb_copy_fclone() and skb_shift(), which can let an unprivileged user write into the page cache of a root-owned read-only file through later in-place writers.
In our run, the public PoC doesn’t give us a loud, stable userland primitive to key on. It’s Python-driven, runs from a user-controlled working directory, and crosses into root. That makes it a perfect test for the general-flow layer.

The screenshot shows one alert: Potential Privilege Escalation via Python Exploit. That may look sparse compared to Copy Fail, but it’s an important result. It means that the framework still produced a signal when the implementation didn’t expose a useful per-CVE tell. We can enrich later if a stable syscall or interface pattern emerges, but we don’t need to wait for that to detect the root transition.
Taken together, the page-cache examples show the full range. Copy Fail gives us primitive-plus-outcome. DirtyFrag and Fragnesia show the same corruption model moving through networking paths, where SKB fragment handling, zero-copy, and in-place ESP processing do the damage. pedit COW moves the idea into traffic control. DirtyClone shows why the outcome layer has to stand on its own when the kernel trigger is quiet.
Exploits that start with unshare: CIFSwitch and OVSwrap
The next set of PoCs looks different because the attacker first changes the privilege context around the process. A large family of Linux LPEs begins with unshare(CLONE_NEWUSER), which gives an ordinary user capabilities inside a new namespace. Those namespace-local capabilities open kernel code paths in networking, filesystems, and mounts that weren’t designed with untrusted local users in mind.
This is also where kernel bugs and userspace helpers start to blur together. Some exploits use unshare to reach a kernel primitive. Others use it to build a hostile filesystem or mount namespace and then trick a privileged helper into trusting what it sees. For detection, unshare is valuable because it happens early and repeats across otherwise unrelated techniques.
CIFSwitch (CVE-2026-46243)
CIFSwitch is a trusted-helper bug reached through the kernel. The PoC abuses a missing validation in the cifs.spnego key type: an attacker calls request_key() with a forged key description, causing the kernel to invoke the root-owned cifs.upcall helper with attacker-controlled fields. With upcall_target=app, the helper enters the attacker's mount namespace and performs a getpwuid() lookup before dropping privileges: loading an attacker-controlled Network Security Services (NSS) library and executing code as root.
The important part is the handoff. The exploit starts with unshare to build the hostile namespace and then relies on a privileged helper to finish the escalation. That gives us several detection opportunities before and during the root transition.

The screenshot shows the expected spread:
That’s the right shape for this technique. We aren’t depending on a rule named after CIFSwitch. We’re catching the setup, the suspicious namespace behavior, the mount activity, and the root transition. If the helper changes, the early namespace signal and the general escalation rules still give us coverage.
OVSwrap (CVE-2026-64531)
OVSwrap is a good example of the other side of namespace-based privilege escalation. Unlike CIFSwitch, where the namespace is used to construct an environment that a privileged userspace helper later trusts, OVSwrap uses a private user and network namespace to reach a vulnerable kernel interface directly. An ordinary user can run unshare -Urn, gain CAP_NET_ADMIN over the newly created network namespace, and create a private Open vSwitch (OVS) datapath without needing host-level CAP_NET_ADMIN.
The vulnerability is in the kernel's OVS action handling. OVS accepts nested Netlink actions from userspace and expands them into an internal action stream, but the nla_len field describing an individual Netlink attribute is only 16 bits wide. Before the fix, a generated nested action could grow beyond 65,535 bytes without being rejected. The stored length would wrap, causing later OVS parsing to resume from attacker-controlled data inside the generated action stream. The public PoC uses this to construct kernel read and targeted decrement primitives, locate a host-side process and its credentials, and modify its fsuid and fsgid until the process can write as root.
The endpoint story is particularly useful for detection because the kernel primitive itself is complex, but the setup and finish are not. The PoC is Python-driven and creates a private namespace with unshare; after corrupting the host-side writer's credentials, it writes a passwordless sudo rule and executes sudo -n bash.

In the lab run, this produced the following alerts:
Potential Shadow File Read via Command Line Utilities (manual validation activity)
This is exactly the kind of exploit where the layered approach pays off. We don’t need an endpoint rule that understands malformed OVS CLONE actions, conntrack expansion, forged tunnel metadata, or the kernel decrement primitive. Instead, we see the stable behavior around it: a Python PoC enters a new namespace, unshare exposes a privileged kernel networking path, the process crosses from an ordinary user context into host-root capabilities, and the exploit finishes through passwordless sudo.
OVSwrap therefore complements CIFSwitch nicely. Both begin with an unprivileged user creating namespaces, but what happens next is very different: CIFSwitch hands control to a privileged helper, while OVSwrap attacks the kernel's OVS datapath and directly corrupts host credentials. The implementation changes; the namespace precursor and root-transition layer remain useful.
Privileged D-Bus and policy helpers
Not every helper-based LPE starts with a namespace. Some go straight at the
services that grant controlled root access: sudo, polkit / pkexec, and
privileged services reachable over D-Bus. These components are heavily used and
well-audited, but they sit directly on the privilege boundary. One logic slip
can turn a normal user request into root execution.
The upside for defenders is that the actors are named. We can key on specific binaries, services, and command-line shapes, in addition to the general root-transition layer.
ptrace_may_dream (busctl abuse)
ptrace_may_dream is a good example of a helper path that’s precise in telemetry.
The technique talks to a privileged D-Bus system service directly with busctl.
The escalation is driven by an unprivileged user invoking busctl --system call
against a service that then performs a privileged action on the user’s behalf.
Because the tell is specific and rarely legitimate in normal workstation or server activity, detection can be tight.

The screenshot shows repeated Potential Privilege Escalation via Busctl System Call alerts, plus File Creation in a World-Writable Directory by Unusual Process. That’s a different detection shape from the page-cache examples, but the same investigation logic applies: suspicious precursor, privileged service interaction, and a path toward root-controlled behavior.
Privileged file-descriptor theft from trusted helpers
The previous examples all end in something easy to recognize: a process becomes
root, a privileged service acts, or a SUID binary hands the user a shell. This
pattern is slightly different. The attacker doesn’t need the helper to execute a
command. They need it to open something privileged, drop credentials, and die
slowly enough that the file descriptor can be stolen.
That’s the core of CVE-2026-46333. The bug sits in the kernel’s __ptrace_may_access() path. During process exit, there’s a short window when a task has already dropped its memory image but still has open file descriptors. Paired with pidfd_getfd(), that window lets an unprivileged process duplicate descriptors from a dying privileged process when the credential checks line up. Qualys described the impact as both credential disclosure and root-code-execution potential, with case studies against chage, ssh-keysign, pkexec, and accounts-daemon.
For defenders, this is an important variation on the normal LPE flow. A successful exploit may never create an obvious root shell. Instead, root-only material leaves the boundary: SSH host private keys, /etc/shadow, or an authenticated privileged IPC connection. The detection strategy, therefore, has to widen slightly. We still care about suspicious SUID/SGID execution and parent-child escalation, but we also care about non-root processes entering sensitive group context, especially from user-writable or freshly compiled paths.
ssh-keysign-pwn (CVE-2026-46333)
ssh-keysign-pwn targets OpenSSH’s ssh-keysign helper. The helper is interesting
because it opens SSH host private keys before dropping privileges. The public
PoC repeatedly spawns ssh-keysign, opens a pidfd for the child, races pidfd_getfd()
across likely file descriptors, and checks whether any duplicated descriptor
points to an ssh_host_*_key file. The repository describes the target directly:
sshkeysign_pwn pulls SSH host private keys, while chage_pwn pulls /etc/shadow.

In the screenshot, the parent process is the user-controlled ./sshkeysign_pwn binary, and the privileged child is /usr/lib/openssh/ssh-keysign. The privilege shape is exactly what the SUID/SGID layer is built for: ssh-keysign runs with user.id:0, while the real user remains 1000, and the parent is a recently compiled executable in the user’s working directory. This results in the following rules triggering:
Potential Privilege Escalation via a Parent/Child Process Sequence
Potential Privilege Escalation via Recently Compiled Executable
That’s enough to make the alert useful, even though the payload is a stolen descriptor, not a shell. The endpoint doesn’t have to prove that the SSH host key was printed to stdout. The host already showed the suspicious relationship that matters: a local PoC repeatedly drove a SUID-root helper that briefly held root-only secrets.
chage_pwn (CVE-2026-46333)
chage_pwn uses the same kernel primitive against a different helper and a more
directly dangerous file. chage -l <user> opens account-aging data, including /etc/shadow,
and then drops privileges. The PoC forks chage, opens a pidfd for the child,
races pidfd_getfd() over candidate descriptors, looks for a duplicated
descriptor pointing at /etc/shadow, and then reads from that descriptor.

This one is useful because it validates a slightly different detection idea. The screenshot shows repeated Potential Shadow Read via Unprivileged User alerts on ./chage_pwn root. The process is still running as the unprivileged user, but the meaningful transition is group-based: the process enters shadow context from a user-controlled executable path.
Plain SUID and SGID misconfiguration
The last examples are deliberately simple. A binary that shouldn’t be SUID-root
is SUID-root, and the user runs it in the way that GTFOBins has documented for
years. It’s the same finish we saw in the page-cache family, just without the
corruption step. Copy Fail, DirtyFrag, pedit COW, and similar bugs often end by
making a privileged binary behave like an attacker-controlled SUID helper.
GTFOBins abuse starts there.
SUID abuse example: Root shell via find -exec
find can execute commands with -exec. When find is SUID-root, that executed
command inherits the elevated context.

The screenshot shows that find runs with root effective privileges, while the real user is non-root, and the command line includes the shell execution path. The alert is Privilege Escalation via SUID/SGID.
Privileged-mode shell: Root from bash -p
Shells usually drop elevated privileges unless told not to. The -p flag keeps
the privileged effective identity. If a SUID-root shell exists, or if a root-owned
copy of bash is placed somewhere unusual with the SUID bit set, launching it
with -p drops the caller directly into a root-capable shell.

The screenshot shows two useful detections: System Binary Copied or Moved, followed by Shell Privileged Mode from Non-Standard Path with Root Effective User. First, a system binary was copied into an unusual location (which is specific to how we set up this technique). Then the copied shell was executed in privileged mode.
This is the simplest form of the same pattern that we’ve been following throughout the section. A user-controlled path, a privileged execution context, and a root-capable process. Whether the attacker got there through AF_ALG, ESP/RxRPC, act_pedit, unshare, D-Bus, or a bad SUID bit, the endpoint story is still recognizable.
What this Linux privilege escalation detection framework covers
In this edition of our "Linux Detection Engineering" series, we built a layered
framework for Linux local privilege escalation. The first layer detects the
default flow every escalation shares: an unprivileged process executing from a
writable path and becoming root, whether through a SUID helper, a self-elevating
exploit, a suspicious descendant reaching root, a full exec-elevate-confirm
sequence, a root shell from a nonstandard path, or an interpreter one-liner. The
second layer adds bug-class coverage across the kernel page-cache corruption
family, namespaces and capabilities, trusted-helper abuse, sudo and polkit,
privileged D-Bus services, and plain SUID/SGID misconfiguration.
The value of this framework is durability. The 2026 surge produced many new CVEs, but they largely reused a handful of ideas and all ended in the same observable root transition, so outcome-oriented detection held up as the PoCs multiplied. It doesn’t claim to catch every possible LPE, but it gives defenders broad, resilient coverage of how escalations actually behave and a clear place to slot in each new technique as it appears.
ATOMIC MACOS (AMOS) STEALER INFECTION
11.9.2026 MALWARE TRAFFICS
NOTICE:
Zip files are password-protected. Of note, this site has a new password scheme. For the password, see the "about" page of this website.
NOTES:
My thanks to Dani [Varys] Z who let me know abut the fake macOS software page through a comment on LinkedIn.
ASSOCIATED FILES:
2026-09-10-AMOS-Stealer-notes.txt.zip 1.9 kB (1,884 bytes)
2026-09-10-AMOS-Stealer-infection-traffic.pcap.zip 3.5 MB (3,476,742 bytes)
2026-09-10-files-from-AMOS-Stealer-infection.zip 838.7 kB (838,718 bytes)

Shown above: Fake macOS software page.

Shown above: Text from the fake software page pasted into a macOS Terminal
window.

Shown above: Traffic from the infection filtered in Wireshark.
XWORM INFECTION
11.9.2026 MALWARE TRAFFICS
NOTICE:
Zip files are password-protected. Of note, this site has a new password scheme. For the password, see the "about" page of this website.
ASSOCIATED FILES:
2026-09-08-XWorm-notes.txt.zip 0.9 kB (9,38 bytes)
2026-09-08-XWorm-post-infection-traffic.pcap.zip 4.9 kB (4,853 bytes)
2026-09-08-XWorm-files.zip 452.9 kB (452,931 bytes)
2026-09-08 (TUESDAY): XWORM INFECTION
EMAIL INFORMATION:
- Return-Path: amedrano.tornillo@gmail[.]com
- Received: from gmail[.]com (unknown [217.60.195[.]100])
by [information removed]; Tue, 08 Sep 2026 17:43:14 +0000 (UTC)
- From: Alejandra Medrano (amedrano.tornillo@gmail[.]com)
- To: [information removed]
- Subject: ENVIO DOCUMENTOS FACTURA 4558
- Date: 08 Sep 2026 10:43:13 -0700
ATTACHED FILE:
- SHA-256 hash: 9b4e654a8435d91c7f4e24e7fd844cbbb62328131b0065bc5a534c6e948c02c5
- File size: 141,703 bytes
- File type: RAR archive data, v5
- File name: PAGO-ENVIO DOCUMENTOS FACTURA 4558.LZH
EXTRACTED MALWARE FOR XWORM:
- SHA-256 hash: 5ba1eee1204710adfe1963b730de79c7a8089b173e811052e7be464fc5da1a1d
- File size: 207,267 bytes
- File type: ASCII text, with very long lines, with CRLF, LF line terminators
- File name: PAGO-ENVIO DOCUMENTOS FACTURA 4558.js
- Sandbox analysis: https://www.joesandbox.com/analysis/1970315
- Sandbox analysis: https://tria.ge/260908-ymwaaagp3s/
- Sandbox analysis: https://app.any.run/tasks/7654b48a-cf1a-41f7-a65e-73d82381401c
XWORM C2 TRAFFIC:
- tcp[:]//43.228.157[.]141:7007/
NOTES:
- The infection did not survive a reboot on my infected Windows host.
10.9.2026 SANS Vulnerebility
About a week ago, Proxmox published an advisory revealing a vulnerability in older versions of Proxmox VE, its flagship Virtual Environment product. The vulnerability only affects version 7, which has not been supported for a couple of years now.
But it appears that the vulnerability may have caught the attention of some attackers and researchers. We do see a bump in scans for port 8006, and also some additional brute force traffic. For example, brute force requests like:
POST /api2/json/access/ticket HTTP/1.1
Host: [redacted]:8006
User-Agent: Go-http-client/1.1
Content-Length: 37
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip
password=Ww778899&username=root%40pam
The PVE proxy log will log failed login attempts with a 401 status code:
::ffff:62.60.130.193 - - [09/09/2026:15:26:14 +0000] "POST /api2/json/access/ticket HTTP/1.1" 401 50
::ffff:62.60.130.193 - - [09/09/2026:15:28:04 +0000] "POST /api2/json/access/ticket HTTP/1.1" 308 18
::ffff:62.60.130.193 - - [09/09/2026:15:28:08 +0000] "POST /api2/json/access/ticket HTTP/1.1" 401 50
::ffff:62.60.130.193 - - [09/09/2026:15:29:49 +0000] "POST /api2/json/access/ticket HTTP/1.1" 308 18
::ffff:62.60.130.193 - - [09/09/2026:15:29:52 +0000] "POST /api2/json/access/ticket HTTP/1.1" 401 50
::ffff:62.60.130.193 - - [09/09/2026:15:31:33 +0000] "POST /api2/json/access/ticket HTTP/1.1" 308 18
::ffff:62.60.130.193 - - [09/09/2026:15:31:36 +0000] "POST /api2/json/access/ticket HTTP/1.1" 401 50
You may also see the less commonly used 308 status code if the attacker does not use TLS on their first attempt and instead sends a POST request (as shown above). A 308 access code allows a client to change the request method after following the redirect. 301 and 302 status codes require the same method for the follow-up request.
Other scans I have seen:
Classic Fingerprinting
/pve2/images/logo-128.png???????
And a POST request to /api2/extjs/access/ticket. This endpoint behaves differently from the prior endpoint. It always returns 200, but the JSON payload will contain the login failed messages. These are trickier to analyze because the proxy log does not indicate the outcome of authentication. A return payload size of 77 bytes should indicate failure.
Following a RedTail Linux Payload from DShield to Dynamic Analysis
During monitoring of my DShield honeypot, I observed an attacker uploading a collection of Linux executables targeting several processor architectures. The files included ARM, ARM64, i686, RISC-V and x86-64 variants named as part of a RedTail deployment package. Rather than relying only on static indicators or public threat-intelligence results, I extracted the captured payloads from Cowrie and analyzed the x86-64 variant in an isolated malware-analysis environment.
The x86-64 sample analyzed in this article has the
following SHA-256 hash:
63be5f38b520b3143732962a5f8fec1f9abd1f483dbc741ed324e58f955dd35e


Dynamic analysis showed that the payload did considerably more than simply execute. It changed its visible process identity, terminated other processes, killed one of the filesystem-monitoring processes used during the experiment, and created a TCP listening socket. A matched pair of pre- and post-execution memory images was also acquired from the Proxmox hypervisor to preserve the malware's runtime state independently of the infected guest.
From Cowrie Upload to Malware Sample
The original files were recovered from the Cowrie download directory on the DShield honeypot and copied into a separate folder named after the event.code on the DShield SIEM “attack-a7fc773a9f1a”. The attack delivered multiple architecture-specific versions of the same malware family together with shell scripts responsible for deployment and cleanup.


The recovered set included variants for:

The associated deployment script inspected the host architecture and selected the appropriate RedTail executable. Static inspection of the x86-64 binary identified it as a statically linked ELF executable. Strings extracted from the sample also contained an indication that it had been processed with the UPX executable packer.


For the controlled experiment described here, I selected redtail.x86_64, matching the architecture of the Ubuntu analysis VM.
Isolated Analysis Environment
The malware was executed inside an Ubuntu 24.04 virtual machine
hosted on Proxmox. The victim was assigned:
10.66.66.10/24
and was connected only to an isolated malware-analysis network.
An INetSim server at:
10.66.66.2
provided simulated network services. The victim had no default route to the
Internet. Before execution, connectivity to INetSim was verified while attempts
to reach an external address such as 8.8.8.8 returned Network is unreachable.


This design allowed the malware to encounter DNS and network services without allowing it to communicate with real external infrastructure.
Several monitoring mechanisms were started before staging the sample. These included auditd syscall and filesystem rules, inotifywait filesystem monitoring, continuous process and socket sampling, journal and kernel logging, tcpdump on both the victim and INetSim systems, and strace around the actual malware execution.
In addition, guest memory was acquired from outside the infected system using QEMU's dump-guest-memory functionality on the Proxmox host.
Detonating the redtail.x86_64 Elf executable only (Setup.sh and Clean.sh were not ran)
There were three runs (Run 001.1, Run 001.2 and Run 002) of the malware detonation executed, with the VM reverted back to original pre-detonation state between RUN 001 and RUN 002. In RUN 001, the malware file was detonated twice. RUN 001 was run as user privileges but RUN 002 was run as root.
This report will focus on analyzing RUN 002 with comparisons made to RUN 001.1 and 1.2 to establish similiarities and differences between the runs.
Analysing Run 002, two memory images were collected:
vm610-baseline-pre-redtail.elf
vm610-post-redtail.elf
Both images were approximately 6 GB and were independently SHA-256 verified after acquisition. The baseline image was collected after all monitoring processes had been started but before the malware was staged, making the two images suitable for later differential analysis.




Controlled Execution
For the second experiment, the malware was executed directly with the argument observed during the earlier investigation:
redtail.x86_64 ssh
strace confirmed successful execution:
execve("/analysis/run-002/sample/redtail.x86_64",
["/analysis/run-002/sample/redtail.x86_64", "ssh"],
...) = 0

This was important because it established that the subsequent
behavior belonged to a successfully executing instance of the recovered Cowrie
payload rather than to a failed launch or unrelated process.
Two RedTail-backed processes remained running after execution:
PID 10395
PID 10404
Both /proc/<PID>/exe links resolved to:
/analysis/run-002/sample/redtail.x86_64
and hashing those executable mappings produced the same SHA-256 as the original
recovered sample.
Despite this, neither process presented itself as redtail.x86_64.
Instead, both appeared as:
php-fpm: pool www


Process Masquerading
The strace output captured the mechanism RedTail
used to alter its visible process name:
prctl(PR_SET_NAME, "php") = 0
The successful return value demonstrates that RedTail deliberately modified its
task name.
The result was a process that appeared in ordinary process listings as a
legitimate PHP-FPM worker:
php-fpm: pool www
while /proc/<PID>/exe continued to identify the executable as the original
RedTail sample.
This creates a useful forensic distinction. A process listing by itself could suggest that PHP-FPM was running on the system, while examining /proc/<PID>/exe and hashing the mapped executable revealed that the apparent PHP process was actually the RedTail binary.
This behavior was also consistent with an earlier experimental run in which surviving RedTail processes presented themselves using a PostgreSQL-like process name. The repeated observation suggests that RedTail uses legitimate-looking service names to make malicious processes less conspicuous in routine process inspection.

Process Termination and Monitoring Interference
One of the clearest behavioral findings from Run 002 was
RedTail's use of SIGKILL.
Before execution, the automated readiness check confirmed that the
filesystem-monitoring process was active:
[OK] inotify PID 1199

During malware execution, strace recorded:
kill(1199, SIGKILL) = 0
The return value of zero indicates that the signal was successfully delivered.
After execution, the same readiness check reported:
[!!] inotify not running

This provides a direct evidence chain:
inotifywait running
↓
RedTail calls kill(1199, SIGKILL)
↓
kernel reports success
↓
inotifywait no longer running
RedTail also issued successful SIGKILL calls against several additional PIDs during the same execution.

An important limitation must be stated here: Run 002 executed RedTail with root privileges. This gave the malware sufficient permission to terminate the root-owned monitoring process. In the earlier Run 001 experiment, a lower-privileged RedTail process attempted to terminate a root-owned monitor but received EPERM. Therefore, the successful termination observed in Run 002 demonstrates RedTail's process-killing behavior, while the ability to kill the monitoring process specifically depended on the privileges under which the sample was executed.

Network Activity, Listener, and
INetSim Observations
After execution, surviving RedTail process PID 10395 was observed listening on
0.0.0.0:39983

Although the process appeared as php-fpm: pool www, /proc/10395/exe resolved to the analyzed redtail.x86_64 sample. No packets involving TCP/39983 were observed in the Run 002 victim PCAP, so the purpose of the listening socket could not be determined.


While INetSim and packet capture initially showed no obvious RedTail outbound traffic, auditd revealed that PID 10395 attempted multiple external connect() calls on TCP port 853. Destinations included 1.1.1.1, 1.0.0.1, 8.8.8.8, 8.8.4.4, 9.9.9.9, 9.9.9.10, and several additional addresses. TCP/853 is commonly associated with DNS-over-TLS, and most of the observed destinations were public DNS resolver infrastructure.

Two addresses, 80.152.203.134 and 109.91.184.21, did not clearly correspond to known public resolver services during the investigation. Reverse-DNS information showed that 80.152.203.134 resolved to mail3.kekew.info and was allocated to Deutsche Telekom AG (AS3320), while 109.91.184.21 resolved to ip-109-091-184-021.um37.pools.vodafone-ip.de and belonged to a Vodafone GmbH static B2B customer pool (AS3209). Both addresses were contacted by the same RedTail-backed process on TCP/853, with the connection attempts failing with ENETUNREACH. Their specific role in the observed activity could therefore not be confirmed, and they were retained as anomalous resolver candidates rather than classified as malicious infrastructure.


Because the victim was deliberately configured without a default Internet route, every external connection attempt failed with ENETUNREACH before a packet could leave the host. This explains why these attempts were absent from both the victim PCAP and INetSim logs. In this case, endpoint auditing revealed network intent that network monitoring alone could not observe.
Differential analysis of the pre- and post-execution memory images also found several of the TCP/853 destinations only in post-execution memory. However, examination of the surrounding RAM showed that these strings belonged to cached audit records containing the RedTail PID, executable path, destination address and failed connect() result. The memory findings therefore corroborated the auditd evidence but were not treated as proof that RedTail stored its resolver list directly in plaintext process memory.




The same TCP/853 resolver sequence was reproduced in both separate RedTail executions. Several destinations corresponded to established DNS-over-TLS services, strongly supporting the interpretation that this sequence forms part of RedTail's resolver-selection or encrypted DNS initialization behaviour.

A RedTail-backed TCP listener was observed during both executions, but the listening port differed between runs (40219 in Run 001 and 39983 in Run 002). No traffic involving either listener was observed during the corresponding packet captures. This suggests that the listener port may be dynamically selected, although two observations are insufficient to determine the exact selection mechanism.

Filesystem Changes and Persistence
Run 002 provided direct evidence of persistence. Immediately after execution, the RedTail-backed process spawned a shell that first removed the existing root crontab and then installed a new entry containing @reboot <RedTail executable>. The resulting /var/spool/cron/crontabs/root file was absent from the pre-execution filesystem baseline but present following execution. This established a straightforward reboot-persistence mechanism: RedTail would be relaunched whenever the infected host restarted.






RedTail also spawned a separate shell that invoked iptables -F and attempted to insert an INPUT rule allowing TCP traffic to port 39983. This was the same port on which the surviving masqueraded RedTail process was listening. The behavior therefore suggests that RedTail attempted to expose its newly created listener through the host firewall. Audit and process-accounting evidence confirm that both iptables commands were executed as root; however, because no post-execution firewall ruleset or command termination status was preserved, successful application of the firewall changes could not be independently verified.





Run 001 showed the same persistence and firewall logic while RedTail was executed as the unprivileged victor58 account. Instead of creating a root crontab, RedTail removed and replaced the current user's crontab, resulting in the creation of /var/spool/cron/crontabs/victor58 with an @reboot entry pointing to the RedTail executable. This demonstrates that the cron persistence mechanism does not depend on root privileges; RedTail installs persistence under whichever account is executing the malware. Run 001 contained two separate executions of the sample, and each execution repeated this behavior. The corresponding firewall commands attempted to flush the ruleset and allow inbound access to the dynamically selected listener ports 39539 and 40219. Because these commands were executed as UID 1000 without root privileges, successful firewall modification was not established and would normally require additional privileges.




Across the two runs, the persistence behavior was therefore consistent while the resulting crontab depended on execution context: Run 001 persisted through the victor58 user crontab, whereas Run 002 persisted through the root crontab. The listener ports also differed across executions (39539, 40219, and 39983), further supporting the observation that RedTail selects a high-numbered listening port dynamically rather than relying on a single fixed port.
Process Masquerading and Listener Establishment
RedTail established a high-numbered TCP listener while disguising its process identity. During the first Run 001 execution, RedTail changed its process name to php, and the surviving malware process, PID 147999, was subsequently observed listening on 0.0.0.0:39539. Audit records from the same execution showed a child process invoking iptables -I INPUT -p tcp --dport 39539 -j ACCEPT, directly linking the firewall-modification attempt to the dynamically selected listener port. The iptables executable was successfully launched, although the preserved evidence does not confirm that the non-root process successfully applied the firewall rule.
The behaviour was reproduced with different values across subsequent executions. The second Run 001 execution masqueraded using a PostgreSQL-like process name and listened on TCP port 40219, while the root-privileged Run 002 execution used the process name php, a php-fpm: pool www process title, and listened on TCP port 39983. The differing ports across the three executions indicate dynamic high-port selection rather than reliance on a fixed listening port. In each case, RedTail's firewall command referenced the corresponding selected listener port.
RUN 001.1 Pictures


RUN 001.2 Pictures

RUN 002 Pictures



Summary

Host Discovery and System Profiling
Immediately after execution, RedTail performed extensive host profiling through Linux /proc and /sys interfaces. It queried processor characteristics, CPU topology and cache configuration, system memory, NUMA layout, huge-page availability, GPU information, kernel boot parameters, and DMI hardware identifiers.
Several of these queries were capable of identifying the analysis environment as virtualized. In Run 002, the returned data included the hypervisor CPU flag, QEMU system and chassis vendor values, SeaBIOS, and a Q35 virtual-machine product identifier. Despite receiving these virtualization indicators, RedTail continued executing its persistence, listener-creation and network-initialization routines.
To determine whether this profiling was incidental or part of a consistent initialization routine, the same query set was compared across both RedTail executions in Run 001 and the root-privileged execution in Run 002.
Raw Log Screenshot Snippets



Processed Logs Screenshot Snippet

RedTail Host Profiling Queries — Run 002
RedTail first queried /proc/cpuinfo and /proc/cmdline, obtaining processor, architecture and kernel information. The CPU information identified the virtual machine as exposing an AMD Ryzen 7 6800H processor with four visible CPUs and included the hypervisor CPU flag.
The sample then enumerated the topology of CPUs 0 through 3. It queried core IDs, CPU maps, package and die relationships, and CPU availability. This allowed it to identify the number and arrangement of available processors.
RedTail also performed unusually detailed cache enumeration. It queried the type, level, size, line size, number of sets, and sharing relationships of the available L1, L2 and L3 caches. It continued checking additional cache indexes until the kernel returned ENOENT, indicating that no further cache levels were present.
This behaviour shows that RedTail was not limited to simply determining the processor model or CPU count. It collected detailed information about the resources and topology available to the process.

CPU topology

CPU cache profiling

NUMA and memory profiling
RedTail queried /proc/meminfo to determine total and available system memory, swap configuration and huge-page availability. In Run 002, the VM exposed approximately 6 GB of RAM and 4 GB of swap, while no huge pages were currently allocated.
The sample also queried NUMA information under /sys/devices/system/node. It identified a single NUMA node, obtained the CPUs associated with that node, examined node-specific memory usage, and checked both 2 MB and 1 GB huge-page configurations. RedTail additionally attempted to query NUMA bandwidth and latency interfaces, although these returned ENOENT because the interfaces were unavailable in the VM.
The detailed CPU, cache, NUMA and huge-page enumeration resemble
resource-suitability profiling that could be useful to a computationally
intensive workload. However, the observed system calls
alone do not establish exactly how RedTail used this information.

Hardware and virtualization profiling
RedTail queried multiple DMI identifiers under /sys/devices/virtual/dmi/id/. It also retrieved the VM's product_uuid when executing with root privileges.
These results show that RedTail queried information sufficient to identify the system as a QEMU virtual machine. The evidence does not establish that the malware performed anti-VM evasion or terminated based on these values; in this experiment, it continued execution despite receiving them.

Host Profiling Comparison Across Run 001 and Run 002
The host-profiling behaviour was highly reproducible.
Run 001 contained two separate non-root executions of RedTail, and each produced
180 extracted host query/reply records. Run 002 executed the same sample as
root. After normalizing the process-specific /proc/<PID>/cpuset path, the unique
host-information query sets from all three executions were identical and
produced the same SHA-256 hash.
This demonstrated that RedTail consistently queried the same categories of information across all three executions:
• CPU and processor capabilities
• CPU topology
• cache configuration
• system memory
• NUMA topology
• huge-page configuration
• GPU information
• kernel configuration
• DMI hardware and virtualization identifiers
1. Identify which Run 001 trace files performed the host profiling

2. Extract PATH | REPLY from every matching RedTail trace

3. Then list what was created:

4. Make a clean list of only the paths queried

5. Compare the two Run 001 executions

6. Compare Run 001 with Run 002
Create its path-only version for Run 002, same formatting as applied to Run 001:

Then compare it against Run 001:

7. Normalizing the process-specific /proc/<PID>/cpuset pathname

8. Comparing all 3 runs query paths again with sha256 hashes of the files.

Result: All the same query paths being run.
After which, a comparison of the returned values was performed. A comparison was taken between the two non-root Run 001 executions:

The comparison of the returned values showed that most differences were simply caused by changing system state. For example, free and available memory differed between executions while the same /proc/meminfo query was performed each time.
The comparison between Run 001 and Run 002 were more interesting because Run 001 was non-root while Run 002 was root directly, the differences were related to execution privilege. During the non-root Run 001 executions, the following DMI queries returned EACCES:
chassis_serial | ERROR: EACCES
product_serial | ERROR: EACCES
product_uuid | ERROR: EACCES
During root-privileged Run 002, RedTail queried exactly the same paths, but access succeeded:
chassis_serial | [empty]
product_serial | [empty]
product_uuid | 770cb473-61eb-4f56-9777-d9e44d8ad48f
The second Run 001 execution gives the same non-root result, strengthening the finding.


This suggests that RedTail did not adapt its discovery routine according to privilege. Instead, it attempted the same enumeration sequence and obtained additional information when its execution context permitted access.
Root Privileges Query Output (No error returned):

Profiling Summary
The analysis showed that host and resource profiling is a consistent part of RedTail's initialization behaviour. Across three separate executions—two non-root executions in Run 001 and one root execution in Run 002—the malware queried an identical normalized set of host-information paths.
RedTail collected considerably more information than was required simply to identify the operating system. It enumerated CPU topology and cache geometry, system and NUMA memory, huge-page configuration, GPU availability, kernel parameters and DMI hardware identifiers. Execution privilege affected what information the operating system returned, but not which resources RedTail attempted to query.
Across all executions, RedTail obtained clear indicators that the analysis host was virtualized, including the hypervisor CPU flag, QEMU vendor strings, SeaBIOS and the Q35 virtual-machine identifier. Despite receiving these signals, the sample continued with cron persistence, listener creation, firewall-manipulation attempts and network initialization. This suggests that obvious virtualization indicators alone were not sufficient to alter or halt RedTail’s observed runtime behaviour. One possible explanation is that virtualization by itself is no longer a reliable indicator of a malware-analysis sandbox, because similar characteristics are also common in legitimate VPS and cloud-hosted Linux environments. The purpose of these virtualization-related queries therefore cannot be conclusively attributed to sandbox evasion.
Process Termination and Defense Evasion
During Run 002, RedTail enumerated running processes through /proc, resolved their executable paths, and inspected command-line arguments before selectively issuing SIGKILL. The malware successfully terminated PID 1199, an inotifywait process used by the analysis environment to monitor filesystem changes. It also successfully killed the timeout process supervising the tracing session, along with two sudo processes associated with the script used to launch the experiment. In each of these cases, the kill() system call returned 0, confirming that the termination request succeeded.
RedTail also identified /usr/bin/strace, read the command line showing that it was tracing the RedTail executable, and then issued SIGKILL against the strace process. The trace terminated while recording this system call, so its return value was not preserved. Nevertheless, the sequence provides strong evidence that RedTail actively interfered with the instrumentation used to observe its behaviour during the root-privileged execution. The available dynamic evidence confirms analysis-tool disruption, although it does not yet establish the exact criteria RedTail used to decide which processes to terminate.



The same process-enumeration and termination behaviour was reproduced during the two non-root executions in Run 001. In both executions, RedTail identified the root-owned inotifywait process used to monitor filesystem changes, read its command line, and attempted to terminate it with SIGKILL. These attempts returned EPERM, demonstrating that the non-root execution context prevented RedTail from terminating the root-owned monitor.


Process terminated as Root:

However, non-root privileges did not prevent RedTail from interfering with analysis processes running under the same user context. During the second Run 001 execution, RedTail identified and successfully terminated the timeout process supervising its strace session. It then identified /usr/bin/strace, read the command line showing that the tracer was monitoring the RedTail executable, and invoked SIGKILL; the trace terminated before the system-call return value could be recorded. The second execution also successfully terminated PID 147999, the surviving RedTail process from the first execution, suggesting possible previous-instance cleanup or single-instance enforcement.
Process terminated as User:


Together, Runs 001 and 002 show that RedTail's process-disruption routine operates regardless of privilege, while its effectiveness depends on the ownership and privilege level of the target process. Root execution enabled RedTail to terminate the root-owned filesystem monitor, whereas non-root execution was restricted to processes it was permitted to signal.
Overall Conclusion
Dynamic analysis of the RedTail sample revealed a consistent sequence of host discovery, persistence, process manipulation, network initialization, and defensive interference across both privileged and unprivileged executions. Although individual values such as process names and listening ports changed between executions, the underlying behavior was highly reproducible.
RedTail performed extensive host profiling through Linux /proc and /sys interfaces, enumerating processor characteristics, cache topology, memory, NUMA configuration, huge-page availability, and DMI hardware information. The same normalized set of host-information paths was queried across both Run 001 executions and Run 002. The sample also obtained explicit virtualization indicators, including the hypervisor CPU flag, QEMU identifiers, SeaBIOS, and a Q35 virtual-machine product name, but continued execution despite receiving this information. Execution privilege affected the information available to the malware but did not substantially alter its discovery routine.
Persistence was established through the current execution account's crontab using an @reboot entry pointing to the RedTail executable. Consequently, the non-root Run 001 execution created persistence for victor58, while the root-privileged Run 002 execution created root-level cron persistence. RedTail also attempted to manipulate the host firewall by flushing existing rules and inserting an INPUT rule for its dynamically selected TCP listener. The selected listener changed between executions—TCP ports 39539, 40219, and 39983 were observed—while the corresponding iptables command referenced the matching port in each case. Firewall modification was confirmed as attempted, although the preserved evidence does not establish successful rule application in every execution.
RedTail additionally disguised its running processes. Observed process names included php and a PostgreSQL-like postgres: user ..., while Run 002 also presented a process title of php-fpm: pool www despite the executable remaining redtail.x86_64. The masquerading processes owned the dynamically selected TCP listeners, demonstrating that the altered identities were associated with the surviving malware processes rather than unrelated applications.
A particularly significant finding was RedTail's interference with the analysis environment. The malware enumerated running processes, inspected executable paths and command-line arguments, and selectively issued SIGKILL. During non-root Run 001, attempts to terminate the root-owned inotifywait filesystem monitor failed with EPERM; however, RedTail remained capable of disrupting analysis processes that it had permission to signal, including the timeout process supervising its tracing session. During root-privileged Run 002, the same inotifywait monitor was successfully terminated. RedTail also identified /usr/bin/strace, read the command line showing that it was tracing redtail.x86_64, and issued SIGKILL; the trace terminated while recording that operation. These observations demonstrate that the process-disruption routine was present regardless of privilege, while its effectiveness depended on the privileges and ownership of the target process.
Network analysis identified repeated connection attempts to multiple external IP addresses on TCP port 853. The same target sequence appeared across Run 001 and Run 002, supporting its association with RedTail rather than unrelated host activity. Because the analysis VM deliberately had no default Internet route, these connections failed with ENETUNREACH and did not leave the host. The use of TCP/853 is consistent with DNS-over-TLS infrastructure, although the isolated environment prevented observation of any successful protocol exchange and therefore does not establish the ultimate purpose of those connections.
Static examination of the accompanying clean.sh script identified additional cleanup functionality targeting cron entries, shell-startup files, temporary directories, miner-related services, and suspicious process names. However, the script was not observed executing during either dynamic-analysis run. Its functionality should therefore be treated separately from behavior directly demonstrated by redtail.x86_64.
Overall, the experiments show RedTail as a Linux threat that combines persistent execution, extensive host profiling, process masquerading, dynamically selected listening services, attempted firewall manipulation, repeated external network initialization, and active interference with monitoring and analysis processes. Running the sample under both non-root and root contexts was particularly valuable: the experiments demonstrated that RedTail largely follows the same behavioral sequence regardless of privilege, while elevated privileges substantially increase the effectiveness of actions such as accessing protected host identifiers, modifying privileged resources, and terminating root-owned monitoring processes.
Limitations of Analysis:
• External TCP/853 connections could not complete
because the victim intentionally had no Internet route.
• No inbound interaction with the RedTail listeners was observed, so their
higher-level protocol/function was not established.
• Successful execution of iptables via execve() does not by itself prove that
every firewall-rule change was successfully applied.
• clean.sh and setup.sh was analyzed statically and was not observed executing
during Runs 001 or 002.
Indicators of Compromise

MITRE ATT&CK Mapping

Other Summary Findings – Supporting RedTail File Deployment and Clean Up
Static Analysis of SETUP.SH *Not Executed in any of the runs*
Static examination of setup.sh identified a multi-architecture staging and execution mechanism for RedTail. The script determines the victim's processor architecture and selects an associated payload for x86-64, x86, ARM or RISC-V systems. It enumerates user-owned writable directories and examines filesystem noexec settings to identify a suitable staging location, with /tmp, /var/tmp and /dev/shm included as fallback locations. The selected RedTail binary is copied into a randomly generated dot-prefixed filename, marked executable and launched with the argument ssh. Following execution, the script deletes the more readily identifiable redtail.* architecture-specific payload files from both the staging and original directories. This combination of malware relocation, hidden-file staging and artifact cleanup appears intended to reduce the visibility of the deployed executable. Static analysis does not, by itself, establish that setup.sh executed during the controlled dynamic-analysis runs.
Static Analysis of CLEAN.SH *Not Executed in any of the runs*
Static analysis of the accompanying clean.sh script revealed functionality designed to remove common Linux malware persistence mechanisms and terminate suspicious processes. The script first disables and stops a service named c3pool_miner. It then removes immutable and append-only attributes from cron files before filtering user and system cron configurations for commands containing strings such as wget, curl, /dev/tcp, /tmp, .sh, nc, bash -i, sh -i, and base64 -d.
The cleanup extends across user crontabs, /etc/crontab, cron scheduling directories, /etc/anacrontab, and the current user's crontab. The script additionally removes the top-level contents of /tmp, /var/tmp, and /dev/shm, and applies the same filtering routine to .bashrc, .bash_profile, and .profile. These actions are consistent with an attempt to remove scheduled-task, shell-startup, and temporary-file persistence.
Finally, the script attempts to terminate processes associated with unusual names including /bin/-bash, systemtd, and /usr/bin/.sh using SIGKILL. The name systemtd resembles the legitimate systemd service name and may represent an attempt to target a masquerading process. However, the available evidence does not establish that these filenames belong specifically to the RedTail sample analyzed in Runs 001 and 002.
The script was not observed executing during either dynamic-analysis run. Its contents should therefore be treated as static functionality associated with the recovered script rather than behaviour directly observed from redtail.x86_64.
SETUP.SH File Contents


CLEAN.SH File Contents

[1] https://www.inetsim.org/index.html
[2] https://github.com/bruneaug/DShield-SIEM/tree/main
[3] https://www.sans.edu/cyber-security-programs/bachelors-degree/
September 2026 Microsoft Patch Tuesday
|
Description |
|||||||
|---|---|---|---|---|---|---|---|
|
CVE |
Disclosed |
Exploited |
Exploitability (old versions) |
current version |
Severity |
CVSS Base (AVG) |
CVSS Temporal (AVG) |
|
.NET Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
.NET Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
.NET and Visual Studio Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
.NET and Visual Studio Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
ASP.NET Core Denial of Service Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
No |
No |
- |
- |
Important |
5.9 |
5.2 |
|
|
Active Directory Certificate Services (AD CS) Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Active Directory Certificate Services (AD CS) Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
Active Directory Certificate Services (AD CS) Tampering Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
Active Directory Domain Services Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Active Directory Federation Services (AD FS) Denial of Service Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.9 |
5.2 |
|
|
Audio Video Control Transport Protocol Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Azure AI Language Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
10.0 |
8.7 |
|
|
Azure Arc SQL Server Extension Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
Azure Cosmos DB Spoofing Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
8.5 |
7.4 |
|
|
Azure CycleCloud Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.7 |
6.7 |
|
|
Azure HDInsight Ambari Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.2 |
6.5 |
|
|
BranchCache Denial of Service Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
Connected Devices Platform Service (Cdpsvc) Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Connected User Experiences and Telemetry Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
Copilot Studio Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
9.3 |
8.1 |
|
|
Data Sharing Service Client Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
DirectWrite Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
Entra ID Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
9.9 |
8.6 |
|
|
GitHub Copilot and Visual Studio Code Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.3 |
4.6 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
Graphic Fonts Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Graphic Fonts Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
Graphics Kernel Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
7.5 |
6.5 |
|
|
HEIF Image Extensions Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
HEVC Video Extensions Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
HEVC Video Extensions Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
7.8 |
6.8 |
|
|
HID Class Driver Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
IP Helper Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
8.1 |
7.1 |
|
|
Internet Connection Sharing (ICS) Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
9.8 |
8.5 |
|
|
Internet Storage Name Service Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Kernel Streaming WOW Thunk Service Driver Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Microsoft Account Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Microsoft Account Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Microsoft Authentication Library (MSAL) for Node.js Spoofing Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.4 |
6.4 |
|
|
Microsoft Authenticator Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.6 |
7.5 |
|
|
Microsoft Azure Active Directory B2C Elevation of Privilege
Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
10.0 |
8.7 |
|
|
Microsoft Azure CLI Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
Microsoft COM for Windows Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Microsoft COM for Windows Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Microsoft DirectMusic Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
9.8 |
8.5 |
|
|
Microsoft Discovery Studio Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
7.4 |
6.4 |
|
|
Microsoft Dynamics 365 On-Premises Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
Microsoft Entra ID Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
9.1 |
7.9 |
|
|
Microsoft Excel Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Microsoft Excel Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Critical |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Critical |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Critical |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Critical |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Critical |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Critical |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Microsoft Exchange Server Denial of Service Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
Microsoft Exchange Server Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.1 |
7.1 |
|
|
No |
No |
- |
- |
Important |
9.1 |
7.9 |
|
|
Microsoft Exchange Server Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.9 |
5.2 |
|
|
Microsoft Exchange Server Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.1 |
7.1 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
Microsoft Exchange Server Spoofing Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
9.3 |
8.1 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
Microsoft Exchange Server Tampering Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
Microsoft Fabric Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
8.5 |
7.4 |
|
|
Microsoft Failover Cluster Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
9.8 |
8.5 |
|
|
No |
No |
- |
- |
Critical |
8.1 |
7.1 |
|
|
Microsoft Graphics Component Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Microsoft Graphics Component Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Microsoft Install Service Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Microsoft JScript Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.1 |
7.1 |
|
|
No |
No |
- |
- |
Important |
8.1 |
7.1 |
|
|
Microsoft Local Security Authority (LSA) Server Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Microsoft Office Access Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.3 |
6.4 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
Microsoft Office Excel Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Microsoft Office Excel Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
Microsoft Office Graphics Component Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
Microsoft Office Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
Microsoft Office Outlook Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
|||
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
Microsoft Office Outlook Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Critical |
9.8 |
8.5 |
|
|
No |
No |
- |
- |
Critical |
|||
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
Microsoft Office PowerPoint Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
Microsoft Office PowerPoint Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
|||
|
Microsoft Office Publisher Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
Microsoft Office Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Critical |
7.5 |
6.5 |
|
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
Microsoft Office SharePoint Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
Microsoft Office SharePoint Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
3.5 |
3.1 |
|
|
Microsoft Office SharePoint Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
Microsoft Office SharePoint Spoofing Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.3 |
6.4 |
|
|
No |
No |
- |
- |
Important |
7.3 |
6.4 |
|
|
No |
No |
- |
- |
Important |
3.5 |
3.1 |
|
|
No |
No |
- |
- |
Important |
4.6 |
4.0 |
|
|
Microsoft Office Spoofing Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
Microsoft Office Word Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
5.0 |
4.4 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
|||
|
No |
No |
- |
- |
Important |
|||
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Microsoft Office Word Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
Microsoft OpenSSH for Windows Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
Microsoft Power Automate Desktop Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Microsoft PowerShell Security Feature Bypass Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
Microsoft Remote Desktop App for Windows Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
Microsoft SQL Server Denial of Service Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
Microsoft SQL Server Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
9.6 |
8.3 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
Microsoft SQL Server Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Microsoft SQL Server Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.1 |
7.1 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Critical |
8.5 |
7.4 |
|
|
No |
No |
- |
- |
Important |
8.5 |
7.4 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Critical |
8.5 |
7.4 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
4.9 |
4.3 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
Microsoft SQL Server Security Feature Bypass Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
Microsoft Standard XPS Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
Microsoft Standard XPS Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
4.7 |
4.1 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Microsoft Standard XPS Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
9.8 |
8.5 |
|
|
Microsoft Storage Port Driver Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Microsoft Teams for Android Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.8 |
5.9 |
|
|
No |
No |
- |
- |
Important |
5.8 |
5.1 |
|
|
Microsoft Trace Data Helper Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Microsoft UxTheme Library (uxtheme.dll) Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
9.8 |
8.5 |
|
|
Microsoft VOLSNAP.SYS Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
Microsoft WDAC OLE DB provider for SQL Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
Microsoft WebP Image Extension Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
Microsoft Windows Media Foundation Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
9.8 |
8.5 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
Microsoft Windows PDF Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
9.8 |
8.5 |
|
|
Microsoft Windows SCSI Class System File Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.8 |
5.9 |
|
|
Microsoft Windows SCSI Class System File Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
4.6 |
4.0 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
Microsoft Windows Search Component Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Microsoft Windows Search Component Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.7 |
5.0 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Microsoft Windows Search Component Tampering Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Microsoft Windows Speech Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Microsoft Windows Speech Tampering Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Microsoft Word Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Critical |
9.8 |
8.5 |
|
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
Power Automate Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
8.5 |
7.4 |
|
|
PowerShell Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
Push Message Routing Service Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
RPC Runtime Library Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
9.8 |
8.5 |
|
|
Raw Image Extension Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
Remote Desktop Client Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
Remote Desktop Gateway Service Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
Remote Desktop Licensing Service Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
Remote Desktop ServicesRemote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
No |
No |
- |
- |
Important |
9.8 |
8.5 |
|
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
Role: Windows Fax Service Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
SQL Server Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
SQL Server Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
Skype for Business Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
Skype for Business Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
9.8 |
8.5 |
|
|
Skype for Business Spoofing Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
8.3 |
7.2 |
|
|
Skype for Business and Lync Denial of Service Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
Spring Cloud Azure Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
9.0 |
7.8 |
|
|
Storage Spaces Controller Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Telnet Client Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
9.8 |
8.5 |
|
|
Virtual Hard Disk (VHD) Miniport Driver Denial of Service Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
Virtual Hard Disk (VHD) Miniport Driver Elevation of Privilege Vulernability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Virtual Hard Disk (VHD) Miniport Driver Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
7.5 |
6.5 |
|
|
Visual Studio Code Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.4 |
6.4 |
|
|
Visual Studio Code Security Feature Bypass Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.4 |
6.4 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.2 |
7.1 |
|
|
No |
No |
- |
- |
Important |
8.2 |
7.1 |
|
|
No |
No |
- |
- |
Important |
9.6 |
8.3 |
|
|
No |
No |
- |
- |
Important |
8.2 |
7.1 |
|
|
No |
No |
- |
- |
Important |
8.2 |
7.1 |
|
|
Visual Studio Code Tampering Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
Visual Studio Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
Volume Manager Driver Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Volume Shadow Copy Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.8 |
5.9 |
|
|
Web Media Extensions Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
Win32k Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
5.6 |
4.9 |
|
|
No |
No |
- |
- |
Important |
4.7 |
4.1 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Windows AF_UNIX Socket Provider Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows ALPC Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Critical |
8.2 |
7.1 |
|
|
Windows Accounts Control Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Active Directory Domain Services Denial of Service Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
Windows Active Directory Domain Services Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
No |
No |
- |
- |
Important |
8.1 |
7.1 |
|
|
No |
No |
- |
- |
Important |
8.1 |
7.1 |
|
|
Windows Advanced Local Procedure Call (ALPC) Elevation of Privilege Vulnerability |
|||||||
|
No |
Yes |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows Ancillary Function Driver for WinSock Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
8.1 |
7.1 |
|
|
Windows Audio Service Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Authentication Methods Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Autopilot Tampering Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Windows Bind Filter Driver Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Biometric Service Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows Biometric Service Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Windows BitLocker Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
Windows BitLocker Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.7 |
5.8 |
|
|
Windows Bluetooth Port Driver Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Bluetooth Port Driver Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
4.7 |
4.1 |
|
|
Windows Bluetooth Service Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Boot Manager Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.8 |
5.9 |
|
|
Windows Broadcast DVR User Service Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Broker Infrastructure Service Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows CD-ROM Driver Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows CD-ROM Driver Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
4.6 |
4.0 |
|
|
Windows Camera Frame Server Monitor Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows Cloud Files Mini Filter Driver Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Cloud Files Mini Filter Driver Tampering Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Windows Compressed Folder Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows Compressed Folder Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
Windows Compressed Folder Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
9.8 |
8.5 |
|
|
Windows Connected User Experiences and Telemetry Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
Windows Container Manager Service Security Feature Bypass Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
4.7 |
4.1 |
|
|
Windows Core Messaging Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows Credential Guard Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Critical |
8.2 |
7.1 |
|
|
Windows Credential Providers Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Credential Providers Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
Windows DCOM Server Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows DHCP Client Denial of Service Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
Windows DHCP Client Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
Windows DHCP Server Denial of Service Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
No |
No |
- |
- |
Important |
5.7 |
5.0 |
|
|
No |
No |
- |
- |
Important |
5.7 |
5.0 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
5.7 |
5.0 |
|
|
No |
No |
- |
- |
Important |
5.7 |
5.0 |
|
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
Windows DHCP Server Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.8 |
5.9 |
|
|
Windows DHCP Server Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
No |
No |
- |
- |
Important |
5.9 |
5.2 |
|
|
No |
No |
- |
- |
Important |
5.9 |
5.2 |
|
|
No |
No |
- |
- |
Important |
5.9 |
5.2 |
|
|
No |
No |
- |
- |
Important |
5.9 |
5.2 |
|
|
Windows DHCP Server Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
No |
No |
- |
- |
Important |
8.1 |
7.1 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.1 |
7.1 |
|
|
No |
No |
- |
- |
Critical |
9.8 |
8.5 |
|
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
No |
No |
- |
- |
Important |
6.4 |
5.6 |
|
|
No |
No |
- |
- |
Critical |
9.8 |
8.5 |
|
|
No |
No |
- |
- |
Important |
6.4 |
5.6 |
|
|
No |
No |
- |
- |
Important |
6.4 |
5.6 |
|
|
Windows DNS Denial of Service Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
No |
No |
- |
- |
Important |
5.9 |
5.2 |
|
|
Windows DNS Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
6.7 |
5.8 |
|
|
Windows DNS Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Windows DNS Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
8.1 |
7.1 |
|
|
Windows DNS Server Denial of Service Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.9 |
5.2 |
|
|
Windows DNS Server Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Critical |
9.8 |
8.5 |
|
|
No |
No |
- |
- |
Important |
8.1 |
7.1 |
|
|
No |
No |
- |
- |
Critical |
8.1 |
7.1 |
|
|
No |
No |
- |
- |
Critical |
8.1 |
7.1 |
|
|
No |
No |
- |
- |
Critical |
8.1 |
7.1 |
|
|
No |
No |
- |
- |
Important |
8.1 |
7.1 |
|
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
No |
No |
- |
- |
Critical |
8.1 |
7.1 |
|
|
Windows DNS Spoofing Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.1 |
7.1 |
|
|
Windows DWM Core Library Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
Windows Defender Firewall Service Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Defender Firewall Service Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Windows Deployment Services Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
No |
No |
- |
- |
Critical |
7.5 |
6.5 |
|
|
No |
No |
- |
- |
Critical |
7.8 |
6.8 |
|
|
Windows Device Association Broker Service Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Device Association Service Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Device Health Attestation (DHA) Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.5 |
7.5 |
|
|
Windows Devices Human Interface Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Direct Show Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
9.8 |
8.5 |
|
|
Windows Display Enhancement Service Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Distributed File System (DFS) Denial of Service Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.3 |
4.6 |
|
|
Windows Distributed File System (DFS) Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows Embedded Mode Service Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Encrypting File System (EFS) Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows Encrypting File System (EFS) Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Windows Enterprise App Management Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows Error Reporting Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
Windows Error Reporting Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Windows Error Reporting Tampering Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
Windows Event Logging Service Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
9.8 |
8.5 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
Windows Failover Cluster Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.4 |
5.6 |
|
|
Windows Failover Cluster Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
Windows Fast FAT Driver Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
Windows Fast FAT Driver Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.4 |
6.4 |
|
|
Windows File History Service Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
6.4 |
5.6 |
|
|
Windows GDI Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Windows GDI+ Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
Windows GDI+ Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Windows Graphics Component Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
9.8 |
8.5 |
|
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
Windows Group Policy Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
Windows HTTP Print Provider Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
No |
No |
- |
- |
Critical |
9.8 |
8.5 |
|
|
Windows HTTP.sys Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
Windows Hello Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
7.5 |
6.5 |
|
|
No |
No |
- |
- |
Critical |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Critical |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Critical |
8.2 |
7.1 |
|
|
No |
No |
- |
- |
Critical |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Critical |
8.2 |
7.1 |
|
|
Windows Hello Security Feature Bypass Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
4.4 |
3.9 |
|
|
Windows Host Guardian Service Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Hyper-V Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
No |
No |
- |
- |
Critical |
8.2 |
7.1 |
|
|
Windows Hyper-V Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
9.8 |
8.5 |
|
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
Windows IP Address Management (IPAM) Service Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Image Acquisition Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Image Acquisition Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
4.7 |
4.1 |
|
|
Windows Imaging Component Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Windows Imaging Component Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Critical |
9.8 |
8.5 |
|
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
Windows Installer Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
6.7 |
5.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Internet Connection Sharing (ICS) Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Internet Connection Sharing (ICS) Tampering Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Windows Internet Key Exchange (IKE) Extension Denial of Service Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
Windows Internet Key Exchange (IKE) Protocol Extensions Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
Windows Kerberos Denial of Service Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
Windows Kerberos Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows Kerberos Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
Windows Kernel Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Kernel Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
5.7 |
5.0 |
|
|
Windows Kernel Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
Windows Kernel-Mode Driver Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows Key Distribution Center Denial of Service Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
Windows Key Distribution Center Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
Windows LDAP - Lightweight Directory Access Protocol Denial of Service Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
Windows License Manager Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows License Manager Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Windows Link Layer Topology Discovery Protocol Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.1 |
7.1 |
|
|
Windows MIDI Service Module Elevation of Privileges Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows MIDI Service Module Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Windows Management Instrumentation Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
No |
No |
- |
- |
Important |
6.4 |
5.6 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Management Instrumentation Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.7 |
5.0 |
|
|
Windows Management Services Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
Windows Media Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Media Player Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
Windows Message Queuing Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Message Queuing Queue Manager Denial of Service Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
Windows Message Queuing Queue Manager Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
Windows Message Queuing Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
9.8 |
8.5 |
|
|
No |
No |
- |
- |
Important |
8.1 |
7.1 |
|
|
Windows Mobile Broadband Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
Windows Modern Device Management (MDM) Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Modern Device Management (MDM) Security Feature Bypass Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Windows Modern Execution Server Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows NDIS Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
Windows NFS Portmapper Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows NTFS Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
No |
No |
- |
- |
Important |
6.7 |
5.8 |
|
|
No |
No |
- |
- |
Important |
8.4 |
7.3 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows NTFS Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
5.7 |
5.0 |
|
|
Windows NTFS Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.8 |
5.9 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
9.8 |
8.5 |
|
|
No |
No |
- |
- |
Important |
8.4 |
7.3 |
|
|
No |
No |
- |
- |
Important |
6.8 |
5.9 |
|
|
No |
No |
- |
- |
Important |
8.4 |
7.3 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
6.8 |
5.9 |
|
|
Windows NTFS Tampering Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
4.7 |
4.1 |
|
|
Windows Netlogon Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
9.8 |
8.5 |
|
|
Windows Netlogon Spoofing Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
Windows Network Connection Broker Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows Network Connection Broker Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Windows Network File System Denial of Service Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.7 |
5.0 |
|
|
Windows Network File System Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
Windows Notification Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows OLE DB Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
Windows OLE DB Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
Windows Online Certificate Status Protocol (OCSP) Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Overlay Filter Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.7 |
5.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
No |
No |
- |
- |
Important |
6.7 |
5.8 |
|
|
Windows Overlay Filter Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
4.7 |
4.1 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
4.8 |
4.2 |
|
|
Windows Paint Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
Windows Partition Management Driver Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Partition Management Driver Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Windows Performance Monitor Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows Power Dependency Coordinator Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows Power Dependency Coordinator Tampering Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Windows Print Spooler Components Denial of Service Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.7 |
5.0 |
|
|
Windows Print Spooler Components Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows Print Spooler Components Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
5.7 |
5.0 |
|
|
Windows Print Spooler Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
Windows PrintWorkflowUserSvc Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
Windows Program Compatibility Assistant Service Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Program Compatibility Assistant Service Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
5.7 |
5.0 |
|
|
Windows Push Notifications Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows RNDIS Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
4.6 |
4.0 |
|
|
Windows RNDIS Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
9.8 |
8.5 |
|
|
Windows Registry Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
Windows Reliable Multicast Transport Driver (RMCAST) Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
8.1 |
7.1 |
|
|
No |
No |
- |
- |
Critical |
8.1 |
7.1 |
|
|
No |
No |
- |
- |
Critical |
8.1 |
7.1 |
|
|
Windows Remote Access Connection Manager Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Remote Access Connection Manager Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
Windows Remote Access Connection Manager Tampering Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Windows Remote Desktop Client Denial of Service Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
Windows Remote Desktop Client Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.7 |
5.0 |
|
|
Windows Remote Desktop Licensing Service Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Windows Remote Desktop Protocol Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
Windows Remote Desktop Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
Windows Remote Desktop Services Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
Windows Remote Desktop Services Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Windows Resilient File System (ReFS) Deduplication Service Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Resilient File System (ReFS) Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows Routing and Remote Access Service (RRAS) Denial of Service Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
Windows Routing and Remote Access Service (RRAS) Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Routing and Remote Access Service (RRAS) Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
9.8 |
8.5 |
|
|
No |
No |
- |
- |
Critical |
7.5 |
6.5 |
|
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Critical |
8.8 |
7.7 |
|
|
Windows SMB Client Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows SMB Client Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.7 |
5.0 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Windows SMB Client Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.1 |
7.1 |
|
|
Windows SMB Server Denial of Service Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
Windows SMB Server Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Windows SMB Server Network Transport Driver (srvnet.sys) Denial of Service Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
Windows Schannel Denial of Service Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.3 |
4.6 |
|
|
Windows Schannel Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
Windows Secure Boot Security Feature Bypass Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
4.4 |
3.9 |
|
|
Windows Secure Kernel Mode Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Critical |
8.2 |
7.1 |
|
|
No |
No |
- |
- |
Critical |
8.2 |
7.1 |
|
|
No |
No |
- |
- |
Critical |
8.2 |
7.1 |
|
|
Windows Secure Socket Tunneling Protocol (SSTP) Denial of Service Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
4.7 |
4.1 |
|
|
Windows Secure Socket Tunneling Protocol (SSTP) Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Secure Socket Tunneling Protocol (SSTP) Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Critical |
9.8 |
8.5 |
|
|
Windows Security Center Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Security Health Service Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Server Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows Services for NFS ONCRPC XDR Driver Denial of Service Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
Windows Services for NFS ONCRPC XDR Driver Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows Services for NFS ONCRPC XDR Driver Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
Windows Services for NFS ONCRPC XDR Driver Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
9.8 |
8.5 |
|
|
No |
No |
- |
- |
Critical |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Critical |
9.8 |
8.5 |
|
|
Windows Setup Files Cleanup Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows Shell Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Shell Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
9.8 |
8.5 |
|
|
Windows Shell Spoofing Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.1 |
7.1 |
|
|
Windows Smart Card Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows Spaceport.sys Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows Spaceport.sys Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
5.7 |
5.0 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
4.7 |
4.1 |
|
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
Windows Spaceport.sys Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
6.8 |
5.9 |
|
|
No |
No |
- |
- |
Important |
6.8 |
5.9 |
|
|
No |
No |
- |
- |
Important |
6.8 |
5.9 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Storage Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows Storage Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
4.3 |
3.8 |
|
|
Windows Storage Management Provider Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows Storage Port Driver Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
4.6 |
4.0 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Windows Storage Spaces Controller Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Storage Spaces Controller Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows TCP/IP Denial of Service Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
Windows TCP/IP Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
Windows TCP/IP Security Feature Bypass Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.5 |
6.5 |
|
|
Windows Task Scheduler Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Windows Text Shaping Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Windows Text Shaping Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.1 |
7.1 |
|
|
Windows URL Moniker Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
Windows URL Moniker Security Feature Bypass Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
4.3 |
3.8 |
|
|
Windows USB Audio Class Driver Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Windows USB Audio Class driver (usbaudio.sys) Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
6.6 |
5.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows USB Driver Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows USB Driver Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Windows USB Hub Driver Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.8 |
5.9 |
|
|
Windows USB Mass Storage Class Driver Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.8 |
5.9 |
|
|
Windows USB Mass Storage Class Driver Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Windows USB Mass Storage Class Driver Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
9.8 |
8.5 |
|
|
Windows USB Video Driver Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Critical |
8.2 |
7.1 |
|
|
Windows Universal Disk Format File System Driver (UDFS) Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.8 |
7.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
7.8 |
|
|
Windows Universal Plug and Play (UPnP) Device Host Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Windows Update Stack Elevation of Privilege Vulnerability |
|||||||
|
No |
Yes |
- |
- |
Important |
7.8 |
7.2 |
|
|
Windows VHD miniport driver Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows VOLSNAP.SYS Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows Virtual Trusted Platform Module Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
7.5 |
6.5 |
|
|
Windows Virtualization-Based Security (VBS) Enclave Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
7.8 |
6.8 |
|
|
Windows Virtualization-Based Security (VBS) Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Critical |
5.5 |
4.8 |
|
|
Windows Volume Manager Extension Driver Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows Volume Manager Extension Driver Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
Windows Web Platform Storage Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows WebClient Service Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows Win32K Security Feature Bypass Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
4.7 |
4.1 |
|
|
Windows Win32k Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
No |
No |
- |
- |
Important |
7.1 |
6.2 |
|
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows Wireless Networking Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Wireless Wide Area Network Service Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
5.5 |
4.8 |
|
|
Windows Work Folder Service Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.0 |
6.1 |
|
|
Windows Work Folder Service Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
Windows Work Folders Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Windows exFAT File System Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.0 |
7.0 |
|
|
Windows iSCSI Denial of Service Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
Windows iSCSI Remote Code Execution Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
No |
No |
- |
- |
Important |
8.8 |
7.7 |
|
|
Windows iSCSI Security Feature Bypass Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
9.8 |
8.5 |
|
|
Windows iSCSI Target Service Denial of Service Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.5 |
5.7 |
|
|
Winsock Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
6.7 |
5.8 |
|
|
Xbox Gaming Services Elevation of Privilege Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
7.8 |
6.8 |
|
|
Xbox Information Disclosure Vulnerability |
|||||||
|
No |
No |
- |
- |
Important |
4.3 |
3.8 |
|
ESSENTIAL MACOS STEALER INFECTION
5.9.26 malware-traffic-analysis Virus
NOTICE:
Zip files are password-protected. Of note, this site has a new password scheme. For the password, see the "about" page of this website.
ASSOCIATED FILES:
2026-09-01-Essential-macOS-Stealer-notes.txt.zip 1.0 kB (996 bytes)
2026-09-01-Essential-macOS-Stealer-infection-Build-POMP.pcap.zip 330.7 kB (330,742 bytes)
2026-09-01-Essential-macOS-Stealer-files.zip 12.3 kB (12,282 bytes)

Shown above: Fake macOS software page.

Shown above: Text from the fake software page pasted into a macOS Terminal
window.

Shown above: Traffic from the infection filtered in Wireshark.

Shown above: Transaction information on the Polygon blockchain address with
C2 server info.
Angry Birds: Toy Ghouls’ new toys
4.9.26 SECURELIST APT
We continue tracking the activity of Toy Ghouls (also known as Bearlyfy, Laboo.boo, and Feral Wolf), a financially motivated group that has been targeting Russian organizations since 2025. The attackers initially relied exclusively on tools pulled from public GitHub repositories along with leaked Babuk and LockBit ransomware builders, later shifting to their own custom ransomware, GenieLocker. In early July 2026, we observed the group using a custom backdoor for the first time.
We identified two versions of this backdoor: one uses the HiveMQ MQTT broker as its C2 server, while the other relies on the Element messenger. Both versions include “bird” in their names:
mqtt-bird-agent 0.1.0 (HiveMQ version)
matrix-bird-agent 0.1.0 (Element version)
This post examines how the backdoor is delivered to target systems, how it establishes persistence, and how it communicates with its C2 server.
Technical details
Delivery
In this campaign, the attackers use Windows Remote Management (WinRM) to deliver the backdoors and their configuration files to compromised systems. The group relies on open-source tools such as Evil-WinRM and WinRM-fs to do this.
Installation
The backdoor can both run within an interactive command-line session and establish persistence as a Windows service, using the --install or install option, depending on the backdoor version. The --service (or service) option is not available by default and is instead used as an argument for the installed Windows service.
Other launch options are listed in the backdoor’s help output:
C:\cplsupport.exe -h
Bird Agent - MQTT server monitor
Usage: cplsupport.exe [OPTIONS]
Options:
-c, --config <CONFIG> Path to config.toml config file
--install Install as a system service
--uninstall Uninstall the system service
--seal Encrypt sensitive config fields in-place using a machine-bound key
-h, --help Print help
-V, --version Print version
HiveMQ version backdoor help output
In the Element version, the backdoor help output looks as follows:
C:\wtass.exe -h
Matrix monitoring agent
Usage: wtass.exe [OPTIONS] [COMMAND]
Commands:
install Register this agent with the Matrix homeserver and panel
uninstall Remove this agent's service and credentials
service Run as a Windows service (internal)
help Print this message or the help of the given subcommand(s)
Options:
-c, --config <CONFIG>
-h, --help Print help
-V, --version Print version
Element version backdoor help output
By default, the backdoor looks for a config.toml configuration file in the directory where the executable was launched, then falls back to %PROGRAMDATA%\SynapseAgent\config.toml (Element version) or %PROGRAMDATA%\cplsupport\config.toml (HiveMQ version). If no configuration file is found in either location, the full path can be specified using the -c (--config) option.
The backdoor accepts both unencrypted configuration files and files with partially encrypted sections. In the first case, once the backdoor is launched, it reads the file and partially encrypts it using the seal() function (the --seal option in the HiveMQ version), applying the ChaCha20-Poly1305 algorithm with a key derived from the value of the HKLM\Software\Microsoft\Cryptography\MachineGuid registry key. This means that after the backdoor’s first run, the configuration file becomes bound to that specific machine. On subsequent runs, the configuration is decrypted automatically. If the input configuration was already partially encrypted, it is likewise decrypted automatically.
If the configuration cannot be decrypted, the backdoor stops running.
Encrypted configuration files look as follows:
Encrypted backdoor configuration file, HiveMQ version
The encrypted portion of the HiveMQ version’s configuration contains the following parameters:
agent_privkey: the agent’s private key
channel_id: the channel identifier used to communicate with the broker
server_pubkey: the server’s public key
Decrypted blob field in the HiveMQ version’s configuration
In the Element version, the configuration file is deleted immediately after the first run, and the relevant parameters are instead written to the HKLM\Software\synapse\Config\SealedConfig registry key. On subsequent runs, the backdoor checks the registry for its configuration first.
Decrypted Element version configuration file, retrieved from the registry
The Element version’s configuration specifies the address of an Element server controlled by the attackers, a room identifier, and an access_token used to access that room. If this parameter is left empty, the backdoor prompts for the password interactively during installation. After successfully creating a session, the backdoor saves the received token to the blob field.
At startup, both backdoor versions send a GET request to http://ip-api.com/json to determine the system’s public IP address and country of origin.
The first version uses the public HiveMQ MQTT broker (broker.hivemq.com) as its C2 server. The free tier of this broker supports up to 100 concurrent connections and up to 10 GB of traffic per month. The attackers set up their own cluster and used it both to collect telemetry from compromised systems and to send commands to the backdoor.
Once a connection is established, the system’s status is sent via a POST request to broker.hivemq.com:8883/[cluster_id]/status. The message format is: {"online":bool,"hostname":"hostname.domain","timestamp":unix_timestamp,"location":{"json"}}.
At intervals defined in the configuration file, system information, such as CPU load and available memory, is sent via a POST request to broker.hivemq.com:8883/[cluster_id]/metrics3. The message format is: {cpu_percent":float,"mem_used_bytes":int,"mem_total_bytes":int,"disk_used_bytes":int,"disk_total_bytes":int,"load_1m":float,"load_5m":float,"load_15m":float,"uptime_secs":int,"hostname":"hostname.domain","timestamp":unix_timestamp}.
The backdoor sends GET requests to broker.hivemq.com:8883/[cluster_id]/cmd/req to retrieve commands from the C2 server. The server responds in the format: {"cmd_id":int,"command":"str","timeout_secs":int}.
Commands are executed via PowerShell.exe in hidden mode, using the -NonInteractive -NoProfile -Command parameters.
Command execution results are sent to the command server at broker.hivemq.com:8883/[cluster_id]/cmd/res in the {"stdout":"str","stderr":"str","exit_code":int,"duration_ms":int} format.
For the second backdoor version, the attackers set up their own Element server running on the Matrix protocol, meet.element[.]tw, as the C2 server. On this server, they created a room used to receive messages containing device information and to send commands for execution on the compromised system. The communication flow is as follows:
Once a connection is successfully established, the backdoor sends an m.bird.status message containing the system’s status. This message format is identical to that used in the HiveMQ version.
At intervals defined in the configuration file, information about the compromised system is sent as an m.bird.metrics message. Field names are slightly different from those in the first version: {cpu_percent_x100":float,"mem_used_bytes":int,"mem_total_bytes":int,"disk_used_bytes":int,"disk_total_bytes":int,"load_1m_x100":float,"load_5m_x100":float,"load_15m_x100":float,"uptime_secs":int,"hostname":"hostname.domain","timestamp":unix_timestamp}.
This version of the backdoor supports two types of commands, distinguished by the start of the received message.
To set a new interval for sending metrics, the attackers send a message beginning with config:set_interval (accepting values from 5 to 3600 seconds). The new value is saved to the HKLM\Software\SynapseAgent\metrics_interval registry key.
Messages containing commands to execute begin with the string cmd:. Based on data extracted from Element’s SQLite databases on the compromised system, we were able to identify the account name the attackers used to send commands: panel-bot.
Received commands are executed via the Windows command line interface.
Command output is sent as an m.bird.cmd_response message. This message format mirrors the one used in the HiveMQ version.
Takeaways
We have been tracking Toy Ghouls’ activity for quite some time. We previously found that the group had expanded its arsenal with a custom ransomware strain, GenieLocker, and we have now discovered that it has also developed a backdoor capable of giving it full control over an infected device. The new tools use unconventional channels to communicate with their C2 server: the HiveMQ MQTT broker and the Matrix-based Element messenger. This shift away from publicly available open-source projects toward custom-built tools suggests that Toy Ghouls is working to make its attacks more sophisticated and to evade detection for longer.
Indicators of compromise
Kaspersky security solution verdicts:
HEUR:Backdoor.Win64.Suptoml.gen
HEUR:Trojan.Script.Zapchast.conf
Backdoor.Win64.Agent.smgdvy
Trojan.Script.Zapchast.abwm
Trojan.Win64.Agent.smgsfo
Trojan.Script.Zapchast.abwo
File names and MD5 hashes:
cplsupport.exe (BFADBEEE63A4F0BF19EC9DEB8FA58F58)
wtass.exe (7916C33688385525078BEE504C90F359)
config.toml
Registry keys:
HKLM\Software\synapse\Config\SealedConfig
HKLM\Software\SynapseAgent\metrics_interval
Service names:
cplsupport (Problem Reports Control Panel)
wtas (Windows Telemetry Aggregator Service)
Domain names:
broker.hivemq.com (a legitimate resource used by cybercriminals)
ip-api.com (a legitimate resource used by cybercriminals)
Honeypot-Omaha and batch.py [Guest Diary]
[This is a Guest Diary by Frank Igbokwe, an ISC intern as part of the SANS.edu BACS program]
Honeypot-Omaha is a DShied Sensor located at the Internet Storm Center (ISC) that is set up as a decoy for the original target and deployed over the internet. It is a flawed and very vulnerable system that was intentionally designed to attract threat actors with malicious intents. I view it as a massive log aggregator that collects data that an analyst like myself can then analyse, hypothesize, synthesize and then generate a cohesive and coherent report.
DShield Sensor uses a collective of tools to track internet threat actors, one of those packaged tools is called “cowrie”. It emulates port twenty-two and twenty-three, which are secure shell and telnet. Automation is at its rise and almost everything has been or would be automated at some point in time. From botnets to password brute force attacks to credentials scraping and gathering of data, we observe more automated activities.
Tools like hashcat and jack the ripper make credential collection easy. So, cowrie waits and listens on the decoy ports set up for DShield Sensor. It exposes these ports to the public facing internet and relays the data to a centralized station (ISC). Which logs every information about that threat actor and its activities. “DShield.org” and the Internet Storm Center—founded by Dr. Johannes Ullrich in November 2000 out of the precursor site Incidents.org—provide valuable threat intelligence.
When a potential threat actor infiltrates the sensor, cowrie records their activities. Questions begin to arise like methods used to access the system, what vulnerability was exploited, did they succeed or fail at their attempts, what commands were used, where it was used, what was exfiltrated. With this valuable intel an analyst can build a time frame of when the activity started and ended. Answers to most of these questions asked would be revealed as we proceed.
The next question is how do I correlate and gather all these data of interest, types, and structure. There are web logs, firewall logs, cowrie logs with credentials and other valuable information. I tried using tools like zeek for data behaviour correlation, carving, and analysis, rwfilter for metadata carving of specific fields of interest and converting to silk then my favorite tool, tcpdump for parsing network traffic packets.
All these tools are excellent tools but they are multiple tools that perform specific functions. I needed one tool that could consolidate all my logs of data, filter out the relevant data of interest and use those filtered consolidated data to answer all the questions asked on my internship template. For example, an analyst may want to get more information about a specific internet address, and all the activities engaged by that address.
An analyst has to have a way to input an internet address or fully qualified domain name (FQDN) and it recursively gathers different data of interest related to that address, by searching and querying different “APIs” application programming interfaces for data.
Then converts the data into a tab separated value format, analyzes, correlates, gathers threat intelligence, common vulnerabilities and exposure (CVE), mitre, exploits, threat score, session id, hash and fingerprints, port numbers, geolocation, internet service and cloud service providers (ISPs or CSP) and a way to mitigate the threat actors activities.
This tool should be able to implement hashing mechanisms using any of the secure algorithms, for example using a combination of symmetric-asymmetric ciphers, and consolidating relevant data across a given directory into one view. Nothing complicated, just a simple script that synthesizes, consolidates data and brings all that into a focused, comprehensive, cohesive functionality and possibly more. Now you see where I am going with this delima.
All data are important but which ones are relevant to solving my internship questions. After a long research, I had an “Aha!” moment, you can call it an epiphany or what I call my “eureka” moment. That's where the idea of a “batch” process was formulated. I use my recently gained knowledge and skills of the python programming language to write a script called “batch.py”.
Batch
is a script based on the python programming language, I wrote to assist me do
most of what I described above. Here is the step by step breakdown of what it
does. It is composed of “Four” integrated phases of the analysis processing
pipeline. The fidelity of “batch.py” is based on the raw logs it parses. For now
the logs must be located in the same directory as batch.py. I use secure copy (scp)
to download my logs located on my amazon web services to a local directory on my
computer.
As a security conscious analyst, persistence security of data should be a
priority. This is the start of “batch”, you can either log in as full admin or
grant access to guests. To use the batch.py program
you start by running a bash script on your local terminal window to generate a
master password, I use a mac. It uses the secure hashing algorithm(SHA-256) to
generate a master and a guest token.You have to generate a master password first
by executing the bash script below.
Start:
Generating master password or guest passcode.

Authentication and verification are used to prevent unauthorized access to
sensitive data. The principle of least privilege (POLP) is a necessary
requirement for accountability, monitoring, and data loss prevention.
Select an option for the authentication process.

If option two is chosen and an analyst does not have a guest passcode, a message will be generated notifying the analyst that they need to have a guest passcode for them to access the program.

Select option 3 to generate a guest passcode and login.

Phase 1
After an analyst authenticates and is verified, the phase one process starts by gathering and feeding relevant data through the analysis pipeline, then converts the .json, .log, .gz, and any other relevant data to a .tsv file format. “TSV” stands for tab separated values.

The gathered intelligence data from querying ip-api.com, cve.org and paloaltonetworks.com are broken down into sections and fields to delineate the processing stages. With the integrated unified analysis pipeline design, batch.py is engineered for efficiency, low latency, and the rapid parsing of large volumes of logs.
Phase 2
Stage: 1
This displays on your screen showing a summary of the top 10 unique internet
addresses that made contact with honeypot_omaha.

Stage: 2
As you can observe on what is displayed on the screen. I only have two cowrie
protocols shown. There are more but on this stage I am focusing on just a few of
the protocols used by cowrie.

Stage: 3
This displays on your screen the top 10 correlation of usernames to their
respective internet address.

Stage: 4
This shows the top 10 correlation of passwords to their respective internet
addresses.

Stage: 5
This displays the top 10 talkers with possible threat intelligence, attempts,
geolocation, and their respective internet service and cloud providers. Not all
top talkers are threat actors or have malicious intents. This requires the know-how
and expertise of trained analysts to dissect and discern relevant data from
noise.

Stage: 6
As an analyst, a long tail analysis of the data of interest will give you an
idea of where to start your analysis. Sometimes threat actors use beaconing and
command and control to relay data back and forth. Check for specific time
intervals.

Stage: 7
Batch aggregates all the data it has parsed and gives a summary of how many
attempts were made by the threat actors to an endpoint.

Phase 3
Generates a summary report and visual pie chart compilation.
Stage: 8
Compilation and summarization of data, using matplotlib to create the pie charts
in a png file format and generating text document reports.

Phase 4
This phase displays an interactive menu an analyst can use to further examine
and analyze data. It comprises six numbered menu points. Let's start with the
first menu.
Stage: 9
An easy navigation menu for an analyst to access detailed information on a given
threat actor's internet address and activities.

Menu 1
Any artifacts found or indication of compromise will be displayed here using the
program "less". Instead of having my data clutter and flood my screen, less
seems like a better option.

Menu 2
This is a cumulation of all the exploits used by the malicious actors. It is a
lot and it is sorted by the highest threat rating score.


Menu 3
Option menu three is used to navigate the pie chart options. An analyst has the
choice of generating an individual chart or both.


It is always good practice to provide error feedback if the program fails to execute seamlessly.

The pie chart is dynamically generated once the pipeline is initiated. An analyst can choose any of the options to initiate the process of populating the pie chart with the data of interest, and displaying it on the monitor. Below is an example of a dynamically generated pie chart with all information.
The pie chart below shows the top talkers, protocols, usernames, and passwords.


Made using matplotlib.
Menu 4
This menu option is a quick console overview of what was found when batch
executed and initiated the unified processing pipeline.

There are over four hundred file artifacts discovered. The data is viewed using the “ less” program, an analyst can use the built-in sort functionality to sort the data.
Menu 5
An analyst can query an internet address or fully qualified domain name and
search for more data related to that internet address. A "honeypot_Omaha_query_reoprt.txt"
is generated.


After some analysis I observed that the threat actor made twenty-eight attempts and it shows a lot of the malicious actors' detailed activities. An analyst can use this consolidated view to analyze the data all in one screen. It displays the behavior analysis, pattern, utc timestamps, a count of how many attempts were made, the threat actors credentials and more.

Attempt number five displays the malicious actor’s secure shell client hash fingerprint: 2ec37a7cc8daf20b10e1ad6221061ca5 showing an established session. Attempt number 6 shows a failed login.

At attempt number eight, the threat actor used a different password. Attempt number nine shows the secure shell version used. An analyst can track session id, there are five recorded sessions made by the threat actor.
A new connection and login were successfully established at attempt number ten and eleven, batch displays the fingerprint and login details

The malicious actor has gained access to the system. I observed multiple commands executed on attempt number thirteen, such as exporting of the “usr/local/sbin”. This is the location that contains the system administration program tools and daemons installed locally by the owner of the system. “uname” and "Busybox” are visible, this threat actor gained and exfiltrated a wealth of information about the compromised system. The threat actor is covering up its activities by using this command “rm -rf filter”. This command recursively deletes any file or folder that is named filter. The rm removes any shell commands used in a Linux operating system, -r stands for recursive, which is used to perform a deep granular deletion of data forcefully. I am going to make an educated guess**—**Basically, the threat actor is probing, gathering data, and cleaning up their tracks.

Connection lost on attempt number fifteen.
The malicious actor is now using a different password as displayed on attempt number sixteen.

A failed attempt was logged on attempt number nineteen and the connection was lost at attempt number twenty. Another attempt to re-establish a connection was successful as observed on attempt number twenty-four.

As an analyst, you are a step behind the threat actor and must follow whatever digital breadcrumbs they leave behind to understand their movements. Every action creates a pattern—often captured by the acronym “RIPLE” (Reconnaissance, Initial exploitation, Persistence-privilege escalation, Lateral movement, and Exfiltration of data). As I often say, if you throw a rock into a pond, it produces a ripple effect.
The relentless, defenseless assault on honeypot_omaha continued, as shown on attempt number twenty-six.

Connection lost again and the threat actor exited as displayed on the screen at attempt number twenty-eight. A summary report of the threat actors’ activities is generated below.

Reflecting back to the original questions at the beginning of the diary. How did the threat actor gain access to the system, what was exfiltrated, and how do I as an analyst go about gathering more data for further investigation?
Recalling from the previous discussions, cowrie is designed to be vulnerable, so the malicious actor was able to guess the username and password.
Summary report on the shell commands executed on honeypot_omaha is generated and displayed on the screen.

The batch.py script performed a detailed query on the application programming interfaces of cve.org, paloaltonetworks.com and ip-api.com to generate and correlate intelligence data related to a suspected system compromise. It displays the threat rating score, status code, associated exploits, attack intent, and mitigation strategies. The targeted endpoints are sorted by their threat rating score and displayed below.

Reconnaissance and script
profiling reveal the behavioral fingerprints of automated malware, botnets, or
exploit payloads when they first gain access to a compromised shell**—in this
case,** captured by honeypot_omaha as a “cowrie.command.input” event. Always
practice persistence defense in depth, principle of least privilege’ and
continuous diagnostics and mitigation.
As an analyst, I was inquisitive about the data and conducted Google research on
the internet service provider called “Pptechnology limited” and the executed
commands. Below is a description of the internet service provider and a
breakdown of what each section of the command does:
PPTECHNOLOGY LIMITED: Often associated with the brand/network name PTechnology)
is a corporate entity and network infrastructure holder that has appeared in
cybersecurity research, threat intelligence reports, and UK corporate registries.
Corporate Profile & UK Registration
Company Status: According
to UK Companies House records, PPTECHNOLOGY LIMITED (Company Number: 12176225)
was incorporated on August 27, 2019, and was officially dissolved on December
23, 2025.
Registered Address: It was registered at a mass-registration virtual office
address in London (35 Firs Avenue)—a location known for hosting thousands of
distinct corporate entities.
Registered Nature of Business: Officially classified under SIC code 96090 (Other
service activities not elsewhere classified).
Threat Intelligence Context
In cybersecurity investigations (such as threat-hunting reports tracking offshore or "bulletproof-style" hosting infrastructure—notably research by firms like Team Cymru examining networks associated with anonymous hosting, ignore-DMCA setups, and malicious campaigns like Jingle Shells), PPTECHNOLOGY LIMITED has surfaced in analyses of proxy infrastructure:
Shell/Paper Companies: Security researchers have identified that shell and dormant UK entities like PPTECHNOLOGY LIMITED are frequently used as corporate facades or administrative holders for IP space and backend infrastructure associated with high-privacy or quasi-anonymous hosting environments.
Fraud Risk Scoring: Due to the nature of the IP blocks assigned to or historically associated with it, security scoring engines (like Scamalytics or VirusTotal) often flag traffic originating from these ranges as carrying higher risk or anonymity traits.
Note: The analysis above was performed by the analyst, using Google.com solely to research the internet service provider and executed commands.
Guildma (Astaroth) malware infection from Brazilian Portuguese email
3.9.2026 SANS
Introduction
On Monday 2026-08-31, I used a link from a malicious Brazilian Portuguese email to infect a Windows host in my lab. This was a Guildma (Astaroth) malware infection.
The link from the email is geofenced for Brazil, meaning that it would only deliver the malware if I checked it from a Brazil-based IP address. Otherwise, it would send a legitimate installer (in this case for Android Studio) and not the malware. Furthermore, my web browser and operating system needed to use Brazilian Portuguese language settings and Brazil regional settings.
The initial downloaded file was a zip archive that contained a Windows shortcut. The shortcut retrieved content from a web server and saved it as an alternate data stream to a file created under the user's AppData\Local\Temp directory. This alternate data stream contained a 64-bit DLL file that doesn't appear to be malicious, but it was used to retrieve and install an AutoIt package for Guildma malware.
Today's diary shares indicators from the activity. Of note, many of the specific indicators like some of the SHA-256 hashes appear to be unique for this particular infection.
Images From the Infection

Shown above: Screenshot
of the email.

Shown above: Malicious
file downloaded from link in the email.

Shown above: Traffic from
the infection filtered in Wireshark.

Shown above: Malware
persistent on the infected Windows host.
Indicators of the Activity
Select headers from the email:
Received: from relatorio01a.colombstracciatella.cfd (unknown [185.254.222.105]) [information removed]; Wed, 26 Aug 2026 22:01:41 +0000 (UTC)
Sender: "Contrato Via Docusing" <contratos_docusing@relatorio01a.colombstracciatella[.]cfd>
Date: Wed, 26 Aug 2026 19:01:16 -0300
Subject: Assine com o Docusing: CONTRATO_ASSINATURA_FINAL.40572684.BPSE.CONTRATOS.DIGITAIS.pdf
Link from the message text:
hxxps[:]//sistema-ekg3h4htc0h0ggdh.canadacentral-01.azurewebsites[.]net/
Downloaded zip archive and extracted Windows shortcut:
SHA-256 hash: cc44782356cb0effc528a7ab22c19ab360a55ebbbe01feb0967031aa191c5869
File size: 1,661 bytes
File name: 868283789726483.zip
File type: Zip archive data, at least v2.0 to extract
SHA-256 hash: 47d2908c4dd7f6f5eb4a8ef4306077b10315c44231f4bacd2bb811b245561911
File size: 1,553 bytes
File name: 868283789726483.lNk
File type: MS Windows shortcut
DLL saved as an alternate data stream during the infection, doesn't appear to be malicious:
SHA-256 hash: a6044786991afdb9d42ceb350943987765a7d0e8537369b2092e3f019c0f63ca
File size: 266,242 bytes
File type: PE32+ executable (DLL) (GUI) x86-64, for MS Windows
File location: C:\Users\[username]\AppData\Local\Temp\n1LUQ7.log:h6JSb
Compiled AutoIt script for the persistent Guildma malware:
SHA-256 hash: f62a958faf0491b2b2803be2ee69b664b58e4a1261f64e8530cdc1a3ff666aa4
File size: 277,874 bytes
File type: Data
File location: C:\Users\Public\Libraries\.cache\PLAX\Beatz.LEDPRO.09662.8729.422.log
Domains the infected Windows host communicated with over HTTPS (TCP port 443):
ekg3h4htc0h0ggdh.canadacentral-01.azurewebsites[.]net
plosancol.aguamammillaria[.]cfd
crironxil.aguasedum[.]cfd
TCP traffic to another domain:
tcp[:]//omzagdmspc.a.pinggy[.]link:21601/
Note: I saw HTTPS traffic to WhatsApp and GitHub domains later during this infection, but those are legitimate domains, so I didn't include them in this write-up. A previous article has noted this campaign abusing GitHub, so I've included the mention here.
Bradley Duncan
brad [at] malware-traffic-analysis.net
First reported in 2025, Fire Ant remained active into 2026. Explore how the threat actor expanded beyond hypervisors into trusted infrastructure, compromising routers, authentication systems, and Linux management hosts to maintain covert access, collect credentials and traffic, and reach connected high-value environments.
First reported in 2025, Fire Ant remained active into 2026, expanding from hypervisor-level compromise into the trusted infrastructure layer that routes, authenticates, connects, and manages high-value environments.
The compromise impacted both the direct and third-party environments. Its trusted infrastructure relationships created potential reachability into connected external environments, including high-value networks and critical infrastructure. Fire Ant appeared to use this trusted position to explore access paths beyond the initially compromised environment. Compromised routers became operational platforms. Fire Ant used router infrastructure for covert connectivity, traffic collection, command-output manipulation, and suppression of logging.
Fire Ant targeted authentication chokepoints. The actor compromised TACACS infrastructure to intercept authentication flows, collect credentials, and weaken confidence in administrative audit trails.
Fire Ant built a resilient access layer. The actor deployed long-lived implants across Linux management infrastructure, including Medusa-related components, custom SSH backdoors, Zabbix-masquerading malware, and packet-triggered backdoors.
Fire Ant manipulated the evidence layer itself. Across routers, TACACS servers, and Linux hosts, the actor modified or bypassed telemetry sources defenders normally rely on, reinforcing the need to validate logs against memory, disk, network, authentication, and configuration evidence.
Fire Ant, first reported in 2025, remained active in 2026 and expanded its operations beyond hypervisors into the trusted infrastructure that routes traffic, authenticates administrators, manages access, and records activity. The main finding is that the actor was no longer targeting only individual systems, it was targeting the infrastructure layer that controls how entire environments connect and operate both within and across organizational boundaries.
This created a “target behind the target” risk. By compromising routers, authentication systems, and Linux management hosts, Fire Ant gained strategic positions from which it could collect traffic and credentials, maintain covert access, and explore paths toward connected high-value environments, including critical infrastructure. The compromise therefore had implications beyond the systems directly affected.
The actor also manipulated the evidence sources defenders depend on. It suppressed router logging, altered command output, captured administrative credentials, tampered with host logs, and deployed multiple persistent backdoors. As a result, investigators could not rely on any single source of telemetry to accurately reconstruct the activity.
The key implication for organizations is that routers, authentication servers, hypervisors, jump hosts, and management appliances must be treated as first-class security and forensic assets. These systems require the same level of monitoring, hardening, and incident-response readiness as traditional endpoints and servers. When trusted infrastructure is compromised, an attacker can gain both a path into connected environments and the ability to obscure how that access was used.
Fire Ant’s earlier activity showed that hypervisors can be more than platforms that host workloads. In the hands of an advanced actor, they can become privileged vantage points from which to reach guest systems, bypass segmentation and operate under the line of sight of many endpoint controls.
The 2026 activity expands this same principle to network and management infrastructure. The actor did not only pursue servers and workstations. It targeted systems that other systems depend on: edge routers, TACACS servers, Linux jump hosts and virtualized management servers. These are the systems that decide who can reach what, which credentials are trusted and which logs exist after the fact.
This is the continuity from 2025 to 2026. The technology changed, but the strategy remained consistent: operate from layers that are trusted, privileged and difficult to inspect.
Highly interconnected environments are strategically valuable because they sit between systems and network zones. They provide routing, managed connectivity, authentication paths, and operational access across connected networks. A compromised infrastructure layer can become a bridge to other environments.
This is the key difference from prior Fire Ant activity. The actor appeared to use the compromised environment as an infrastructure platform from which it could explore reachability into connected high-value networks, including critical infrastructure. In this model, routers, TACACS servers and jump hosts are not peripheral assets. They are the path to the target behind the target.
For defenders, this distinction matters. If the investigation focuses only on the initially compromised systems, it may miss the broader operational objective. If the investigation treats the network and management infrastructure as a trusted connectivity layer, the scope expands to connected routes, administrative paths, shared authentication infrastructure and the systems that control segmentation.

Figure 1: The compromised environment as a bridge into connected targets.
Fire Ant’s activity demonstrated that edge routers should not be treated as passive network infrastructure. In this intrusion, the actor gained access to Cisco IOS XR routers and turned them into operational platforms capable of supporting stealth, persistence, and potential reach into connected environments.
The investigation began with an anomaly that appeared, at first, to be a configuration inconsistency: a tunnel interface became operational on a Cisco IOS XR router even though no corresponding running configuration or commit history could explain its creation. The interface was associated with a specific VRF and used GRE encapsulation, but standard configuration review did not provide a reliable explanation for how it appeared. This discrepancy became a key investigative lead because it suggested that the device’s operational state could no longer be trusted to match the configuration and audit records visible to administrators.
Fire Ant’s router compromise was not built around generic Linux tooling. The malware recovered from the compromised Cisco IOS XR environment was purpose-built for the router control plane, with components that interacted directly with IOS XR logging, command execution, routing, VRF resolution, AAA, and Telnet-management functions. This distinction is important: Fire Ant was not simply running malware on a Linux-based appliance; it was modifying the systems that make the router manageable and trustworthy.
The toolkit included a boot-themed persistence script on /etc/rc.d/init.d/grub-rommon masquerading as a legitimate service.

Figure 2: Masqueraded grub-common service used to monitor and launch the acpid implant. This script monitored and launched the acpid implant from /usr/bin/acpid, using an hourly schedule that started the implant during odd-numbered hours and stopped it during even-numbered hours. The design suggests an attempt to maintain access while reducing continuous process visibility during routine inspection.


Figure 3: The persistence script starts acpid only during odd-numbered hours and stops it during The acpid component embedded a modified IOS XR syslog library. In the modified evsyslog flow, log delivery was routed through a custom wrapper that checked for the string “Health” before calling mq_send. When the condition was not met, the wrapper returned a success-like value without forwarding the message, indicating selective manipulation of router log delivery.


Figure 4: Modified IOS XR syslog flow in acpid: log delivery is routed through sub_7000, which conditionally forwards messages to mg_send based on the presence of “Health”. The acpid component also contained shell-related indicators, including references to pseudo-terminal paths, interactive connection banners, escape-sequence handling, and a command to unset shell-history environment variables. It indicates that acpid likely supported interactive access or shell staging in addition to its telemetry-manipulation role.


Taken together, these components show that Fire Ant treated routers as operational platforms. The actor built capabilities for persistence, outbound communication, syslog suppression, and command-output manipulation. In a highly interconnected environment, this level of router control is strategically significant: a compromised edge router can become a vantage point for covert connectivity, traffic observation, and access to connected networks, including critical infrastructure environments that rely on trusted routing and management paths.
The tunnel anomaly also shifted the investigation from the compromised router itself to the infrastructure it appeared to connect with. Once Fire Ant demonstrated the ability to manipulate the router’s configuration view, suppress telemetry, and potentially conceal operational state, the key question was no longer only how the tunnel was created, but where it led and what role the other side played in the operation. Tracing the far end of the GRE tunnel exposed another part of the actor’s infrastructure: a legacy Linux system.
Activity on the Linux system showed that the GRE tunnel was not only an anomalous configuration artifact; it was also an operational path. From this host, Fire Ant conducted repeated connection attempts and port probing toward connected high-value environments, including systems associated with critical infrastructure. The observed activity included attempts against common administrative and service ports such as SSH, HTTP/HTTPS, SMB/RPC-related ports and RDP. This indicates that the actor used the tunnel to extend reach beyond the compromised router and into environments reachable through the compromised network infrastructure.

Sygnia tracks this Zabbix-masquerading implant as BridgeAgent, reflecting its role on the GRE-connected Linux host as a bridge for actor-controlled access into connected environments.
BridgeAgent is configured for persistence through a zabbix_agent.service systemd unit, set to run as root with automatic restart behavior. Once executed, BridgeAgent changed its apparent command line to resemble /usr/bin/gnome-shell, loaded encrypted configuration from /opt/.ICEauthority, and performed periodic HTTPS polling to retrieve controller-supplied configuration.






After establishing access to router infrastructure, Fire Ant used the network layer as an intelligence source. The actor was observed capturing traffic from multiple Cisco routers and uploading the resulting PCAP files to external FTP infrastructure. This behavior shifts the router’s role from a transit device to a collection platform. once the actor controlled the router, the device became a vantage point for observing traffic moving through trusted network paths.

Router-based PCAP collection is especially valuable for infrastructure-focused actors. Packet captures from routers can expose internal topology, management connections, authentication flows, routing relationships, and traffic patterns between connected environments. Unlike endpoint collection, which gives visibility into a single host, router collection can provide a broader view of how systems, administrators, and connected networks interact.
The timing and preparation of the external FTP infrastructure also stood out. One of the FTP services used for the uploads appeared to have been installed on the same day the router PCAP upload activity occurred, suggesting that the actor prepared external collection infrastructure close to the operational window.
Additional router commands observed around the same administrative activity included access to command-history-related paths and traceroute activity toward unusual external domains. The pattern is consistent with an actor using routers for both collection and network reconnaissance.
This activity reinforces one of the core observations from the investigation: when a threat actor controls routers, they do not only gain reach. They gain perspective. Fire Ant used network infrastructure to observe the environment from the inside, collecting information that could support lateral movement, credential targeting, and cross-network access planning.
Fire Ant’s activity extended beyond the routers themselves into the systems used to authenticate and record administrative access to them. This is a critical distinction: the actor was not only abusing valid credentials but also targeting the infrastructure responsible for validating those credentials and preserving the audit trail.
On the TACACS server, investigators identified a VMCI-socket-based backdoor deployed under /var/tmp/audit. The backdoor supported communication over VMware VSOCK/VMCI interfaces, providing an access path that would not necessarily appear as a normal network login to the guest operating system. This finding connected the TACACS compromise back to Fire Ant’s broader pattern of abusing virtualization-adjacent access paths.

The investigation also identified a malicious binary, /usr/sbin/acppid. Sygnia tracks this TACACS credential-collection toolset as TacTap. TacTap should be understood as a multi-component mechanism rather than a single binary: /usr/sbin/acppid acted as the injector and collection process, while /lib/libseconfd.so operated inside the tac_plus process. Together, the components enabled library injection, accepted-session interception, Unix-socket file-descriptor handoff through /var/run/acpid.lock, and creation of the XOR-obfuscated credential artifact at /var/log/.tacplus.acct
Reverse engineering of acppid showed that the binary was designed to maintain a malicious shared object inside the TACACS daemon. The original IDA view shows that acppid retrieves optional runtime configuration from the TARGET_PROG and SO_PATH environment variables. If those values are not provided, it defaults to targeting the tac_plus process and using /lib/libseconfd.so as the shared object path.


The injected library, libseconfd.so, was designed to operate inside the TACACS process. Reverse engineering showed that it hooked accept and accept4, placing the implant inside the TACACS session-handling path. This allowed the malicious code to interact with newly accepted TACACS client connections from within the service process itself.
The hook then forwarded accepted connection file descriptors to acppid through a local UNIX socket at /var/run/acpid.lock, using sendmsg-style file-descriptor passing. This design allowed one malicious component inside the TACACS process to hand live connection handles to another process, enabling the actor to observe or process TACACS session material from within the authentication flow.

The operational result of this access was visible in the recovered credential artifact. Investigators identified an encrypted file at /var/log/.tacplus.acct containing TACACS-related credential material. The file was encoded using a single-byte XOR scheme, indicating that the actor attempted to lightly obfuscate the harvested data while keeping it simple to recover operationally. This artifact connects the injection and session-handoff mechanism to credential collection from the authentication layer.

The key choice is notable because Mandiant previously documented UNC3886 TACACS credential-collection tooling in which captured credential records were also XORed with 0xEF before being written to a credential log file. In this case, however, the more significant finding is the collection mechanism itself: Fire Ant used acppid to inject libseconfd.so into the running tac_plus process, intercept accepted TACACS sessions, pass connection file descriptors back through /var/run/acpid.lock, and write the resulting credential artifact to /var/log/.tacplus.acct. To our knowledge, this specific tac_plus library-injection technique has not been publicly described before, making it a notable evolution of Fire Ant’s TACACS-focused credential collection tradecraft.

This technique is more significant than ordinary credential theft. TACACS servers sit at an administrative chokepoint: they authenticate users, authorize commands, and record activity across network devices. By compromising this layer, Fire Ant positioned itself close to the trust boundary between administrators and infrastructure. The actor could potentially harvest credentials as they were used, observe administrative activity, and create ambiguity between legitimate account use and malicious activity.
The lesson is clear: when the authentication layer is compromised, defenders can no longer ask only “which account performed the action? They must also ask whether the system recording that action can still be trusted.
Fire Ant did not rely on a single foothold. Across Linux management infrastructure, the actor built a durable access layer using Medusa-rootkit, custom SSH backdoors, masqueraded binaries, credential capture, and host-level configuration changes. The objective was not only to compromise Linux hosts, but to convert them into reusable operational infrastructure.
A key feature of this access layer was its duration. Several Linux access components were deployed in 2025 and remained available into 2026, when Fire Ant was later observed using them for hands-on activity. This shows that the actor treated Linux management hosts as long-lived staging and access nodes, not temporary footholds.
The long-lived nature of this access layer was visible in the Linux bodyfile timeline. Several Medusa-rootkit-related and custom SSH backdoor artifacts were created in 2025, including files under /usr/lib/locate and binaries such as /usr/sbin/cupsdd and /usr/sbin/smartdd. These artifacts remained relevant into 2026, when Fire Ant later launched hands-on activity through the same access layer

The names cupsdd and smartdd appear designed to blend in with legitimate Linux service names: cupsd, the CUPS printing daemon, and smartd, the smartmontools storage-health daemon.
One example of this reuse was the custom SSH backdoor /usr/sbin/cupsdd. The process tree below reflects 2026 operator activity launched through the prepositioned access layer, rather than initial deployment. Through cupsdd, Fire Ant staged and executed additional tooling from /var/tmp, including client and se.py, to support reverse-shell and tunneling activity. Because this access path operated outside the normal SSH service flow, it likely reduced the forensic footprint expected from a conventional SSH session.

The file /var/log/remote.txt contained harvested SSH credentials from user sessions, providing the actor with a credential-based fallback alongside its implants. This meant that even if an implant was removed or a backdoor was discovered, the actor may still have retained reusable credentials for future access.

The actor also used process masquerading to make malicious tooling appear legitimate. Fire Ant staged a binary named /var/tmp/ping, renamed it to resemble the endpoint security software, SentinelOne, moved it into a directory associated with the security agent, modified timestamps to match legitimate SentinelOne files, and executed it from that trusted-looking path. In another case, the same style of masquerading was observed under a Cybereason-like path.
Even after the executable was removed from disk, the process remained active in memory. This demonstrates how Fire Ant combined trusted naming, timestamp manipulation, and deleted-but-running execution to hinder defender analysis and reduce the value of disk-only triage.


Analysis showed that the binary initially staged as /var/tmp/ping and later disguised under an endpoint-security path was not a simple reverse-shell launcher. Instead, it was a packet-triggered backdoor that inspected raw network traffic for embedded activation markers before establishing operator access.
The binary showed strong functional and code-level overlap with REPTILE-style tooling publicly associated with UNC3886. Similar to REPTILE, it created a raw Layer-2 packet socket, parsed received packets directly, and searched for magic strings before activating. Notably, the sample reused the “hpaVAj2FJ“ kill marker, which has been publicly documented as a REPTILE kill marker. However, the sample was not identical to the previously reported REPTILE implementation: its primary activation marker was “sxcdewqaz!@#” rather than “mznCvqSBo”, and its packet-decoding logic differed from the date-derived XOR routine described in earlier reporting.
The ping binary also showed operational linkage to the earlier se.py activity through the same magic string, “sxcdewqaz!@#”, which was observed in the actor’s connect-back workflow. This suggests that the actor reused a common activation or session-control marker across multiple access components, while adapting the underlying implementation and filenames.
Analysis showed that the malware is a raw packet triggered remote-access controller, that listens on the network interface for TCP packets destined for ports 443, 541, 8443, or 10443, and UDP packets sent from source port 40443 and destination port 500. The malware looks for network packets with two magic strings within the packet.
sxcdewqaz!@# -> Start of packet
hpaVAj2FJ-> End of packet/kill marker of the listener child process

The code below shows that the implant monitored raw IPv4 Ethernet traffic and accepted activation data through:
TCP destination ports 443, 541, 8443, and 10443
UDP source port 40443 to destination
port 500
0x9DFB is decimal 40443

A second magic string, ;7(Zu9YTsA7qQ#vw, appeared to mark command completion, file-transfer completion, or control-session termination.

The malware creates a PTY pair; the master side is for controlling process to send and receive data while an interactive shell is attached to the slave side. By setting the HISTFILE value to null, the bash history logging is disabled. Hence, the commands executed by the threat actor could not be seen from the .bash_history file. However, analysts can rely on other log sources such as journal log and EDR telemetry.

The malware also handled terminal settings from the remote peer, including terminal type and window dimensions. This allowed applications launched inside the remote shell to behave as though they were connected to an operator-controlled terminal.

Fire Ant reconfigured the configurations of the compromised Linux management hosts so that they could sustain and relay access rather than simply running an isolated malware. The actor weakened or disabled SELinux, modified iptables rules governing SSH, redirected selected inbound connections from port 22 to port 443, and enabled IPv4 forwarding. These changes turned the Linux management hosts into covert access and tunneling nodes capable of receiving traffic on an alternative port and forwarding it onward into the environment.

This design provided Fire Ant with an independent fallback channel that did not depend on the host’s legitimate SSH service or a continuously listening application port. The process could remain dormant until a valid trigger arrived, while support for ICMP, TCP, and UDP gave the actor several possible paths through network controls. Combined with masquerading as legitimate files, timestamp manipulation, deleted-but-running execution, cupsdd, Medusa-related persistence, and reverse-tunneling tools, the implant strengthened Fire Ant’s layered access architecture: removing one binary or closing one service would not necessarily eliminate the actor’s ability to return.
Across the observed activity, Fire Ant repeatedly targeted the reliability of telemetry itself. The actor did not just seek to remain unseen. It modified, bypassed or removed the systems defenders normally use to reconstruct an intrusion.
On network devices, the actor manipulated the evidence layer by hiding logs, hiding commit activity, suppressing AAA requests, suppressing SNMP traps and filtering command output. On Linux systems, the actor deleted files after execution, left processes running from deleted paths, disabled SELinux, tampered with logs and modified firewall rules. On access appliances and management paths, incomplete command and authentication telemetry created ambiguity around how specific SSH sessions were established.
The result is a fundamental investigative problem: the environment may contain evidence, but the evidence sources may no longer be fully reliable. For this class of actor, defenders cannot simply collect logs and assume they represent ground truth. They must validate logs against memory, disk, network telemetry, authentication records, configuration state, and independent external observations.
Fire Ant anti-forensic activity on the Linux management hosts was selective. The actor replaced the Cisco router’s IP address with an internal IP address within three authentication artifacts, /var/log/wtmp, /var/log/utmp and /var/log/btmp.



Fire Ant’s activity should be understood in the broader context of infrastructure-focused espionage tradecraft. Public reporting from Mandiant and Google Cloud describes UNC3886 as a China-nexus espionage cluster with a sustained focus on virtualization platforms, edge devices and network infrastructure. Sygnia assesses that Fire Ant activity strongly overlaps with this public reporting.
The overlap is strongest at the level of durable behavior. Public reporting has described VMCI-based backdoors, TACACS credential theft, Medusa-rootkit usage, custom SSH access, and router-focused operations. Sygnia’s 2026 observations contain the same operational themes: virtualization-adjacent access, credential capture from authentication infrastructure, Linux rootkits, custom SSH backdoors, router compromise, and deliberate telemetry suppression.
The differences are also important. Several filenames, paths and deployment details differ from public reporting. This should not be treated as a contradiction. For mature actors, atomic indicators often change after exposure, while the operating model remains stable. In this case, the stronger correlation comes from how the actor uses infrastructure, not from whether every path or filename matches a previous report.
The new intelligence value from Sygnia’s observations extends the model into a highly interconnected environment where routers, TACACS servers and Linux management hosts were used as part of a broader access and collection layer. This reinforces the view that Fire Ant/UNC3886-like operations are not endpoint-centric campaigns. They are infrastructure-control-plane campaigns.
From a threat intelligence perspective, this also clarifies the likely objective behind the activity. In a highly interconnected environment, routers, TACACS servers, virtualization platforms, and Linux management hosts are not only internal systems; they are part of the trusted infrastructure layer that connects, authenticates, and manages access across connected networks. Compromising this layer can provide an actor with more than just persistence inside the immediate victim. It can create a bridge toward other high-value environments, including critical infrastructure that depends on trusted routing, authentication and management relationships.
This reinforces the “target behind the target” concept introduced earlier in this report. Fire Ant’s interest in the compromised organization should be understood not only as an attempt to compromise a single environment, but as an effort to control infrastructure that may enable visibility, collection, and potential access beyond the immediate victim. The strategic value lies in the trust relationships the organization maintains with connected environments.
The findings can be summarized as a four-part operating model. Fire Ant first seeks control over infrastructure systems, then uses those systems to collect intelligence and credentials, builds durable access, and conceals activity by manipulating the evidence layer.
This model is useful because it moves defenders beyond isolated IOCs. A single filename may change. A path may vary. A hash may disappear after remediation. The actor’s operational requirements, however, remain consistent: reach privileged infrastructure, understand routes and trust relationships, harvest credentials, maintain covert access, and weaken the reliability of telemetry.
|
Phase |
What Fire Ant does |
Defender implication |
|
Control |
Compromises routers, hypervisors, TACACS servers, jump hosts and access appliances. |
Scope must include infrastructure that controls reachability, not only business workloads. |
|
Collect |
Captures traffic, extracts credentials and enumerates routes, users, histories and access paths. |
Collection may look like administration or troubleshooting unless correlated across systems. |
|
Build access |
Deploys rootkits, custom SSH, masqueraded binaries, VMCI backdoors and scheduled persistence. |
Remediation must assume multiple access paths and credential reuse. |
|
Conceal |
Suppresses logs, AAA, SNMP, command output, process artifacts and file evidence. |
Investigations must validate telemetry through independent evidence sources. |
Figure 35: Fire Ant operating model and defender implications.
Fire Ant’s recent activity shows that mature espionage actors are no longer focused only on endpoints, servers, or cloud workloads. They are increasingly targeting the infrastructure that sits between environments: routers, hypervisors, TACACS servers, access appliances, Linux management hosts, and the systems that create trust, reachability, and visibility.
In this campaign, the compromised environment was not only a victim. By compromising infrastructure that routes traffic, authenticates administrators, manages access, and records activity, Fire Ant turned the environment into a potential access path toward connected high-value networks, including critical infrastructure. This position allowed the actor to explore reachability beyond the initially compromised environment while also weakening the evidence sources defenders rely on to understand what happened.
The central lesson is that defenders must protect more than the systems that store sensitive data. They must protect the infrastructure that makes other systems reachable, trusted, and observable. When that layer is compromised, the impact extends beyond a single organization: the actor may gain a vantage point for collection, a path toward connected targets, and the ability to make trusted infrastructure tell an incomplete story.
Hunting Fire Ant requires defenders to prioritize behaviors and asset roles over atomic indicators. The most important question is not simply whether a known file exists. It is whether infrastructure systems are exhibiting behavior consistent with control-plane abuse, credential capture, collection or evidence manipulation.
The following hunting guidance is organized around the systems most relevant to the actor’s operating model.
|
Asset class |
High-signal hunting leads |
|
Network devices |
• Unexpected GRE or
tunnel interfaces |
|
TACACS / AAA servers |
• Tac_plus process
injection |
|
Linux jump hosts and management servers |
• Selinux disabling |
|
Security-agent masquerading |
• Unexpected binaries
under security-agent directories |
|
Tunneling and scanning activity |
• Repeated /var/log/secure
entries containing sshd: error: connect_to … port … failed |
|
Linux log and login-record tampering |
• Use of utmpdump against
/var/log/wtmp, /var/log/utmp, or /var/log/btmp |
Figure 36: Fire Ant threat hunting and detection opportunities
The following indicators are selected for defensive use and have been sanitized to remove victim-specific identifiers. Organizations should treat them as starting points for hunting rather than as complete detection logic.
|
filename |
SHA1 |
Role/Description |
|
/bin/atd |
C164BFC953C66E58B11FC280E69FD43B8F255839 |
Custom SSH backdoor |
|
/bin/gdm |
— |
Medusa-rootkit-related component |
|
/usr/sbin/cupsdd |
1aa6ab2006b5d9199aa87bb0bbd995aec698ac4f |
Custom SSH backdoor. |
|
/usr/sbin/smartdd |
c164bfc953c66e58b11fc280e69fd43b8f255839 |
Medusa rootkit binary. |
|
/opt/cybereason/sensor/bin/cybereason-agent/cybereason-agent |
— |
REPTILE like binary renamed to masquerade as Cybereason agent. |
|
/opt/sentinelone/bin/sentinel-agent/sentinel-agent |
— |
REPTILE like binary renamed to masquerade as SentinelOne agent. |
|
/usr/lib/locate |
— |
Medusa rootkit working directory. |
|
/usr/lib/locate/.backup_ld.so |
— |
Medusa rootkit-related file. |
|
/usr/lib/locate/.l |
— |
Medusa rootkit-related file. |
|
/usr/lib/locate/.pd |
— |
Medusa rootkit-related file. |
|
/usr/lib/locate/.pts |
— |
Medusa rootkit-related file. |
|
/usr/lib/locate/boot.sh |
— |
Cusotm SSH backdoor and Medusa-rootkit startup script |
|
/usr/lib/locate/libdl.so |
— |
Hijacked shared object associated with Medusa rootkit. |
|
/usr/lib/locate/local.txt |
— |
Medusa rootkit-related file. |
|
/var/log/remote.txt |
— |
Credential log associated with Medusa-rootkit activity. |
|
/usr/sbin/acppid |
36005f5e4398a1c62a2a9271eddfcc1b44b1ad00 |
TacTap -Injector targeting tac_plus; injects /lib/libseconfd.so and listens on /var/run/acpid.lock. |
|
/lib/libseconfd.so |
955cd45a2f6f226a2fdf44b329af1c8dde90cb38 |
TacTap – Injected TACACS library loaded into tac_plus; intercepts accepted TACACS sessions and sends descriptors to /var/run/acpid.lock. |
|
/var/log/.tacplus.acct |
— |
TacTap – XOR-obfuscated TACACS credential artifact |
|
/var/run/acpid.lock |
— |
TacTap – Unix socket used by acppid to receive accepted TACACS connection file descriptors. |
|
/var/tmp/.bashrc |
— |
Threat actor shell initialization file used with bash rcfile execution. |
|
/var/tmp/audit |
13f0c2a598e3aa63856c032a96b110aed963f0e8 |
VMCI/VSOCK-based backdoor providing shell access through virtualization-adjacent channel. |
|
/var/tmp/esv3X |
— |
Archive |
|
/var/tmp/hourglass-cn |
— |
Threat actor-run script. |
|
/var/tmp/ping |
5ba1242050b5b447052b210788a5a25593d6987d |
REPTILE like binary later renamed to masquerade as security agent processes. |
|
/var/tmp/sync |
7dab017f14628345d47bd4eb69cc49224f3054a7 |
Tineyshell |
|
/var/tmp/tacacs.pcap |
— |
TACACS packet capture artifact created by Fire Ant |
|
/var/tmp/ttt.tar |
— |
Threat actor-created archive. |
|
/var/tmp/u6.py |
— |
Threat actor-created Python script. |
|
a.zip |
— |
Threat actor-created archive. |
|
cli.tar |
— |
Threat actor-created archive. |
|
client |
— |
Malicious client component executed by the threat actor. |
|
se.py |
— |
Threat actor script used for reverse connection / pivoting activity. |
|
ttt.zip.enc |
— |
Threat actor-created archive. |
|
/usr/bin/acpid |
be6b27f429324a4af05a310d8ec9635e37c68a94 |
IOS XR implant |
|
/pkg/bin/dhcpd_show_issu_status |
1682b652a15bde732489f22809b0b7594c228fd3 |
IOS XR implant |
|
/pkg/bin/hd |
b149fa3a34bd585e7a674a4fd9538437bd06f514 |
IOS XR implant |
|
/etc/rc.d/init.d/grub-rommon |
6ef7d2985edf743ebff413a9298a127e9475d72f |
Masqueraded startup script used for persistence |
rule FIREANT_BridgeAgent_Backdoor
{
meta:
description = "Detects Fire Ant BridgeAgent Linux backdoor"
author = "Sygnia"
sha256 = "110e6fb23be00d2ed251a445ee5b65aadf23b48b8db7419900d64539ad90c5a3"
strings:
$s1 = "[+] ########## GetRemoteCfg ##########" ascii
$s2 = "[+] ########## ParseJson ##########" ascii
$s3 = "[+] reverse_shell..." ascii
$s4 = "If you want me to fake your argv, you need to call the program with a longer name." ascii
$s5 = "/message/" ascii
$s6 = "thread: running timeout" ascii
$s7 = "fMDJLBukHuXgtFsCW68o5Zs1qGf" ascii
$s8 = "2y7b4BSVukszyZz2vuZMppaA4" ascii
$aes_key = { 07 FA AA 79 67 F1 3F 26 22 8F 5E 9A C9 0B F1 54 }
condition:
uint32(0) == 0x464C457F and
5 of ($s*) and
$aes_key
}
rule FIREANT_BridgeAgent_Systemd_Unit
{
meta:
description = "Detects the companion systemd service from the analyzed sample"
author = "Sygnia analysis"
sha256 = "251c7a2684542c29ae2c1e1282b780163bf9f844179ef0759094b2b7e2f62f0f"
strings:
$a = "Description=Service for zabbix hosted on PVE" ascii
$b = "Type=forking" ascii
$c = "ExecStart=/usr/sbin/zabbix_agent 60" ascii
$d = "Restart=always" ascii
$e = "User=root" ascii
condition:
all of them
}
rule FIREANT_TACTAP_LIBSECONFD_1 {
meta:
author = "Sygnia"
description = "Detects TacTap injected TACACS library component"
family = "TacTap"
component = "libseconfd.so"
sha1 = "955cd45a2f6f226a2fdf44b329af1c8dde90cb38"
strings:
$lib_name = "libseconfd.so" ascii
$old_accept = "old_accept" ascii
$old_accept4 = "old_accept4" ascii
$lib_main = "_lib_main" ascii
$accept_filter = "accept_filter" ascii
$accept4_filter = "accept4_filter" ascii
$plthook1 = "plthook_open_by_address" ascii
$plthook2 = "plthook_replace" ascii
$sendmsg = "sendmsg" ascii
$proc_maps = "/proc/self/maps" ascii
$acpid_lock_stack = {
48 BE 2F 76 61 72 2F 72 75 6E
48 89 30
48 B9 2F 61 63 70 69 64 2E 6C
48 89 48 08
C7 40 10 6F 63 6B 00
}
condition:
uint32(0) == 0x464c457f and
uint8(4) == 2 and
uint8(5) == 1 and
uint16(16) == 3 and
uint16(18) == 0x3e and
filesize < 64KB and
all of them
}
rule FIREANT_TACTAP_ACPPID_1 {
meta:
author = "Sygnia"
description = "Detects TacTap acppid TACACS injector component"
family = "TacTap"
component = "acppid"
sha1 = "36005f5e4398a1c62a2a9271eddfcc1b44b1ad00"
strings:
$target_prog = "TARGET_PROG" ascii
$so_path_env = "SO_PATH" ascii
$target_proc = "tac_plus" ascii
$so_path = "/lib/libseconfd.so" ascii
$socket_path = "/var/run/acpid.lock" ascii
$proc_maps = "/proc/%s/maps" ascii
$proc_comm = "/proc/%s/comm" ascii
$dlopen = "__libc_dlopen_mode" ascii
$attach_err = "waitpid error while attaching: %s" ascii
condition:
uint32(0) == 0x464c457f and
uint8(4) == 2 and
uint8(5) == 1 and
uint16(16) == 2 and
uint16(18) == 0x3e and
all of them and
@target_prog < @so_path_env and
@so_path_env < @target_proc and
@target_proc < @so_path and
(@so_path - @target_prog) < 0x100
}
1.9.26 SECURELIST Virus
While monitoring Mirage Kitten activity, we uncovered a previously undocumented malware family that we dubbed NodeRabbit. We identified the first sample on a system in Afghanistan. Further threat hunting revealed two additional, more advanced, variants: one on a system in Egypt and another on a system in Ethiopia.
NodeRabbit is a cross-platform remote access trojan (RAT) built with Node.js. It targets Windows, Linux, and macOS. Its operators deliver it through spear-phishing messages on LinkedIn and other job search platforms that contain trojanized coding challenge archives.
During the same investigation, we discovered another previously undocumented malware family that we dubbed PollCat. Like NodeRabbit, PollCat is a cross-platform RAT, but it is written in obfuscated JavaScript also distributed through trojanized coding challenge archives.
Mirage Kitten has historically relied on native malware written in languages such as C, C++, and Go, often deploying it through DLL search-order hijacking. NodeRabbit and PollCat represent the first publicly documented use of Node.js- and JavaScript-based malware by this APT group.
Kaspersky’s products detect this threat as Trojan.JS.MirageKitten.*
Background
During recent threat research, we detected suspicious activity on a system in Afghanistan. We traced it to an archive containing a software development project that the user may have received during a job application process. The archive purported to contain a coding challenge for candidates applying for an engineering role.
The archive, Front-Technical-Challenge.zip (MD5: 1EA83E4E4592B01E4ACAB63EB867BEE5), was hosted in an Amazon S3 bucket at: https://oracle-challenge.s3[.]us-east-1.amazonaws[.]com/Front-Technical-Challenge.zip
It contained TaskFlow, an app for software engineering assessment built with Express, React, and Vite. The accompanying README instructed the candidate to review the application and fix defects in its frontend. It also claimed that server.js was bug-free and should not be modified, conveniently directing attention away from the only application source file the attackers had altered.
The README also imposed a three-hour time limit and prohibited the use of AI assistants. Notably, an AI code-review assistant tasked with auditing the project would likely have flagged the suspicious first-line import of an unknown npm package and warned the targeted developer that the project was trojanized.
The first line of server.js imported a trojanized npm package named colorized_terminal, version 2.1.0. The attackers bundled the package directly in the challenge task archive’s node_modules directory rather than publishing it to the npm registry. When imported, the package silently launched an implant from node_modules/.cache/.320697f1/index.js as a detached background process.
Retrospective threat hunting across our telemetry revealed the broader scope of the campaign. We identified three NodeRabbit variants with a shared code lineage; each was recovered from a system in a different country. The operators delivered the variants through similarly themed coding challenges and used two trojanized packages, colorized_terminal and pretty-log, both pinned to version 2.1.0.
The campaign also delivered PollCat, a second RAT with a substantially different structure, through a separate coding challenge lure. We’ll analyze PollCat later in this research.
Initial access
The infection chain begins with fake recruiter accounts contacting prospective targets on a job search platform. According to a publicly cited source, a threat actor posing as a talent acquisition specialist at a major technology company contacted a software engineer and advertised a job opening, inviting the target to complete a technical assessment.
The target received a link to a coding challenge hosted on Amazon S3 and was pressured to download and run the project immediately. This public post matches the delivery chain we reconstructed from our telemetry: recruiter outreach on a job search platform, a coding challenge presented as a technical assessment, and a trojanized project archive hosted on legitimate cloud infrastructure.
NodeRabbit RAT: the first variant
We discovered the first NodeRabbit variant on a system in Afghanistan. The malware was concealed within the TaskFlow assessment at node_modules/.cache/.320697f1/index.js and executed by the trojanized colorized_terminal package.
Once running, NodeRabbit generates a unique agent identifier from available host information. It calculates the SHA-256 hash of the hostname, username, operating system version, architecture, and MAC address, then truncates the result to its first 32 hexadecimal characters.
NodeRabbit binds a TCP listener to 127.0.0.1:48739. This listener acts as a single-instance mechanism. If the malware cannot bind to the port, it assumes that another instance is already running and terminates silently.
NodeRabbit uses a persistence mechanism for each operating system:
|
Operating system |
Persistence mechanism |
|
Windows |
Copies itself to %APPDATA%\Microsoft\EdgeUpdate\msedge_update.js; clones the local node.exe to nodew.exe in the same folder and patches its PE subsystem from Console to Windows GUI to suppress the console window; creates HKCU\Software\Microsoft\Windows\CurrentVersion\Run\MicrosoftEdgeUpdate registry key executing nodew.exe msedge_update.js |
|
Linux |
Copies itself to ~/.config/microsoft-edge-update/msedge_update.js and creates an @reboot cron entry that invokes the script using the current Node.js executable. |
|
macOS |
Copies itself to ~/.config/microsoft-edge-update, creates ~/Library/LaunchAgents/com.microsoft.edgeupdate.plist configuration file pointing at the copy’s location with RunAtLoad and KeepAlive parameters, and attempts to load it. |
The malware communicates with its command-and-control servers through three API endpoints, choosing from the following Azure-hosted C2 infrastructure addresses. On failure, it switches to the next C2 address:
1. https://plugplay.azurewebsites[.]net
2. https://Rgbteller.azurewebsites[.]net
3. https://Wslwebui.azurewebsites[.]net
|
Method |
Endpoint |
Purpose |
|
POST |
/api/rabbit/checkin |
Register agent and host info |
|
POST |
/api/rabbit/task |
Poll for commands |
|
POST |
/api/rabbit/result |
Submit results |
NodeRabbit serializes each C2 request object as JSON and wraps it with AES-256-GCM. The AES key is the SHA-256 digest of an ASCII seed embedded into the agent. Every request uses a fresh 12-byte IV and a 16-byte authentication tag:
The malware sends encrypted requests using the following structure:
{
"d": "base64(IV || ciphertext || authentication_tag)",
"_r": "8 hexadecimal characters",
"_t": "epoch timestamp"
}
C2 responses are structured the same way and may contain a command to execute. We observed the first NodeRabbit variant supporting 11 commands:
|
Command |
Functionality |
|
sys:info |
Return hostname, domain user information, username, and process ID. |
|
proc:list |
List running processes. |
|
proc:start |
Execute an arbitrary shell command. |
|
fs:list |
List a directory. |
|
fs:read |
Read a file in chunks and return Base64 data. |
|
fs:write |
Decode Base64 and write it at a chosen file offset. |
|
fs:delete |
Delete a file or recursively delete a directory. |
|
fs:mkdir |
Create directories recursively. |
|
net:config |
Enumerate adapters, MAC addresses, IP addresses, and DNS settings. |
|
agent:sleep |
Change the beacon interval. |
|
script:exec |
Write a base64 Node.js script to a randomly named .tmp file, execute it and delete it. |
NodeRabbit RAT: the second variant
Retrospective threat hunting following the discovery in Afghanistan led us to a second infection on a system in Egypt. This sample is a more advanced NodeRabbit variant, launched through the trojanized pretty-log package instead of colorized_terminal.
Before running its core functionality, the malware checks whether the host resembles an analysis environment. It terminates if it detects limited system memory, a low CPU count, short system uptime, analyst-associated usernames or hostnames, or common analysis tools running on the system.
Before terminating, the malware generates benign HEAD requests to www.google.com, www.microsoft.com, and www.cloudflare.com, then exits without ever contacting its C2 infrastructure. Most likely, it attempts to look less suspicious by showing some benign activity before exiting.
Variant 2 implements partial corporate proxy support: it checks HTTP(S) proxy environment variables, Windows Internet Settings, including an explicit PAC URL, and WinHTTP configuration; tunnels its HTTPS C2 through HTTP CONNECT. It first tries to establish an unauthenticated connection. If it fails, it retries using URL-embedded basic credentials. Finally, it delegates Windows NTLM/Negotiate challenges to curl.exe --proxy-anyauth --proxy-user. It caches the proxy-discovery result, including when no proxy is found, for five minutes. If the polling loop detects a network-interface or IP-address change, it clears the cache and runs proxy discovery again on the next checkin.
To make sure a single instance is running, Variant 2 uses a host-specific port derived from the agent identifier instead of the fixed TCP port used by the first variant. It interprets the first four hexadecimal characters of the identifier as an integer and applies the following calculation: 41984 + (value mod 5000).
The resulting listener port falls between 41984 and 46983. Unlike the shared port used by Variant 1, this port varies depending on the infected host.
For persistence, Variant 2 masquerades as Intel Driver & Support Assistant. The exact persistence mechanism, once again, depends on the operating system.
|
Operating system |
Persistence mechanism |
|
Windows |
Copies itself to %LOCALAPPDATA%\Intel\DSA\idriver_support.js. It then copies the local node.exe binary to IntelDSA.exe and changes its PE subsystem from Console to Windows GUI, suppressing the console window. Finally, it creates a scheduled task named IntelDriverSupportUpdate, which runs daily at 10AM and executes IntelDSA.exe with the dropped script. |
|
Linux |
Copies itself to ~/.config/intel-dsa/idriver_support.js and creates an @reboot cron entry. |
|
macOS |
Copies itself to ~/Library/Application Support/Intel DSA/idriver_support.js and creates the LaunchAgent com.intel.dsa.helper with RunAtLoad and KeepAlive enabled. |
NodeRabbit RAT: the third variant
Further threat hunting identified a third NodeRabbit variant on a system in Ethiopia. Like the second variant, it is launched through the trojanized pretty-log package. It retains much of the previous variant’s functionality but introduces significant changes to its command-and-control configuration, command set, and persistence mechanisms.
The third variant communicates with its C2 infrastructure through a different set of API endpoints:
|
Method |
Endpoint |
Purpose |
|
POST |
/sdk/v2/ready |
Register agent and host info |
|
POST |
/sdk/v2/config |
Poll for commands |
|
POST |
/sdk/v2/events |
Submit results |
We observed the malware using a C2 chain composed of Azure- and Cloudflare-hosted domains.
1. https://visitfinancedentists[.]com
2. https://kyrasey-f8hfexa5cqamh7fk.westeurope-01.azurewebsites[.]net
3. https://healthcomfsdpower[.]com
For persistence, Variant 3 implements the following mechanisms depending on the operating system in use:
|
Operating system |
Persistence mechanism |
|
Windows |
Attempts to copy the payload to ProgramData or LocalAppData, create a build-specific daily 10AM task, and start the copied payload. To choose the exact directory, it tries to list C:\Windows\System32\config. If successful, it selects ProgramData with /ru SYSTEM /rl highest; in case of a failure, it selects LocalAppData without explicit /ru or /rl settings. |
|
macOS |
Copies the payload to ~/Library/Application Support, creates and loads a RunAtLoad/KeepAlive LaunchAgent and starts the copied payload. |
|
Linux |
Copies the payload to ~/.local/share, attempts to add an @reboot cron entry, and starts the copied payload. If crontab -l fails, persistence is skipped. |
|
WSL |
Uses the payload copied for persistence on the main Linux system, as described above. Writes launcher.vbs under the Windows user profile, and creates a daily 10AM Windows task that relaunches it through wscript.exe and wsl.exe. |
A new command, agent:servers, replaces the active in-memory C2 server list and can write the updated list to .sv.json. The third variant retains the original 11 commands and adds 12 new ones, bringing the total to 23.
|
New commands |
Functionality |
|
fs:drives |
Enumerate accessible Windows drive letters or WSL-mounted drives |
|
proc:exec |
Execute a process |
|
proc:kill |
Kill process by PID or image name |
|
agent:servers |
Replace the active C2 and attempt to keep the new configuration |
|
agent:getchain |
Return the current C2 |
|
outlook:emails |
Harvest account addresses from Outlook OST and PST artifacts |
|
persist:check |
Check selected VS Code, scheduled-task, and Run-key persistence indicators |
|
persist:vscode |
Attempt to install a fake VS Code extension and Windows Run value |
|
persist:vscode:remove |
Remove the fake extension |
|
persist:projects:scan |
Search recent and common development locations for Git repositories |
|
persist:project:inject |
Inject a launcher into a repository’s Git hooks |
|
persist:project:remove |
Remove the marked Git-hook launcher |
Beyond the persistence mechanisms described above, Variant 3 introduces two additional persistence mechanisms that relaunch the malware through common developer workflows.
1. Malicious VS Code extension
The persist:vscode command first copies the payload to its build-specific install path. If a compatible extension directory exists, it creates a fake extension displayed as GitHub Copilot Helper, with the description AI coding assistant helper service and the activation event on StartupFinished.
The extension’s extension.js file attempts to start the installed payload as a detached Node.js process. To look less suspicious to the user, it uses a trusted publisher name borrowed from local extension metadata or a trustedPublishers value found in state.vscdb. However, no signature or trusted status is copied.
Separately, the handler tries to disable Workspace Trust if the VS Code User directory exists. On Windows, it attempts to establish persistence using a current-user Run registry key value even if the extension directory is missing.
2. Git hook injection
Git-hook persistence works in two steps. First, persist:projects:scan checks recent VS Code workspace paths directly. Under common locations such as ~/projects and ~/source, it checks only the first 60 immediate children, not the root itself, and returns no more than 20 repositories.
For a selected repository, persist:project:inject appends a marked launcher to .git/hooks/post-merge and .git/hooks/post-checkout by default. The marker is # shepherd-persist; the line following the marker attempts to start the installed payload with Node in the background. A later Git operation must trigger one of those hooks, and the referenced Node executable and payload must still exist.
PollCat RAT
While tracking NodeRabbit infections, we discovered another malicious tool we dubbed PollCat, which is also distributed under the guise of a programming challenge. The sample we obtained resides inside RankChallenge-react, a React code-fixing challenge presented as a time-limited developer assessment. Running the project invokes npm i && node index.js, which starts the local application and attempts to open the challenge in the user’s browser.
Although the visible exercise is not a security CTF, the project uses CTF terminology in several places. The root package is named ctf-server, the backend prints CTF server running, the frontend uses several ctf-* storage keys, and the tutorial refers to path/to/ctf. These repeated labels, together with instructions that do not fully match the delivered application, are consistent with an AI-assisted or template-generated project. One possible explanation is that the attacker prompted an AI coding assistant to create a CTF-style React platform and later inserted the malicious components.
The PDF tutorial contained in the same archive as the project tells the target to click Continue, enter a six-digit OTP code, and complete the challenge within a one-hour session. It states that codes are supplied by the recruiter, are single-use, and expire quickly; the visible login page also claims that codes rotate every 30 seconds. In the delivery scenario described by the investigation, the threat actor posing as a recruiter could provide the code directly to the targeted developer. This gives the operator control over access to the lure, while the expiring code and countdown create a sense of urgency, pressuring the target to run the project and complete the assessment quickly, potentially accelerating the infection process.
One-hour session window enforced by the trojanized coding challenge
The bundled .env file contains the JWT signing secret, OTP service URL, and OTP client ID.
Configuration embedded in .env file of the trojanized coding project, including the OTP service URL and client identifier
The application forwards submitted codes to an attacker-managed domain registered in late June-2026: https://lifespotify[.]com/api/users/b879746e-fed9-4211-a6da-4d8223681267/otp/validate.
That said, PollCat starts independently of the OTP authentication process. During application startup, app.js loads requireAuth.js, which imports and immediately starts the malicious requireObjects.js component. PollCat can therefore begin C2 registration and command polling while the application is still loading, before the user enters an access code.
A failed OTP validation prevents the user from accessing the protected challenge features, but PollCat continues running in the background. A successful OTP validation issues a JWT and creates another worker that starts an additional PollCat instance. The first authenticated request also triggers the persistence attempt.
Persistence starts when the first request carrying a valid JWT reaches the protected middleware. PollCat then uses one of the following methods:
|
Operation system |
Persistence mechanism |
|
Windows |
Writes package.json and requireObject.js to %APPDATA%\Microsoft\Network, runs npm install, and creates a daily task named NetSync_<username> and scheduled for 09AM that runs the worker with Node.js. |
|
Linux |
Writes the worker to ~/.node_packages, runs npm i, and appends both a daily 09AM cron line and an @reboot line. |
|
macOS |
Uses the same ~/.node_packages copy and cron path, then creates and loads ~/Library/LaunchAgents/com.harsh.requireobject.plist with RunAtLoad and a daily 09AM trigger. |
Once active, PollCat identifies the host as 129--<hostname> and iterates over the following C2s until registration succeeds:
1. https://sahi-finance[.]com
2. https://GamebarAppinformation[.]azurewebsites[.]net
3. https://GamebarApp[.]azurewebsites[.]net
To register, it sends the following HTTP request to the C2:
POST /beacon HTTP/1.1
Host: <c2-host>
Content-Type: application/json
{"clientId":"<client-id>","type":"poll","pcName":"<hostname>","userName":"<username>"}
On successful registration, PollCat expects an unusual HTTP 400 response containing a socket identifier and optional timing values:
HTTP/1.1 400
Content-Type: application/json
{"socketId":"<socket-id>","pollInterval":<poll-interval-ms>,"jitterTime":<jitter-ms>}
After registration, PollCat sends host information to /gate/hello, polls /gate/fetch for commands, and returns results through /gate/submit. All endpoints in use are presented in the table below.
|
Method |
Endpoint |
Purpose |
|
POST |
/beacon |
Register the client and obtain a socketId and optional timing values. |
|
POST |
/gate/hello |
Submit host, user, domain, OS information, and its current privilege level. |
|
GET |
/gate/fetch?token=<socketId> |
Poll for commands. |
|
POST |
/gate/submit |
Submit a Base64-encoded command-result structure. |
|
GET |
/vault/<uuid> |
Retrieve a hosted file and write it to the victim machine. |
|
PUT |
/vault/push/ |
Upload a local file or file chunk to the C2. |
|
POST |
/gate/track |
Report chunk-upload progress. |
By default, PollCat RAT polls every two minutes with up to five seconds of jitter. Commands and results are stored as little-endian binary records and carried as Base64 text.
PollCat RAT declares 22 commands, but three of them have no implementation:
|
Command |
Functionality |
|
0x02 (DIR) |
List a directory. |
|
0x03 (MV) |
Move a file or directory. |
|
0x04 (RUN) |
Execute a shell command. |
|
0x05 (TASKLIST) |
List running processes. |
|
0x06 (DEL) |
Delete a file or directory. |
|
0x07 (UPLOAD) |
Download a file from the C2 to the victim’s machine. |
|
0x08 (DOWNLOAD) |
Upload a local file to the C2. |
|
0X09 (DRIVES) |
List drives, volumes, or mount points. |
|
0X0A (TERMINATE) |
Terminate a process by PID. |
|
0X0B (RUNDLL) |
Load a DLL and call an exported function on Windows. |
|
0X0C (MKDIR) |
Create a directory. |
|
0X0D (ZIP) |
Create or extract a ZIP archive. |
|
0X0E (CHUNKED_DOWNLOAD) |
Upload a local file in chunks. |
|
0X0F (RUN_HIDDEN) |
Start a hidden background process. |
|
0X20 (EVAL_JS) |
Execute JavaScript supplied by the C2. |
|
0X30 (SYSTEM_CHECK) |
Collect process and software inventory. |
|
0XA1 (WS_DOWNLOAD) |
Defined but not implemented. |
|
0xB0 (REQUEST_ELEVATION) |
Defined but not implemented. |
|
0XB1 (PERSIST) |
Defined but not implemented. |
|
0xF0 (SET_SLEEP_TIME) |
Change the polling interval. |
|
0XF1 (SET_IDLE_TIME) |
Store an idle-time value. |
|
0xF2 (SET_JITTER_TIME) |
Change polling jitter. |
The command names UPLOAD, DOWNLOAD, and CHUNKED_DOWNLOAD are written from the C2’s perspective. UPLOAD sends a C2-hosted file to the victim’s machine, while the two download commands transfer victim files back to the C2.
EVAL_JS runs
JavaScript supplied by the C2 and gives that code access to Node.js modules,
files, processes, networking, and child-process functions.
SYSTEM_CHECK collects
the names of running processes and lists files and folders from:
%SystemDrive%\Program Files
%SystemDrive%\Program Files (x86)
%LOCALAPPDATA%
%LOCALAPPDATA%\Programs
%APPDATA%
%USERPROFILE%
%APPDATA%\Microsoft\Outlook
%LOCALAPPDATA%\Microsoft\Olk\Attachments
%USERPROFILE%\Documents
It also searches for folders matching 24 hardcoded strings corresponding to security software vendor names: ‘Google’, ‘Microsoft’, ‘Palo Alto Networks’, ‘Cisco’, ‘VMware’, ‘Fortinet’, ‘Citrix’, ‘CheckPoint’, ‘Juniper Networks’, ‘LogMeIn’, ‘Sophos’, ‘Symantec’, ‘Trend Micro’, ‘McAfee’, ‘Kaspersky Lab’, ‘ESET’, ‘Bitdefender’, ‘Avast Software’, ‘CrowdStrike’, ‘SentinelOne’, ‘Malwarebytes’, ‘BraveSoftware’, ‘Tencent’, and ‘Naver’.
When PollCat finds a matching folder, it lists that folder’s root contents. It does not recursively scan the entire product directory. The detailed inventory, including process names, directory listings, and collected paths, is sent as JSON to POST /api/system-details/result.
Infrastructure
Mirage Kitten continues to rely on Azure Websites and Cloudflare-backed domains to hinder infrastructure discovery and tracking. More importantly, the use of Microsoft Azure subdomains for C2 helps the traffic blend into legitimate organizational network activity. In some cases that we encountered during our research, the actors even incorporated the targeted organization’s name into the Azure subdomain, making C2 communications appear more like normal business traffic originating from an employee machine during regular business days.
|
Domain |
Registrar |
ASN |
Malware sample |
|
naturalapplication.azurewebsites[.]net |
MarkMonitor Inc. |
AS 8075 |
NodeRabbit RAT sample 1 |
|
rgbteller.azurewebsites[.]net |
MarkMonitor Inc. |
AS 8075 |
NodeRabbit RAT sample 2 |
|
crossdwm.azurewebsites[.]net |
MarkMonitor Inc. |
AS 8075 |
NodeRabbit RAT sample 3 |
|
dnshnsdev.azurewebsites[.]net |
MarkMonitor Inc. |
AS 8075 |
NodeRabbit RAT sample 4 |
|
healthcomfsdpower[.]com |
NameCheap, Inc. |
AS 13335 |
NodeRabbit RAT sample 5 |
|
kyrasey-f8hfexa5cqamh7fk.westeurope-01.azurewebsites[.]net |
MarkMonitor Inc. |
AS 8075 |
|
|
greenyjsgfd.azurewebsites[.]net |
MarkMonitor Inc. |
AS 8075 |
NodeRabbit RAT sample 6 |
|
hecowime-aqdphyd4bbdef6es.westeurope-01.azurewebsites[.]net |
MarkMonitor Inc. |
AS 8075 |
NodeRabbit RAT sample 7 |
|
lifespotify[.]com |
Dynadot |
AS 8075 |
PollCat RAT |
|
gamebarapp.azurewebsites[.]net |
MarkMonitor Inc. |
||
|
sahi-finance[.]com |
NameCheap, Inc. |
Based on our analysis of Mirage Kitten’s infrastructure, we identified certain patterns across several command-and-control channels, including msmanagementgrp[.]com and visitfinancedentists[.]com
Further investigation based on these patterns led to the discovery of approximately 11 additional infrastructure assets attributed to the same group.
|
Domain |
Creation date |
Registrar |
|
healthful-hub[.]com |
2026-07-03 |
NameCheap, Inc. |
|
neumedicahealthcare[.]com |
2026-07-03 |
NameCheap, Inc. |
|
optimumhealthcredit[.]com |
2026-07-03 |
NameCheap, Inc. |
|
healthfullyrecipes[.]com |
2026-06-30 |
NameCheap, Inc. |
|
refreshhealthandwellness[.]com |
2026-06-09 |
NameCheap, Inc. |
|
healthvitalitycare[.]com |
2026-05-18 |
NameCheap, Inc. |
|
aceofspadesmanagement[.]com |
2026-05-18 |
NameCheap, Inc. |
|
glmediaagency[.]com |
2026-05-18 |
NameCheap, Inc. |
|
digimediaskill[.]com |
2026-05-18 |
NameCheap, Inc. |
|
healthyweightplan[.]com |
2026-05-18 |
NameCheap, Inc. |
|
mens-health-online[.]com |
2026-05-15 |
NameCheap, Inc. |
Victims
Based on our telemetry, we identified victims in fintech, aviation and aerospace sectors across the Middle East and Africa – specifically, in Egypt, Ethiopia and Afghanistan.
We also observed submissions of ZIP archives with trojanized projects containing NodeRabbit and PollCat to an online multi-scanner originating from several countries, including India, Türkiye, Israel, Iraq, Germany, and Ireland.
Attribution
We attribute this activity to Mirage Kitten with a high degree of confidence based on the following observations:
1 Structural similarities with the Retrograde/MiniFast native
DLL backdoor (MD5:810F8E3B88EB05F710C09552941D6F56)
Initial C2 handshake and session establishment logic.Both PollCat and
Retrograde/MiniFast follow a similar C2 handshake flow. Each builds a
JSON request body containing host information and sends it via an HTTP
POST request.
Notably, both treat HTTP 400 as a successful handshake response rather
than an error, parsing the response body to extract a socketId,
which is then stored and used as the session token for subsequent C2
communication.
Host registrationBoth PollCat and Retrograde/MiniFast
register the infected host with the C2 server by sending a structurally
similar JSON request body containing the session token and host
information.
|
Malware |
Host registration request body |
C2 endpoint |
|
PollCat |
{“token”:”<socketId>”,”pcName”:”<host>”,”userName”:”<user>”,”domainName”:”<domain>”,”os”:”<os>”,”isElevated”:false} |
/gate/hello |
|
MiniFast/Retrograde |
{“token”:”<socketId>”,”pcName”:”<host>”,”userName”:”<user>”,”domainName”:”<USERDOMAIN>”,”isElevated”:<bool>} |
/agent/init |
Command fetching similaritiesThe similarities extend to command retrieval. Both PollCat and Retrograde/MiniFast periodically poll the C2 server using an HTTP GET request containing the previously assigned socketId as a token. Retrograde/MiniFast uses GET /agent/poll?token=<socketId>, while PollCat follows the same pattern with GET /gate/fetch?token=<socketId>, demonstrating a closely aligned C2 communication structure.
Beacon timing similaritiesPollCat and the Retrograde/MiniFast share identical beacon timing defaults: a polling interval of 120,000 ms (0x1D4C0), a jitter of 5,000 ms (0x1388), and a retry timeout of 60,000 ms (0xEA60). This further highlights the structural similarities between the two C2 communication implementations.
Command set similaritiesPollCat and Retrograde/MiniFast share several commands and command IDs. Notably, PollCat declares REQUEST_ELEVATION (0xB0) and PERSIST (0xB1) but does not implement them. In MiniFast, both are functional: 0xB0 performs UAC elevation, while 0xB1 creates the WindowsSecurityUpdate scheduled task for persistence.
Proxy authentication similaritiesNodeRabbit delegates corporate-proxy NTLM/Negotiate authentication to curl.exe --proxy-anyauth --proxy-user, using the victim’s logon session. Retrograde/MiniFast native DLL implements the same approach natively through WinHttpQueryAuthSchemes and WinHttpSetCredentials with NULL credentials. This shared proxy-aware C2 design suggests the same development approach across both malware families.
2 Speaking of victimology, the attacks are consistent with Mirage Kitten’s known geographic targeting, with the group maintaining a strong focus on entities across Africa and the Middle East, this time with a particular focus on the aviation and FinTech sectors.
3 As for the operational infrastructure, Mirage Kitten has historically hosted its initial ZIP lures on legitimate third-party services. Previously, it used onlyoffice.com for this purpose. In this activity, the group shifted to Amazon S3 buckets.
4 Finally, the combination of Azure Websites and Cloudflare‑backed domains has been a hallmark of Mirage Kitten’s TTPs, which we have observed across NodeRabbit and PollCat.
Conclusions
Mirage Kitten’s latest activity marks a notable evolution in the group’s tooling: NodeRabbit and PollCat are the group’s first Node.js/JavaScript-based implants, departing from its usual native malware deployed through DLL search-order hijacking. The shift to cross-platform scripting gives the operators a single codebase that runs on Windows, Linux, and macOS, with payloads that blend naturally into developer workstations.
The delivery mechanism, however, remains consistent with Mirage Kitten’s historical tradecraft: the use of recruiter personas on LinkedIn to target critical sectors across the Middle East and Africa for cyberespionage purposes. We continue to track the group’s activity and will report on new developments in future publications.
Indicators of compromise
Additional IoCs are available to customers of our Threat Intelligence Reporting service. For more details, contact us at intelreports@kaspersky.com.
File hashes
CBAAF0900A13F28E380F49ADECEC932C
FrontEnd-Task.zip
1EA83E4E4592B01E4ACAB63EB867BEE5 Front-Technical-Challenge.zip
366515822D5AC1CC500711EF57A2E32E Task-FullStack.zip
CF449F1992C2819E62AC44A0B06AC2E7 fullstack-1536.zip
E95A4366686E3F786EA3C056FAB5B0DA webapp76592.zip
DE5AF16A3757EF700B01DC34D67079AE webapp76531.zip
BE086789568441D0D7E4679AEE51F566 challenges-17831.zip
E259C5EDF158AAC4CFE14F77DDD0B196 challenges-17832.zip
291AC3ABE73C5158E59A437B75D5F0AA Project-1802.zip
0962F56D7EC69F4F2A0162DCBE22116B Case-34234.zip
795E053A990A1569FFDCB57F48F6D085 RankChallenge-react-6uJSX3-main.zip
Domains and IPs
oracle-challenge.s3[.]us-east-1.amazonaws[.]com
naturalapplication.azurewebsites[.]net
retaildemo.azurewebsites[.]net
tubitak.azurewebsites[.]net
rgbteller.azurewebsites[.]net
wslwebui.azurewebsites[.]net
plugplay.azurewebsites[.]net
crossdwm.azurewebsites[.]net
wdisystem.azurewebsites[.]net
wslmenus.azurewebsites[.]net
dnshnsdev.azurewebsites[.]net
hpjumpsrv.azurewebsites[.]net
storview.azurewebsites[.]net
healthcomfsdpower[.]com
visitfinancedentists[.]com
kyrasey-f8hfexa5cqamh7fk.westeurope-01.azurewebsites[.]net
greenyjsgfd.azurewebsites[.]net
helptellerbls.azurewebsites[.]net
timedrv.azurewebsites[.]net
userwellgtfs.azurewebsites[.]net
hecowime-aqdphyd4bbdef6es.westeurope-01.azurewebsites[.]net
msmanagementgrp[.]com
msmanagementgrpmedia[.]com
lifespotify[.]com
gamebarapp.azurewebsites[.]net
gamebarappinformation.azurewebsites[.]net
sahi-finance[.]com
healthful-hub[.]com
neumedicahealthcare[.]com
optimumhealthcredit[.]com
healthfullyrecipes[.]com
Refreshhealthandwellness[.]com
healthvitalitycare[.]com
aceofspadesmanagement[.]com
glmediaagency[.]com
digimediaskill[.]com
healthyweightplan[.]com
mens-health-online[.]com
H ARTICLES ALERTS CONFERENCE MALWARE TRAFFICS UPDATE SOFTWARE BATTLEFIELD UKRAINE