Skip to content
anavem.com logoanavem.com logo
CriticalF5 BIG-IP APMCritical severityNewsCVE-2025-53521Cybersecurity

Linux rootkit on F5 BIG-IP APM hides its web shell in memory

The implant is a second-stage payload tied to exploitation of CVE-2025-53521, the BIG-IP APM bug F5 re-categorised from denial of service to unauthenticated RCE in March.

On this page

Key takeaways

  • The web shell is injected into the in-memory copy of apm_css.php3, full_wt.php3 and webtop_popup_css.php3; the disk files are untouched.
  • A second backdoor listens on a local UNIX socket at /run/bigtlog.pipe and hands connections to /bin/bash, with no TCP port open.
  • Sophos assesses the sample as a second stage, deployed by an installer that infects /usr/sbin/httpd and persists across BIG-IP upgrade images.
  • F5 ties the related c05d5254 activity to exploitation of CVE-2025-53521, a KEV-listed unauthenticated RCE.
  • Shadowserver counted 795 BIG-IP APM endpoints still exposed and vulnerable to that CVE on 7 September 2026.

What to do now

High urgency
  1. Confirm BIG-IP APM versions against F5 advisory K000156741 and patch CVE-2025-53521
  2. Run F5's compromise assessment using the c05d5254 indicators in K000160486
  3. Hunt for Apache workers reading /proc/self/maps and RWX changes around libphp
  4. Check for a UNIX socket at /run/bigtlog.pipe and Apache lineage processes spawning /bin/bash
  5. Alert on PHP responses returning HTTP 201 with Content-Type text/css
  6. Collect process memory and compare in-memory module contents against the files on disk

A Linux rootkit found on compromised F5 BIG-IP APM appliances serves a PHP web shell that never touches the disk. Sophos X-Ops, which published its analysis on 7 September 2026, found the implant hooks Apache's module loader and patches PHP in memory so that three specific .php3 scripts execute attacker code while the files on disk stay unchanged. ESET analysed the same malware independently and calls it PoisonedRefresh.

File integrity monitoring and web root scanning are how most teams hunt web shells. Against this implant both come back clean, on an appliance that sits in front of VPN and application authentication.

Sophos X-Ops has published an analysis of a Linux rootkit on compromised F5 BIG-IP APM appliances that injects a PHP web shell into memory and opens a local UNIX socket backdoor.

If you run BIG-IP APM and were ever on a version vulnerable to CVE-2025-53521, patching is not enough. Follow F5's compromise assessment, then hunt for Apache workers reading /proc/self/maps, RWX changes around libphp, a socket at /run/bigtlog.pipe, and PHP responses that return HTTP 201 as text/css.

Affected & context

Event summary

On 7 September 2026, Sophos X-Ops published an analysis of a Linux implant recovered from compromised F5 BIG-IP APM environments. The malware intercepts Apache's PHP module loading and injects a web shell into the in-memory copy of specific .php3 scripts, leaving the files on disk unchanged, and also opens a local UNIX socket backdoor into /bin/bash. ESET analysed the same malware and named it PoisonedRefresh.

Why it matters

BIG-IP APM controls authentication and remote access for enterprises, service providers and public bodies. An implant that leaves no on-disk artefact defeats the file integrity checks most teams rely on to find a web shell.

Who is affected

Organisations running F5 BIG-IP APM with an access policy on a virtual server, particularly anyone who ran a version vulnerable to CVE-2025-53521 or upgraded from one.

Vendors
F5
Products
F5 BIG-IP Access Policy Manager (APM)
Malware
PoisonedRefreshc05d5254Linux/Agnt-IC
Geography
Global
Industry
Enterprise ITPublic sectorFinancial servicesService providers
CVEs
CVE-2025-53521

A web shell with nothing on disk

Sophos X-Ops has published an analysis of a Linux implant recovered from compromised F5 BIG-IP APM environments. The malware injects a PHP web shell into memory instead of dropping a file, so the scripts on disk stay byte-for-byte clean while Apache executes attacker code. The research went out on 7 September 2026.

ESET analysed the same malware in parallel and named it PoisonedRefresh. Sophos detects the payload as Linux/Agnt-IC.

Sophos assesses this sample as a second stage. During analysis of a related umount sample it found a separate installer component that infects /usr/sbin/httpd, modifies SELinux configuration and persists across BIG-IP upgrade images. The malicious prefix size in the infected httpd matches the payload embedded in the umount sample, which is what ties the two together.

How the BIG-IP APM rootkit hides inside Apache

The implant runs before the host program does. It hooks __libc_start_main so its own initialisation happens ahead of main(), and it carries its own ELF loader rather than going through the dynamic linker, which removes the startup path many monitoring tools watch.

Then it waits. By hooking the Apache Portable Runtime function apr_dso_load, it stays inert until Apache loads libphp. Only then does it read /proc/self/maps to locate that module, flip its memory protections to RWX, patch selected call targets and set them back to RX.

libphp patching sequence, per Sophos
read /proc/self/maps -> find libphp -> mprotect RWX -> patch relocations -> mprotect RX

Those patches redirect PHP's file and memory calls, including open, close, mmap and __fxstat. When PHP opens apm_css.php3, full_wt.php3 or webtop_popup_css.php3, the implant tracks the descriptor and prepends a web shell to the mapped content at mmap time. Sophos notes these scripts exist in BIG-IP APM webtop environments and are unlikely to draw attention.

Operational strings sit encrypted in .rodata behind a hardcoded RC4 key, so a static string dump gives an analyst almost nothing.

Clean file, dirty process

The PHP files on disk are never modified. Content-based scanning of the web root returns clean while the running process sees something else entirely.

Two access channels, neither obvious

The injected web shell reads raw bytes from php://input, checks for a short magic prefix, decrypts the remainder with a small stream cipher and runs it through eval(). It answers with HTTP status 201 and a Content-Type of text/css, so on a traffic graph it looks like a stylesheet fetch.

The second channel is local. The implant creates a UNIX domain socket at /run/bigtlog.pipe and, after a token check, redirects standard input, output and error into /bin/bash. No TCP listener opens, so port-based monitoring and external scans see nothing.

Sophos found no client code for that socket and no other reference to its token, and says it cannot confirm whether operators reach it through the web shell. The socket worker only spawns once Apache starts making routine time calls, a delay that keeps the implant from destabilising the service at startup.

The way in: a DoS bug that turned out to be pre-auth RCE

F5 links the related activity, which it tracks as c05d5254, to BIG-IP APM systems affected by CVE-2025-53521. That flaw has a history worth remembering.

F5 disclosed and patched it on 15 October 2025 as a denial of service issue in the apmd process, scored 7.5 under CVSS v3.1 and 8.7 under v4.0. In March 2026, citing new information, F5 re-categorised it as unauthenticated remote code execution and raised the scores to 9.8 and 9.3. The advisory now states the flaw has been exploited in vulnerable versions.

CISA added it to the KEV catalog on 27 March 2026 and gave federal agencies until 30 March. F5 classifies the bug as CWE-121, a stack-based buffer overflow, affecting BIG-IP APM 15.1.0 to 15.1.10, 16.1.0 to 16.1.6, 17.1.0 to 17.1.2 and 17.5.0 to 17.5.1 when an access policy is configured on a virtual server. It is a data plane issue, and appliance mode is not a shelter.

Anyone who triaged a 7.5 denial of service in October 2025 and scheduled it accordingly had five months of exposure to something rather different.

Who is still exposed

The Shadowserver Foundation runs a tracker for BIG-IP APM systems vulnerable to CVE-2025-53521. BleepingComputer, reading that dashboard on 8 September 2026, reported 795 exposed endpoints the previous day.

For scale, Shadowserver fingerprinted around 17,000 BIG-IP APM instances globally in early April 2026, though that was a population count rather than a vulnerable one. Six months after the reclassification, several hundred systems still answer as vulnerable.

That matters more than the raw number suggests. BIG-IP APM enforces authentication and authorisation for VPN and application access, so each exposed appliance is a pre-auth foothold standing in front of everything it protects. F5's own guidance tells anyone running a vulnerable version, or upgraded from one, to review its compromise indicators rather than assume a patch settled the matter.

What to hunt for

Start with F5's guidance rather than generic Apache or PHP hardening. F5 publishes indicators of compromise for c05d5254 in article K000160486 and separate guidance for suspected BIG-IP compromise. Sophos makes the same point: on these appliances, follow F5's remediation path first.

On the web layer, look for requests to the three .php3 endpoints where they are rare in your environment, and for PHP responses pairing HTTP 201 with a text/css content type. Repeated POSTs of consistent shape or unusual body size to CSS-like PHP paths are the same signal from another angle.

On the host, the tell is behavioural. Apache workers reading /proc/self/maps, memory protections on libphp flipping to RWX and back, a UNIX socket appearing at /run/bigtlog.pipe, or Apache lineage processes redirecting stdio and executing /bin/bash.

A restart is not remediation

File integrity checks alone will not find this, and a service restart does not guarantee eviction. Assume both access channels are present if either one is found, and collect volatile evidence before rebooting anything.

Sophos recommends collecting process memory and comparing on-disk against in-memory module contents for critical web servers. That comparison is the one check this implant cannot pass.

What to watch next

Attribution is open. Sophos says it lacks sufficient evidence to tie the implant to a named actor, while noting that the targeting and implementation suggest operational maturity.

Two threads are worth following. Whether the missing client component for the UNIX socket surfaces, which would say something about how the operators work, and whether the installer stage gets a public write-up, since that is the piece handling persistence across upgrade images.

The wider lesson is about method rather than this particular malware. In-memory web shell delivery breaks the assumption that a compromised web server leaves something suspicious on disk, and BIG-IP APM will not be the last appliance where that assumption gets tested.

Timeline

  1. CVE-2025-53521 disclosed as a denial of service issue

    F5 discloses and patches a flaw in the apmd process of BIG-IP APM, scored 7.5 under CVSS v3.1 and 8.7 under v4.0.

    Source: F5 advisory K000156741

    Confidence: High

  2. F5 re-categorises the flaw and CISA adds it to KEV

    Citing new information obtained in March 2026, F5 reclassifies CVE-2025-53521 as unauthenticated RCE at 9.8 (v3.1) and 9.3 (v4.0), and confirms exploitation. CISA adds it to the KEV catalog with a 30 March deadline for federal agencies.

    Source: F5 advisory K000156741, The Hacker News

    Confidence: High

  3. Sophos X-Ops publishes its analysis of the implant

    Sophos details the second-stage payload, its Apache and PHP hooking chain, the in-memory web shell and the local UNIX socket backdoor, and notes ESET's parallel analysis under the name PoisonedRefresh.

    Source: Sophos X-Ops

    Confidence: High

  4. 795 vulnerable endpoints still exposed

    BleepingComputer reports on the Sophos analysis and cites the Shadowserver tracker, which showed 795 BIG-IP APM endpoints exposed and vulnerable to CVE-2025-53521 the previous day.

    Source: BleepingComputer, Shadowserver Foundation

    Confidence: High

Impact

Compromised BIG-IP APM appliances carry a web shell that file-based scanning cannot see and a local backdoor that port-based monitoring cannot see. Because the appliance enforces authentication for remote and application access, an implant there sits in front of whatever it protects, with the process running as part of Apache.

Business impact

A compromise assessment on an authentication gateway is disruptive and slow, and a positive finding means credential rotation across everything that traversed the appliance.

Technical impact

On-demand server-side code execution through Apache and interactive shell access over a local socket, with persistence that survives BIG-IP upgrade images according to Sophos.

Security impact

The implant defeats file integrity monitoring, web root scanning and network port monitoring at the same time, so detection has to come from process and memory behaviour.

Privacy impact

No specific data exposure has been reported. An appliance in the authentication path handles session data and credentials, so a confirmed compromise should be treated as a credential exposure event.

Affected audience: Network and security teams running F5 BIG-IP APM, MSPs managing customer remote access infrastructure, Incident responders and threat hunters, SOC teams writing detection content for Linux servers

Action required.

Technical details

CVEs
CVE-2025-53521
CVSS
9.8
Exploitation
Exploited in the wild
Attack vector
Network, unauthenticated. Specific malicious traffic to a BIG-IP APM virtual server with an access policy configured leads to remote code execution. F5 classifies it as CWE-121, a stack-based buffer overflow in the apmd process.
Affected versions
BIG-IP APM 17.5.0 to 17.5.1, BIG-IP APM 17.1.0 to 17.1.2, BIG-IP APM 16.1.0 to 16.1.6, BIG-IP APM 15.1.0 to 15.1.10
Patched versions
Fixed versions are listed in F5 advisory K000156741; F5 validated that the original October 2025 remediation addresses the RCE
CWEs
CWE-121

Indicators of compromise

Hash
26bd5b0722d1dbab5db749a063c49bc8638653ac2addfead7a9cb3d6d57bccc9

SHA256 of the analysed second-stage sample

Source: Sophos X-Ops

Confidence: High

File
/run/bigtlog.pipe

UNIX domain socket created by the implant for local backdoor access

Source: Sophos X-Ops

Confidence: High

File
/run/bigstart.ltm

File listed by F5 among the c05d5254 indicators of compromise

Source: F5 K000160486, as reported by Dark Reading

Confidence: Medium

File
apm_css.php3, full_wt.php3, webtop_popup_css.php3

BIG-IP APM webtop scripts whose in-memory copies receive the injected web shell

Source: Sophos X-Ops

Confidence: High

Other
HTTP 201 response with Content-Type: text/css from a PHP endpoint

Response signature of the injected web shell

Source: Sophos X-Ops

Confidence: High

Detection methods

  • Apache worker processes reading /proc/self/maps
  • Memory protections on libphp mappings changing to RWX and back to RX
  • Creation of a UNIX domain socket under /run, specifically /run/bigtlog.pipe
  • Apache lineage processes redirecting stdio and executing /bin/bash
  • Requests to rarely used .php3 endpoints and HTTP 201 responses typed as text/css
  • Comparison of on-disk and in-memory contents of loaded PHP modules

Mitigations

  • Patch CVE-2025-53521 per F5 advisory K000156741
  • Follow F5's compromise assessment guidance before applying generic Apache or PHP hardening
  • Restrict .php3 execution only where F5 guidance allows and after impact review

Technical references

Response

Vendor statement

F5 states that CVE-2025-53521 has been exploited in vulnerable BIG-IP versions and asks customers running an affected version, or a system upgraded from one, to review its indicators of compromise for c05d5254 and its guidance for suspected BIG-IP compromise. The fix has been available since the original October 2025 remediation.

Authorities

CISA added CVE-2025-53521 to its Known Exploited Vulnerabilities catalog on 27 March 2026 and set a 30 March 2026 remediation deadline for federal civilian agencies.

Customer guidance

Verify BIG-IP APM versions against F5 advisory K000156741 and apply the fix. Where a vulnerable version was ever running, treat compromise as possible and work through F5's indicator review before generic hardening.

Response status: Patched

Patch available: Yes

Workaround available: No

FAQ

What is PoisonedRefresh?

PoisonedRefresh is ESET's name for a Linux implant found on compromised F5 BIG-IP APM appliances. Sophos X-Ops analysed the same malware independently and detects it as Linux/Agnt-IC. It hooks Apache and PHP to deliver a web shell that exists only in memory, and opens a second backdoor over a local UNIX socket.

How does a fileless web shell work here?

The implant hooks the PHP module inside Apache and intercepts the memory mapping of three specific .php3 scripts. When PHP maps one of those files, the implant prepends a web shell to the in-memory copy. The file on disk is never modified, so file integrity monitoring and web root scanning see nothing unusual.

How do attackers get onto the appliance?

F5 associates the related c05d5254 activity with BIG-IP APM systems affected by CVE-2025-53521, an unauthenticated remote code execution flaw that F5 re-categorised from denial of service in March 2026 and confirmed as exploited. Sophos assesses the rootkit as a second-stage payload rather than the initial access vector.

Is patching CVE-2025-53521 enough?

No. A patch closes the entry point but does not remove an implant already installed, and Sophos reports persistence across BIG-IP upgrade images. F5 asks anyone running a vulnerable version, or a system upgraded from one, to review its indicators of compromise for c05d5254 before anything else.

What should I hunt for?

Sophos lists Apache workers reading /proc/self/maps, memory protection changes on libphp, creation of a UNIX socket at /run/bigtlog.pipe, and Apache lineage processes spawning /bin/bash. On the web layer, watch for rare requests to the targeted .php3 endpoints and PHP responses that combine HTTP 201 with a text/css content type.

The bottom line

Sophos X-Ops has detailed a Linux rootkit on compromised F5 BIG-IP APM appliances that injects a PHP web shell into memory and adds a local UNIX socket backdoor, deployed after exploitation of the KEV-listed CVE-2025-53521.

On an appliance that ever ran a vulnerable BIG-IP APM version, a clean filesystem proves very little. Detection has to come from process and memory behaviour.

What happens next

Watch for public analysis of the installer stage and for any attribution. Shadowserver's tracker is the number to follow for how many vulnerable appliances remain exposed.

What to do

Patch CVE-2025-53521, then work through F5's compromise assessment and add the Sophos hunting signals to your detection content.

Sources

  1. Sophos X-Ops · Sep 7, 2026 · Primary source

    Claims supported
    • The implant's hooking chain, in-memory web shell delivery and UNIX socket backdoor
    • Targeted .php3 filenames, /run/bigtlog.pipe, sample hash and Linux/Agnt-IC detection name
    • Assessment that the sample is a second stage deployed by a separate installer
    • Hunting signals and defender guidance
  2. F5 · Oct 15, 2025 · Primary source

    Claims supported
    • Reclassification from DoS to unauthenticated RCE and the revised CVSS scores
    • Confirmation that the vulnerability has been exploited
    • CWE-121 classification, affected versions and the access policy precondition
  3. BleepingComputer · Sep 8, 2026

    Claims supported
    • 795 BIG-IP APM endpoints exposed and vulnerable on 7 September 2026, from the Shadowserver tracker
    • Date the Sophos analysis was picked up by the trade press
  4. The Hacker News · Mar 27, 2026

    Claims supported
    • KEV listing on 27 March 2026 and the 30 March remediation deadline for federal agencies
    • CVSS v4.0 score of 9.3 after reclassification
  5. Help Net Security · Mar 28, 2026

    Claims supported
    • Affected BIG-IP APM version ranges and the apmd process as the vulnerable component
  6. Dark Reading · Mar 30, 2026

    Claims supported
    • F5 published c05d5254 indicators of compromise including /run/bigtlog.pipe and /run/bigstart.ltm
Reader actions
Was this helpful?
Rate this articleRate
5 readers viewed this article

Reader reviews

Rate this articleBe the first to rate
No written reviews yetRate the article above, or be the first to share your experience.