@wfasa
> We have received one file and I’m going to get another one soon. The file we got appears to be a dump of some sort but it’s not a regular core dump. There is no reference to Wordfence but we see variable names and strings from other plugins.
The one I sent (being about 10 gigabyte), all the files in the zip file where the temp files generated from long running admin-ajax.php files with strace right before the file starts to grow being:
[pid 1247] lstat("/home/customer/public_html/customerk.com/wp-content/plugins/wordfence/wordfence.php", {st_mode=S_IFREG|0644, st_size=2177, ...}) = 0
[pid 1247] lstat("/home/customer/public_html/customerk.com/wp-content/plugins/wordfence", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
[pid 1247] access("/home/customer/public_html/customerk.com/wp-content/plugins/wordfence/wordfence.php", R_OK) = 0
[pid 1247] access("/home/customer/public_html/customerk.com/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/init.php", R_OK) = 0
[pid 1247] access("/home/customer/public_html/customerk.com/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/waf.php", R_OK) = 0
[pid 1247] access("/home/customer/public_html/customerk.com/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/utils.php", R_OK) = 0
[pid 1247] access("/home/customer/public_html/customerk.com/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage.php", R_OK) = 0
[pid 1247] access("/home/customer/public_html/customerk.com/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php", R_OK) = 0
[pid 1247] access("/home/customer/public_html/customerk.com/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/config.php", R_OK) = 0
[pid 1247] access("/home/customer/public_html/customerk.com/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/rules.php", R_OK) = 0
[pid 1247] access("/home/customer/public_html/customerk.com/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/parser/lexer.php", R_OK) = 0
[pid 1247] access("/home/customer/public_html/customerk.com/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/parser/parser.php", R_OK <unfinished ...>
[pid 1247] <... access resumed> ) = 0
[pid 1247] access("/home/customer/public_html/customerk.com/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/parser/sqli.php", R_OK) = 0
[pid 1247] access("/home/customer/public_html/customerk.com/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/request.php", R_OK <unfinished ...>
[pid 1247] <... access resumed> ) = 0
[pid 1247] access("/home/customer/public_html/customerk.com/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/http.php", R_OK <unfinished ...>
[pid 1247] <... access resumed> ) = 0
[pid 1247] access("/home/customer/public_html/customerk.com/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/view.php", R_OK <unfinished ...>
[pid 1247] <... access resumed> ) = 0
[pid 1247] access("/home/customer/public_html/customerk.com/wp-content/plugins/wordfence/waf/bootstrap.php", R_OK <unfinished ...>
[pid 1247] <... access resumed> ) = 0
[pid 1247] access("/home/customer/public_html/customerk.com/wp-content/plugins/wordfence/waf/wfWAFUserIPRange.php", R_OK <unfinished ...>
[pid 1247] <... access resumed> ) = 0
[pid 1247] access("/home/customer/public_html/customerk.com/wp-content/plugins/wordfence/waf/wfWAFIPBlocksController.php", R_OK <unfinished ...>
[pid 1247] <... access resumed> ) = 0
[pid 1247] stat("/home/customer/public_html/customerk.com/wp-content/wflogs/", <unfinished ...>
[pid 1247] <... stat resumed> {st_mode=S_IFDIR|0755, st_size=135168, ...}) = 0
[pid 1247] lseek(4, 0, SEEK_SET <unfinished ...>
[pid 1247] <... lseek resumed> ) = 0
[pid 1247] lseek(4, 0, SEEK_END <unfinished ...>
[pid 1247] <... lseek resumed> ) = 0
[pid 1247] write(4, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 8192 <unfinished ...>
[pid 1247] <... write resumed> ) = 8192
[pid 1247] write(4, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 8192 <unfinished ...>
[pid 1247] <... write resumed> ) = 8192
[pid 1247] write(4, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 8192 <unfinished ...>
[pid 1247] <... write resumed> ) = 8192
[pid 1247] write(4, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 8192 <unfinished ...>
[pid 1247] <... write resumed> ) = 8192
[pid 1247] write(4, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 8192 <unfinished ...>
[pid 1247] <... write resumed> ) = 8192
[pid 1247] write(4, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 8192 <unfinished ...>
[pid 1247] <... write resumed> ) = 8192
> 2. I’d like to know if anyone is seeing anything in their PHP error logs that could be related?
What I’ve seen is that after running for hours (when it reaches about 9 gigs in size), the php error logs will contain a memory allocation error, since it reached memory_limit of in this case 1 gigabyte.
[12-Sep-2017 02:01:40 UTC] PHP Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 534773792 bytes) in /home/user/public_html/domain.com/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/utils.php on line 839
Despite the biggest ajax request being made between 11 september 11.00 pm UTC and 12 september 9.00am UTC is 7.4 kilobytes.