

Thousands of British Airways, BBC and Boots employees have had their personal information stolen due to a weakness in file transfer software, MOVEit Transfer, used by their payroll provider, Zellis. Scanning by Shodan finds 2,515 publicly available instances of MOVEit, with the majority in the United States and 129 in the UK, and semi-anonymous reports on Reddit confirm that the weakness has been actively exploited. It's logged as CVE-2023-34362.
MOVEit Transfer claims to "secure enterprise data in transit and at rest". Their documentation shows that it supports customer-supplied keys, with a key rotation feature, and that they use AES-256.
That sounds really good - so how was the data stolen? The payroll data will almost certainly have been in the form of flat files, which are particularly easy to encrypt.
Security provider Huntress re-created the exploit and documented their findings on their blog. They haven't released the full script, but it started with an SQL injection vulnerability, which they used to insert a fake user session into the MOVEit database, which allowed unfettered access via the web interface, which then enabled file uploads (it's a file transfer tool), and this was used to upload DLL files that then unpacked an exploit. So the SQL Injection vulnerability led to Remote Code Execution (RCE).
While the attackers could upload and execute any exploit package they want, the path they chose was to install a targeted backdoor script called "human2.aspx" that uses MOVEit's internal libraries directly. The backdoor listens for further requests and is designed to reveal:
Since the attacker's script is publically available, we can see how it works and how the data was encrypted.
Firstly, file names and folder names are not encrypted in the backing database at all. Maybe that's not a big deal in this case, as payroll files tend to be named things like payroll-05-2023.csv, but in general, filenames can include the names of individuals or anything else, so it's better to encrypt them unconditionally.
Secondly, crucially, the file data itself is being decrypted without the need for the attacker to provide any keys or secret information. The important lines from the backdoor script are:
SILGlobals siGlobs = new SILGlobals();
EncryptedStream st = Encryption.OpenFileForDecryption(dataFilePath, siGlobs.FileSystemFactory.Create());
st.CopyTo(gzipStream);
All of MOVEit's claims may be true: the data is encrypted at rest, using AES256, with customer-controlled keys. But this amounts to nothing, as the keys are readily available to the MOVEit application itself, via a global "SILGlobals" object. Since the application itself has on-demand access to keys, the attacker's code does as well, and so the data being "encrypted at rest" provided no protection whatsoever.
The way to make "encryption at rest" useful is to ensure that an attacker can't possibly gain access to the keys, even if they compromise the application and exfiltrate the databases and all of the encrypted files. The way to do that is for the application not to have access to the keys at all. If it's a managed service, the application's provider shouldn't have them either.
It's possible - here's how we did it at Safelink. Admittedly the challenges are significant: key management is tricky, and implementing search and sort becomes very interesting, but by not storing keys you rule out entire breach scenarios, which is well worth the effort.
Would you like to learn more about how we protect your data? Reach out to us here.

Encryption at rest only protects data if the encryption keys are kept separate from the system storing the data. If an application can access the keys automatically, then any attacker who compromises that application can also decrypt the data.
This is exactly what happened in the MOVEit breach. Although files were encrypted using strong standards like AES-256, the application itself had direct access to the keys. Once attackers gained access through a vulnerability, they were able to use the system’s own decryption functions to retrieve sensitive data.
For legal teams handling confidential client information, this highlights a critical point: encryption alone is not enough. What matters is how keys are managed and whether they can be accessed during a breach.
Safelink’s approach is designed to eliminate this risk by ensuring that encryption keys are not accessible in a way that can be exploited, even if the application layer is compromised.

Application-level breaches, such as SQL injection or remote code execution, are among the most dangerous because they allow attackers to operate inside trusted systems.
To protect against this, legal teams need more than perimeter security. They need systems that assume breaches can happen and are designed to limit what an attacker can do next.
Best practice includes:
Safelink’s secure data environments, including Expero, are built with this model in mind. By removing direct access to encryption keys and tightly controlling how data is accessed and decrypted, Safelink helps ensure that even a successful intrusion does not automatically lead to data exposure.

Incidents like the MOVEit breach have shifted how legal teams evaluate security. It is no longer enough to rely on claims like “encrypted at rest” or “secure file transfer”.
Instead, firms should look for platforms that address real-world breach scenarios, not just theoretical protections.
Key considerations include:
Safelink’s platform is designed around these realities. Rather than relying solely on standard encryption claims, it focuses on eliminating entire classes of risk, ensuring that sensitive documents remain protected even in worst-case scenarios.



