modified or missing, downloads that one file from core.svn.wordpress.org (falling back to raw.githubusercontent.com) and puts it back.
How to access: GuardForge > File integrity, on the finding itself.
Free/PRO: Free.
The order of the checks is the whole feature — each step is a refusal, not a repair:
- The path must be a key in the checksum list wordpress.org published, so there is nothing for directory traversal to work with.
- The target must be writable, checked before anything is downloaded.
- The download must match the published MD5, checked before anything is written.
- The file being replaced is copied to
wp-content/uploads/guardforge-restore/behind a deny rule first. It may be a live web shell: a restore that leaves it at a guessable URL has moved the shell, not removed it — and the copy is the only evidence of what was done to the site./
- The restore is written to the audit log, and the restored file stops being a finding in the saved summary immediately, so the screen does not reload with the same row and the same button.
- Plugin files get no button. Reinstalling the release from the Plugins screen is the safe path, and the screen says so and links there.