The form plugin is being used in the wild to plant backdoors, and it is still necessary to check which places after the upgrade.

📅 2026-11-01 👁️ 0

This form plugin has been exploited in the wild to implant a backdoor. After the upgrade, which parts need to be checked? This round of publicly reported stored XSS attacks targets form plugins for WordPress sites, affecting over 530,000 sites. The attack payload will also leave a hidden admin account. Installing the patch only closes the entry, but the sessions already inside, the extra accounts, and the damaged templates are still working. Therefore, after the upgrade, you need to check the following five places: 'accounts', 'files', 'content', 'entry', and 'backup'.

What has this in-the-wild exploitation modified?

Public threat research (October 6, 2026) states that two vulnerability IDs CVE-2026-94504 and CVE-2026-93836 have a CVSS score of 6.1, affecting Ninja Forms 3.15.3 and below, WPC Product Bundles 8.6.6 and below, and confirmed in-the-wild exploitation.It is a stored cross-site scripting (XSS): The content submitted to the form is stored as is, and then executed on the management backend page, so when the administrator browses the comments or form records, it becomes the execution environment of the attack script.

Inspection items Specific action Anomaly detected after
Administrator account Check all accounts and roles against the name list Disable suspicious accounts and check login records
Plugin directory Find non-self-installed files by name and modification time Isolate copies first and then delete
Templates and main text Check footer, header, and script at the end of the article Restore after comparing with backup
Form entry Enable robot verification and field restrictions Keep evidence and tighten rules before
Backup Confirm that the backup time is earlier than the intrusion signs Reconstruct with a clean backup instead of cleaning on site

Check accounts and permissions first after upgrading

The attacker's target is rarely to 'pop up a window', but to stay on the site. The first thing is to list the administrator accounts and check them one by one: who created them, when was the last login, and whether there are any extra entries. This report clearly mentions that the attack payload will create hidden administrator accounts, and it is not enough to just look at the first few lines of the list; you need to sort by role and creation time and treat all unfamiliar names as suspicious objects. After checking the accounts, change the passwords of all administrators again and confirm that the failure lock and access restrictions at the login entry are effective.

Where are the backdoors usually hidden?

Backdoors often appear with normal plugin names in the plugin directory, this round uses names like 'WP Smart Thumbnails' that look reasonable. The method of inspection is not to rely on visual recognition, but to compare: compare the file list with a clean backup or a newly installed similar site; focus on the files that have been added or recently modified in the plugin directory and theme directory; then check the scripts written in the templates and main text, attack scripts are often hung at the footer, header, or end of articles, and may also be inserted into the form confirmation page. The database content should also be checked, as it is common to modify historical articles in bulk.

The principle of cleaning is 'prefer to rebuild'. It is difficult to confirm that there are no second residues after a file has been modified, and it is more reliable to restore the site with a clean backup before the signs of intrusion than to repeatedly delete in the poisoned environment. After the restoration, change the credentials, and reversing the order will put the deleted credentials back.

How to reduce the recurrence probability of the form entry

The form is an attack surface, cannot rely solely on patches. The effective combination is three things: First is robot verification, integrating the form and comments into the captcha mechanism, AnQiCMS forms can be integrated with reCAPTCHA to prevent robot batch submission; Second is field constraints and length limits, reducing the script space that can be stored as is; Third is to tighten the escaping and permission on the background browsing side, when administrators view submission records, they should not execute the submitted content. This round of entry is in the plugin, but the logic applies to all forms that can receive external input: comments, subscriptions, password recovery pages all need to be checked against the same standard.

Self-check of similar risks within the site

On the content side, there are two safety nets. Sensitive word filtering and content review can prevent the page content written after tampering from being published; keyword replacement can remove abnormal external links from the text; anti-crawling interference codes and JWT authentication, and defense against SQL injection and XSS attacks belong to the same level of daily protection, but cannot replace event response. The self-check list can be fixed: whether the version and plugins are the current supported versions, whether the forms and comments have robot verification, whether the administrator accounts are minimized, whether the backup can be restored by time points, and whether the tampered content has audit痕迹.

It is most effective to do two things after an event: fix the patch window as a scheduled task, and run the backup recovery drill quarterly. By the time the second invasion actually happens, it is these few hours that will save you.

Common questions

Do I need to change the credentials after installing the patch?Yes. The patch closes the entry, does not revoke the sessions and accounts already issued, and the credentials and accounts must be handled together.

How can you determine if the site has been exploited?Look for three signs: unknown entries in the admin account, files appear in the plugin or theme directory that were not installed, and unfamiliar scripts appear in the front-end page source code. If any of these are present, treat it as an intrusion.

Can I just delete the backdoor files?It is not recommended as the final processing. The file and database may be modified in many places, and backdoors may still remain after deletion; it is more stable to rebuild or migrate to a new environment with a clean backup.

Do you still need to report after cleaning?If the site has processed user personal information or payment-related information, it should evaluate the notification and obligation to inform according to internal and local requirements, and retain evidence copies.

Related articles

How much monthly hosting budget is enough for a small business website

The budget for small business websites is determined by the type of site: a shared host is enough for an exhibition website, and in the open information, this level is about 2 to 10 US dollars per month; cloud servers are used when there are interface calls and online business, starting from about 10 US dollars per month, and climbing according to configuration. The domain name is billed annually separately, and certificates and backups can be taken for free or low-cost paths.

2026-11-01

The share of hosting website is increasing, is the share of open-source systems falling?

The share change indicates that the selection entry is moving: the hosting website platform is rising, and the share of some open-source systems is falling. The numbers come from the public statistics口径, which does not mean which system is more suitable for you. The requirements for controllability in scenarios such as foreign trade, marketing, and government portals are different, and the performance of compiled open-source stacks in terms of memory and loading is another judgment line.

2026-11-01

A set of content needs to be distributed across multiple channels, choose headless architecture or traditional website construction

Headless architecture keeps the content in the background, outputs through interfaces, deploys the front-end separately for each channel, suitable for teams with many touchpoints; traditional website building comes with template rendering, one site with a set of display layers, delivery is faster. The judgment basis is the number of channels and whether the front-end needs to be independently released, rather than the name of the architecture itself.

2026-11-01

Is the multilingual site opened in a subdirectory or using a separate domain?

When creating multilingual websites, place the different languages in the same subdirectory under the domain name, with centralized weighting and parsing, and less maintenance, which is suitable for most foreign trade and brand websites; a separate domain name is suitable for markets that are independent of each other and require local compliant entities. Language and region are declared by tags, and switching and pseudo-static rules are managed centrally by the background.

2026-11-01

Only two of the top ten sources cited by the three AI engines overlap, do we need to prepare the content separately according to the engine?

There are only two sources of median overlap among the top ten references of three engines, which means that the domains selected by each search pool are different, and it is not the same problem that has been split into three sets of requirements. Copying pages by engine will make the internal signals thin, and it is more cost-effective to write the same content into paragraphs that can be independently cited, accompanied by verifiable data and a clear site structure, and then monitor the citation results on a periodic basis.

2026-11-01

How to control the crawling depth of list pages when pagination and infinite scrolling coexist

The depth of crawling on the list page is determined by the internal link structure: Infinite scrolling must retain direct access to pagination addresses, each page returns complete HTML and real links, and page turn marks are no longer considered as inclusion signals. The control means three things - fixed pagination parameters, hanging the entry text into a crawlable link, and supplementing the deep content with site maps and anchor text, rather than expanding the page numbers infinitely.

2026-11-01

The screening conditions generate a large number of similar pages, whether to block crawling first or block indexing first.

The screening page should first determine whether the waste is the crawling quota or the inclusion quota: the address combination is still being repeatedly requested, which belongs to the crawling side issue, and can be收敛 using robots rules; the page has been crawled and entered into the inclusion before talking about indexing, the handling of whether to index should be canceled indexing or merge the standard address into the main page, blocking crawling itself will not cancel the existing inclusion.

2026-11-01

The program itself is free, but the plugins are charged by seat. How do you calculate this cost when selecting?

The cost-free is the software authorization, not the entire cost. The selection should be broken down into four segments for pricing: software license, hosting resources, plugins charged per person or per site, and upgrade backup and other maintenance labor. The larger the team, the more sites, the more obvious the difference in seat fees and hosting fees, and the total account should be calculated based on the same number of people and the number of sites when comparing.

2026-11-01