Skip to content

Build1 publisher2 min readPublished

ShinyHunters says a Grav upload path let it deface Clop's leak site

BleepingComputer confirmed the attacker's text file and the defaced page on Clop's existing onion address. The full server access, the stolen source code and the Tor private key are still ShinyHunters' own account of it.

The Engineer · Build desk

Illustration accompanying ShinyHunters says a Grav upload path let it deface Clop's leak site

What happened

  • ShinyHunters said it exploited an unauthenticated file upload vulnerability in the Grav CMS running Clop's Tor leak site, and used an upload path in the public web application to get in remotely.
  • Visitors to the leak site found its content replaced by the ShinyHunters logo and message, and could directly retrieve the unauthorized text file the attackers say they uploaded.
  • The crew claimed full access to the server plus theft of source code, Grav plugins, logs under /var/log and the Tor onion service private key, none of which has been independently verified.
  • ShinyHunters demanded that Clop contact it within 72 hours, indicating an intent to extort the ransomware gang with the material it says it took.

Compiled by The EngineerSomething wrong?How this is made

Why it matters

  • capability If the stolen onion service private key is valid, ShinyHunters can answer for the same .onion address from hardware it controls, so a visitor hitting that address could be reaching either operator's server.
  • constraint Anyone tracking Clop from the outside is now working without host attribution: the confirmation stops at what the address served, so monitoring built on the address cannot say which machine produced the page.
  • decision Until a version is named, the work for Grav operators is to inventory unauthenticated upload endpoints and disable the reachable ones.
  • exposure Whether a compromised site can ever prove its keys and logs were read is decided by audit settings chosen long before the incident. Most installs cannot answer the question afterwards.

An unauthenticated upload endpoint is a write primitive before it is anything else. What BleepingComputer verified in its 19 September report fits that and stops there: the attacker's text file could be fetched directly from Clop's existing onion address [2][12]. A fetchable file shows the upload path saved attacker-chosen content into a location the web server would hand out [1].

Everything past that needs another step. According to the writeup, reaching full server access requires code execution or file overwriting through the upload feature, or a separate vulnerability or misconfiguration, and the exact path has not been published [6]. Clop's threat model apparently covered its victims' web applications and not its own [1].

Two artifacts were confirmed by BleepingComputer, the retrievable file and the defaced page, against four that rest on ShinyHunters' statements: server access, source code and Grav plugins, logs under /var/log, and the onion service private key [2]. BleepingComputer also did not establish whether the defaced page came from the original server or from a different server using stolen private keys [3]. I would treat the key theft as unproven and plan as though it happened.

For anyone running Grav in public, the remediation in the writeup is a list of properties the upload path should have had: authentication and authorization checks, extension, MIME type and content validation, a controlled storage destination, and an upload area that cannot execute and sits outside public content [8]. That last property is the one that decides this case. A file written outside the served tree is not retrievable over the site [3]. The writeup also tells operators to identify the vulnerable core or plugin, the vulnerable endpoint and version, disable the path and apply official patches, and it says public information does not specify the targeted and fixed versions [9].

So the practical work is endpoint inventory. Which upload routes in your Grav install answer without a session, and where do they write.

The indicators listed are the ordinary ones: unexpected uploaded files, changes to public content, abnormal requests to Grav CMS, and changes to file ownership or modification times [10]. Whether reads of the private key or the logs left any trace depends on audit settings and on the path the attacker took [11].

What to watch

  • Whether Clop's leak site moves to a new onion address. A move would suggest its operators no longer trust the old service key.
  • Whether a specific Grav core or plugin version and an official fix get named for the upload path ShinyHunters says it used.
  • Whether ShinyHunters publishes the source code and /var/log material after the 72-hour deadline it set.
Loading claim ledger
Loading source directory links
Loading share composer
Loading topic controls
Loading related stories