Security1 publisher3 min readPublished
SophosLabs pulled apart a second-stage Linux payload that hooks Apache's module loader and keeps its PHP web shell in memory only, and the installer behind it writes itself into BIG-IP upgrade images, so a version bump does not evict it.
The Watch · Security desk

security
Gambling Goblin turns .gov.br servers into invisible reverse proxies for app-store phishing3 publishers
build
Elementor Pro's upload validator returns early when the first array element is empty1 publisher
build
Six MariaDB versions, one real difference: the only reason to leave 10.6 is the July 2026 clock1 publisher
security
CDN Tsunami: the protocol translation you pay for is the amplifier1 publisher
Compiled by The WatchSomething wrong?How this is made
The chain runs backwards from the file Sophos analyzed, which it assesses to be a second stage [3]. Stage one turned up during parallel analysis of a related `umount` sample: an installer and propagation component that infects /usr/sbin/httpd, modifies SELinux configuration, persists across BIG-IP upgrade images, and drops the payload [3]. The first-stage loader hunts for BIG-IP upgrade and install-image workflows under paths such as /mnt/tm_install [4]. What ties the two together is a size match. The malicious prefix on the infected httpd is 0x5430, the same as the payload embedded in the `umount` sample [5]. In decimal that is 21,552 bytes [1], and Sophos calls the match strong evidence that the `umount` component deploys the httpd infection [5].
The runtime tradecraft is where disk-based detection stops working. Operational strings are hidden with RC4. Execution is obtained before the host application's `main()` by intercepting `__libc_start_main`. The APR module loader `apr_dso_load` is hooked to reach Apache's PHP module, and `mmap` behaviour inside libphp is manipulated so a PHP web shell is prepended to the in-memory representation of selected files, visible only to the infected process and never written to disk [6]. Because the redirected calls sit in libc and libphp inside Apache worker processes, every PHP component running in that worker is affected, not one planted script [13]. Sophos notes that detection logic has relied on scanning the web root, checking parameter names against known signatures, and trusting file integrity monitoring -- approaches built on the opposite of how this implant behaves [12].
There is a second door. The implant opens a local UNIX domain socket and can redirect a connection into /bin/bash, so interactive access does not require a TCP listener [7].
Scope is narrower than "Apache and PHP". Sophos says the observed targeting centres on BIG-IP APM webtop environments, not generic Apache or PHP stacks or common CMS deployments [9]. F5 associates the related c05d5254 activity with BIG-IP APM systems affected by CVE-2025-53521, an exploited unauthenticated RCE that requires an access policy configured on a virtual server [2]. Outside that configuration, and outside BIG-IP, the findings in this teardown do not apply.
The material published so far does not include a victim count, a first-exploitation date, or a named operator. The only other public analysis referenced is ESET's, which named the malware PoisonedRefresh; Sophos says it observed overlapping behaviour independently [10]. The one hash published is the second-stage sample [11], which is the component least likely to be sitting on disk.
The remediation path for an appliance bug is normally an upgrade, and here the upgrade image is one of the things the installer persists through [3]. Sophos's own instruction is to follow F5's remediation and compromise-assessment guidance before applying generic Apache or PHP hardening [8]. A patched version string on an APM box that had an access policy on a virtual server only confirms the software was updated. It does not confirm who else still has a shell on it.
Ranked by verification strength, evidence, and original report placement.
SophosLabs acquired a Linux implant associated with compromised BIG-IP Access Policy Management (APM) environments that use Apache and PHP components.
F5 associates the related c05d5254 activity with BIG-IP APM systems affected by CVE-2025-53521, an exploited unauthenticated RCE in BIG-IP APM when an access policy is configured on a virtual server.
Sophos assesses the analyzed sample as a second-stage payload; during parallel analysis of a related umount sample it noted a distinct installer/propagation component responsible for infecting /usr/sbin/httpd, persisting across BIG-IP upgrade images, modifying SELinux configurations, and deploying the analyzed payload.
The first-stage loader looks for BIG-IP upgrade/install-image workflows under, for example, /mnt/tm_install.
The malicious prefix size used by the infected httpd (0x5430) matches the size of the payload embedded within the umount sample, which Sophos says strongly suggests the umount sample deploys the infected httpd.
The second-stage sample hides key operational strings with RC4, gains execution before the host application's main() by intercepting __libc_start_main, hooks the Apache Portable Runtime module loader apr_dso_load to target Apache's PHP module, and injects a PHP web shell into memory by manipulating mmap behaviour inside libphp at runtime so only the infected process sees the malicious content and nothing touches disk.
Publishers with included, body-backed reporting in this cluster.
1 article · September 6, 2026
Follow any of these and your For You feed starts watching them — no settings page required.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Checkable where it counts, thin at the edges
Most of what Sophos asserts about the sample it dissected can be checked by someone with the file: a SHA256, the hooked symbols, the mmap manipulation inside libphp, the UNIX socket path into /bin/bash, and a prefix size that matches code found elsewhere. The weaker half is the installer. Upgrade-image persistence, the SELinux changes and the /mnt/tm_install lookup come from a second sample that Sophos analysed in parallel and did not publish, and the CVE-2025-53521 association reaches the reader as Sophos's summary of F5 rather than F5's own words.
In real environments, scale unstated
The implant came off compromised BIG-IP APM installations, and the underlying flaw is described as exploited, so this is more than a laboratory curiosity. But every quantity a defender would want is absent. No host count, no geography, no sector, no first-seen date, and no indication of how the sample reached SophosLabs. ESET's earlier analysis suggests more than one victim environment has been examined, though we only have Sophos's word for what ESET found.
Framing runs slightly ahead of the sample
The line that makes this story travel is that an upgrade does not remove the infection, and that behaviour belongs to the component Sophos glimpsed while working on a different sample, not to the one it took apart. The dissection itself is unusually restrained for a vendor blog: no threat actor named, targeting characterised as what was observed rather than the full picture, and ESET's prior naming acknowledged in the text.
Vendor research, light on the pitch
Sophos sells the kind of detection this implant is built to slip past, and 'file integrity monitoring will not see it' is a comfortable conclusion for a company in that business. Against that, the post spends its length on internals rather than products, declines attribution for want of evidence, credits ESET with getting there first, and sends affected operators to F5's guidance instead of its own.
Strong on mechanism, unverified on reach
One publisher, one dissected sample, a great deal of specific detail, and a second research team whose corroborating work we cannot read. The mechanics are documented well enough to hold up under a second look; scope, victim population and the installer's behaviour rest on assertions this material does not let anyone test.