Security1 publisher2 min readPublished
ShinyHunters breached Clop's leak site through an unpatched Grav path traversal flaw
ShinyHunters took over Clop's Tor leak site by exploiting CVE-2026-42608, an unauthenticated path traversal flaw in Grav CMS. The fix reached the still-popular Grav 1.7 branch only after the breach, in release 1.7.53.4.
The Watch · Security desk

What happened
- ShinyHunters breached the Clop leak site earlier this month, uploading a text file first and then defacing the whole site with its Umbreon Pokemon logo and a link to its own leak site.
- ShinyHunters said the compromised server ran Grav CMS 1.7.43 and that it exploited an unauthenticated flaw in the CMS's form upload handling.
- Grav tracks the bug as CVE-2026-42608, a path traversal flaw it privately fixed in Grav 2.0 with an advisory published on April 27.
- The April fix was never backported to the Grav 1.7 branch, so Clop's 1.7.43 install and other 1.7 sites stayed vulnerable.
- Grav backported the fix to the 1.7 branch and released 1.7.53.4 only after BleepingComputer shared the exploitation details.
Compiled by The WatchSomething wrong?How this is made
Why it matters
- exposure An unauthenticated attacker can write an uploaded file outside tmp/forms and elsewhere under a Grav 1.7 install, a foothold on any site left on the old branch.
- constraint Reading the April 27 advisory did not help a 1.7 operator: the fix shipped only in 2.x, so the choice was upgrading the major version or waiting for 1.7.53.4.
- capability If ShinyHunters really holds the private keys to Clop's Tor onion service, whoever has them can stand up a convincing clone of the hidden site.
- contradiction Clop says the box held only content while ShinyHunters claims operational and financial data; Clop's quiet removal from the leak site is what usually accompanies talks.
The exploit needs no login. Grav's form upload handler built a temporary directory out of values sent in form-related POST parameters, without checking that those values were safe path components [16]. ShinyHunters pointed to the `__unique_form_id__` parameter, whose value dropped into a path shaped like `tmp/forms/<session_id>/<unique_id>` [16]. Send `../../../shhq` as that identifier and Grav creates the upload path outside `tmp/forms`, so the file lands elsewhere under the installation [17].
Grav agreed once BleepingComputer showed it the method. "Yes, it's a legitimate flaw, and the threat actor's description is accurate," the developers said [14]. Their fix added a `sanitizeId()` function that accepts only identifiers matching `[A-Za-z0-9,_-]{1,64}`, which is exactly the mitigation ShinyHunters had described [19]. Grav also placed the bug in core, not the Form plugin [23].
The release history is why this reaches past Clop. "The gap was the 1.7 line," Grav said. "Grav 2.0 is the current major version, but plenty of sites are still on 1.7, and that fix hadn't been backported there yet." [21]
On what left the server, the two gangs tell different stories. ShinyHunters claimed it took source code, Grav plugins, server logs and the private keys for Clop's Tor onion service, then demanded payment to keep the files private [4]. Clop admitted its Grav install was behind [8] and denied any dealings with ShinyHunters [6]. Clop said it had not updated the Grav plugin, though it did eventually, but that the server held nothing but content, with no data or financial activity there and no possibility of any, so ShinyHunters' claim and its words were worthless [10]. Clop has since been quietly removed from ShinyHunters' leak site, which BleepingComputer notes usually signals negotiations; asked about it, ShinyHunters would not answer further [11][12].
What to watch
- Whether other Grav 1.7 sites get hit now that CVE-2026-42608 exploitation is public and 1.7.53.4 is out.
- Whether ShinyHunters publishes the Clop source code, server logs, or onion private keys it claims to hold.
- Whether Clop's quiet removal from ShinyHunters' leak site means the two are talking despite the denials.