Investigations Security WordPress

Reblog: Fake plugin wave affecting WordPress sites

Bad actors are abusing leaked and compromised credentials to install the fake core-stab plugin and other items on WordPress sites.

Fake plugin wave affecting WordPress sites — Jetpack

Some of my behind-the-scenes work at Automattic was featured in a recent Jetpack & WPScan blog post.

The WPScan version of the post includes a bit more about the malware, indicators, as well as Yara & ModSec rules.

Read more on and

While you’re on, you might find other articles about some of my random work — such as The School Management plugin backdoor disclosure.

Apple Troubleshooting

2018 MacBook Pro GPU Failure?

Today, my MacBook Pro decided it wanted to retire. Thankfully, it seems I worked out a solution until I can get a replacement.

In case others start facing this, I wanted to document my troubleshooting experience here.

If you’re looking to get right to the steps I took to resolve things, jump down to the Workaround section.


As I started work this morning, I noticed that the laptop wasn’t booting up from sleep as expected. I was greeted with a cold boot and multiple notices that my computer was rebooted due to an error.

Ignoring the notices for a bit, I tried working. This was met with more crashes and reboots. Eventually, it seemed to be somewhat stable but my external monitors were no longer working. It also would crash any time it went to sleep. After a few more crashes, I was then having issues booting and logging in.

Clearing NVRAM and resetting SMC allowed me back in but any attempts to use my external monitors failed. It continued to crash whenever using Chrome and if I stepped away long enough for my screen to sleep.


  • MacBook Pro (15-inch, 2018)
  • macOS: Monterey 12.2 (21D49)
  • Processor: 2.9 GHz 6-Core Intel Core i9
  • Memory: 2 GB 2400 MHz DDR4
  • Integrated graphics: Intel UHD Graphics 630
  • Discrete graphics: Radeon Pro 560X 4 GB

Logs & Troubleshooting

I opened the console to check for logs and found it littered with panic-full — indicating a recurring kernel panic.

The following stood out and was persistent throughout all the panic logs.

 "macOSPanicString" : "panic(cpu 0 caller 0xffffff7fae275244): \"virtual bool IOAccelLegacyDisplayMachine::display_mode_did_change(uint32_t): AMDRadeonAccelerator driver returns false\" @IOAccelLegacyDisplayMachine.cpp:267\nPanicked task 0xffffff95294326a0: 7 threads: pid 141: WindowServer

This instantly brought back memories of the mass GPU failures that occurred with 2011 MPBs.

I tried safe mode. Things seemed stable and my external monitors worked; however, I noticed that the device was sticking to its integrated graphics.

Frustrated and wanting to work, I tried wiping my drive and reinstalling macOS. The error persisted so I restored a backup.

Next, I started up a chat, and then a call, with Apple to see if they might have any hints based on everything I’ve tried. I suggested my GPU might be dying and they agreed. Their solution was to get it serviced or replaced.

I needed to get to work so I started checking for potential workarounds.

What now? Bypass the discrete GPU?

My new goal was to see if I could disable the discrete GPU and force the MBP to use the integrated graphics while I wait on a new laptop.

I found some very detailed, and unfortunately long, guides for how folks disabled the failed discrete GPUs for 2011 MPBs. Based on what I saw, those steps wouldn’t work with mine.

I remembered that the macOS Battery options included an Automatic graphics switching setting and tried toggling that off. Unfortunately, it seemed that it didn’t change anything and the option would simply turn back on.


macOS tracks the graphics switching with gpuswitch.

I checked this by opening the terminal and running pmset -g.

gpuswitch was set to 2 while Automatic graphics switching was turned on. I turned the option off and it was still set to 2. 😐

We can adjust the gpuswitch option via sudo pmset -a gpuswitch and the option you want to set. Unfortunately,’s forums had mixed information on the available options.

After some digging and testing, it appears we have three options.

0 = Only use integrated graphics
1 = Only use discrete graphics
2 = Automatic graphics switching: Allow system to automatically switch between discrete & integrated based on power and resources

Without digging in more, I’m still not certain how accurate this is but 2 definitely seems to be for automatic switching.

So, I can try forcing integrated graphics by running the following.

pmset -a gpuswitch 0


With this info, I was able to apply a workaround that got me back to work until I get a replacement laptop.

  1. Navigate to System Preferences > Battery > Battery
  2. Uncheck Automatic graphics switching
  3. Open Terminal.
  4. Run sudo pmset -a gpuswitch 0
  5. Observe if the change applied by running pmset -g and check the value of gpuswitch. It should now be 0.

After taking these steps, the crashes stopped and I was able to use my external monitors again. Oh, and do a bit of work.


It seems this workaround is forcing the integrated CPU to be used. However, if I check System Info > Graphics/Displays, my external monitors appear to be running on the discrete.

Regardless, things are working for now and I’ve got a replacement on the way.

Outside of the new GPU hardware issues, this MBP has had a broken touch bar and butterfly keyboard that started to fail within the first few months of light use. This new failure was good motivation to get a replacement.

I look forward to the speed of the new chips but am also wary and worried about hardware quality. Hopefully, things have gotten better since 2018.


VEC Broadband Support Letter

While many of our friends, family, and tenants across Tennessee enjoy high-speed fiber and cable options, folks in Polk County do not. Thankfully, there has been growing interest in improving this. The county commission and some local organizations are actively exploring options.

Polk County’s local electric and broadband company, Volunteer Energy Cooperative, is working on applying for a grant to help them expand broadband access.

To help with this, VEC is asking customers to fill out a support letter and email it to them or print and mail it to them. I encourage any VEC customer to fill this out to help expand broadband access.

The version VEC provided on their Facebook post is in DOCX format which requires office editing software to be installed on your computer. I’ve included some alternative downloads below in case you run into issues with that format.

Additional Format Downloads
Alternative Options
Submission Instructions

Once filled out, you can email it to them at [email protected] or mail it to them at the following address.

PO Box 277 Decatur, TN 37322

I also have created alternative versions below if you have issues with that file.

If you run into issues with this or need help with editing and submitting your letter, feel free to comment below.

Additional Format Downloads

I’ve created Google Docs and PDF versions to make it easy to copy, edit, and/or print if you have issues with the DOCX version they provided. Use the links below to access them.

You can download VEC’s original DOCX version at

Alternative Options

Alternatively, you can download their DOCX version and upload it to one of these services to edit the letter template.

Submission Instructions

Once filled out, you can download your edited version and email it to them at [email protected]

Or, you can print it out and mail it to them at the following address.

PO Box 277 Decatur, TN 37322

If you run into issues with this or need help with editing and submitting your letter, feel free to comment below under “Share your thoughts.”


Hard Reboot

As 2018 ramps down, I am refreshing my digital presence. While I haven’t scrapped my Twitter and Instagram, I have cleared most of my writings, YouTube videos, and tutorials from the web. 

Starting in 2012, I slowly stopped the sharing of my personal writings and research. By 2016, my only updates were on Twitter, Instagram, and a Github account (or two).

Before 2019 begins, I want to relaunch the sharing of my personal development, findings, and news. This goes hand-in-hand with my goals to read more, learn more, develop more, write more, and speak more. 

Long story short — I am back. 

Back if you’ve known of me. 
Here if you haven’t. 

I welcome you to join me for the remainder of my journey without spending much time on my past. I’ll craft a little About page later to introduce myself later. 

Welcome to my next iteration. Cheers.